当阻止 vps 回源国内后,vps 将不能 ping 通,也不能直接连 ssh,但 ss 服务是可以正常使用的。这样可以减少代理服务器的特征,降低被发现的几率。
本文内的命令仅适用于 Debian 系的 Linux 发行版。
添加 iptables 的 geoip 模块
1 | apt-get install xtables-addons-common xtables-addons-dkms libtext-csv-xs-perl |
添加 iptables 的阻止回源国内规则
1 | iptables -A OUTPUT -m geoip --dst-cc CN -j REJECT |
保存和恢复 iptables 规则
iptables 的规则会在 vps 重启后清空,所以需要手动保存和恢复。
保存
1 | iptables-save > /etc/iptables/rules.v4 |
恢复
1 | iptables-restore < /etc/iptables/rules.v4 |
自动保存和恢复 iptables 规则的包
从 Ubuntu 10.04 LTS (Lucid) 和 Debian 6.0 (Squeeze) 版本开始,可以通过安装一个名为 “iptables-persistent” 的包,安装后它以守护进程的方式来运行,系统重启后可以自动将保存的内容加载到iptables中。当然前提也是需要先保存规则。
安装
1 | apt-get install iptables-persistent |
保存规则
1 | service iptables-persistent save |
在 Debian 7 中安装完后会自动提示是否保存规则。
出现的问题
因为我启用 ss 服务用的是 ss-bash,而 ss-bash 监控流量依赖的是 iptables ,所以这就会导致在添加了阻止回源国内的规则后 ss 连接不上。解决方法:先启动 ss-bash ,添加用户端口,即添加 ss 的 iptables 规则。然后添加阻止回源国内规则。因为 iptables 的规则遵循先后关系,所以会放行 ss 的端口。
via: