主要考虑使用iptables转发端口数据包实现跳板
首先
vim /etc/sysctl.conf
将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1
然后
sysctl -p
至此启用ipv4上的数据包转发
最后使用iptables设置转发规则,A为跳板机,B为目标机
iptables -t nat -A PREROUTING -p tcp --dport A_port -j DNAT --to-destination B_ip:B_port iptables -t nat -A PREROUTING -p udp --dport A_port -j DNAT --to-destination B_ip:B_port iptables -t nat -A POSTROUTING -p tcp -d B_ip --dport B_port -j SNAT --to-source A_ip iptables -t nat -A POSTROUTING -p udp -d B_ip --dport B_port -j SNAT --to-source A_ip
上述命令输入后,转发规则立即生效
通常重启会清空iptables,若希望服务器重启后保留该iptables设置可使用
iptables-save > /etc/iptables.rules
重启后可使用
iptables-restore
来恢复iptables设置,亦有自动化设置的方法,但未经测试,不敢妄言。
参考:
http://www.cnblogs.com/sky-of-chuanqingchen/p/3343908.html
https://xuzhenglun.github.io/2015/02/05/Shadowsocks-relay-based-on-Azure/
https://help.ubuntu.com/community/IptablesHowTo