玩
vps
的经常要用到端口转发用以实现更快的速度。比如ovh
机房的网络我这里访问非常慢,用远程桌面会吐血的类型。所以就会用其他的线路作为跳板,比如洛杉矶,香港之类的。再比如如果需要一个日本ip
,但是本地访问linode
,conoha
的日本都绕路,又慢,这时如果用一个香港的vps
做中转,就能达到比较稳定快速的效果。
今天就先介绍一个使用Iptables
来进行中转的教程。使用iptables
的好处就是不用额外装东西,上手就可以搞。
* 特别注明:本地服务器 IP
未必是公网 IP
,像阿里云就是内网 IP
,请用 ipconfig
确认下走流量的网卡 IP
是外网还是内网。
开启系统的转发功能
vi /etc/sysctl.conf
将 net.ipv4.ip_forward=0
修改成 net.ipv4.ip_forward=1
编辑后使用以下命令让配置马上生效
sysctl -p
iptables
的命令
iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
重启 iptables
使配置生效
service iptables save
service iptables restart
扩展需求
多端口转发修改方案: ( 将本地服务器的 50000~65535
转发至目标 IP
为 1.1.1.1
的 50000~65535
端口 )
-A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
-A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
非同端口号修改方案:(使用本地服务器的 60000
端口来转发目标 IP
为 1.1.1.1
的 50000
端口)
-A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
-A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
-A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]
-A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]