前言
自己购买了AWS日区的Lightsail并搭建了不可名状的服务。不过自己家用的宽带为电信,直连的网络延迟128+、丢包率20%左右,网络体验实在是太差。朋友家的联通宽带测试了一下网络比自己的电信好多了,延迟只有70ms还不丢包。那自己就考虑用朋友家的宽带转发一下国际出口流量。
方式一:iptables流量转发
iptables -t nat -A PREROUTING -p tcp --dport xxx -j DNAT --to-destination x.x.x.x:xxx
iptables -t nat -A POSTROUTING -d x.x.x.x -p tcp --dport xxx -j MASQUERADE
# 防止包被丢弃
iptables -I FORWARD -d x.x.x.x -p tcp --dport xxx -j ACCEPT
iptables -I FORWARD -s x.x.x.x -p tcp --sport xxx -j ACCEPT
# 加入到启动
iptables-save >> /etc/iptables.rules
echo "#/bin/bash" >> /etc/network/if-pre-up.d/load-ip-rules.sh
echo "iptables-restore < /etc/iptables.rules" >> /etc/network/if-pre-up.d/load-ip-rules.sh
方式二:firewall-cmd流量转发
当系统有firewall
防火墙时,每次防火墙的操作都会重置iptables
规则,但是firewall
也可以设置端口的转发规则。而且firewall
比iptables
更为简单方便。
firewall-cmd --zone=public --permanent --add-masquerade
firewall-cmd --zone=public --permanent --add-forward-port=port=xxx:proto=tcp:toaddr=x.x.x.x:toport=xxx
firewall-cmd --reload