Rat's

使用iptables进行端口转发
说明:玩vps的经常要用到端口转发用以实现更快的速度,比如手上有个某商家的vps,本地访问速度很慢,这时候就可以用...
扫描右侧二维码阅读全文
19
2016/05

使用iptables进行端口转发

说明:vps的经常要用到端口转发用以实现更快的速度,比如手上有个某商家的vps,本地访问速度很慢,这时候就可以用一个香港或者日本的线路做桥梁,达到更快的速度,这里先说下用iptables来进行中转的教程,毕竟自认为这个是最好上手的。

方法

1、开启系统的转发功能

vi /etc/sysctl.conf

net.ipv4.ip_forward=0修改成net.ipv4.ip_forward=1

编辑后使用命令让配置马上生效

sysctl -p

2、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]

3、重启iptables使配置生效

service iptables save
service iptables restart

扩展需求

1、多端口转发修改方案:

#将本地服务器的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]

2、非同端口号修改方案:

#使用本地服务器的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]
Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 12 月 20 日 01 : 05 AM

发表评论 取消回复

5 条评论

  1. che

    这中转 是加密的吗

  2. yonheng

    可以中转域名的吗

    1. Rat's
      @yonheng

      没试过,你可以试试看,直接把ip改域名

  3. 支援

    大佬这个是在哪一台服务器上面配,A本地 B中转 C国外 是全部都在B上面配吗?
    iptables -t nat -A PREROUTING -p tcp --dport [ B 端口号] -j DNAT --to-destination [ C 的 IP]
    iptables -t nat -A PREROUTING -p udp --dport [ B 端口号] -j DNAT --to-destination [C 的 IP]
    iptables -t nat -A POSTROUTING -p tcp -d [C 的 IP] --dport [ C 端口号] -j SNAT --to-source [ B 服务器IP]
    iptables -t nat -A POSTROUTING -p udp -d [C 的 IP] --dport [C 端口号] -j SNAT --to-source [ B 服务器IP]
    被搞蒙了,望解惑

    1. Rat's
      @支援

      如果你要使用A服务器转发B服务器,那么就在A服务器上配置转发。