玩 vps 的经常要用到端口转发用以实现更快的速度。比如 ovh 机房的网络我这里访问非常慢,用远程桌面会吐血的类型。所以就会用其他的线路作为跳板,比如洛杉矶,香港之类的。再比如如果需要一个日本 ip ,但是本地访问 linode, conoha 的日本都绕路,又慢,这时如果用一个香港的 vps 做中转,就能达到比较稳定快速的效果。
今天就先介绍一个使用 Iptables 来进行中转的教程。使用 iptables 的好处就是不用额外装东西,上手就可以搞。
这篇教程的出处: http://aixiaoxiao.cn/thread-239-1-1.html 我看写的已经很详细了,并且我自己验证可以用了,所以就直接转载了。。省点事。。
* 特别注明:本地服务器 IP 未必是公网 IP ,像阿里云就是内网 IP ,请用 ipconfig 确认下走流量的网卡 IP 是外网还是内网。
第一步:开启系统的转发功能
1 | vi / etc / sysctl .conf |
将 net.ipv4.ip_forward=0
修改成 net.ipv4.ip_forward=1
编辑后使用命令让配置马上生效
1 | sysctl - p |
第二步: iptables 的命令
1 2 3 4 | 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 使配置生效
1 2 | service iptables save service iptables restart |
扩展需求
多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 )
1 2 3 4 | - 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 端口)
1 2 3 4 | - 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 ] |