首先开启linux转发功能echo 1 > /proc/sys/net/ipv4/ip_forward

或者(没有就添加进去)

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p生效

然后在 vi /etc/sysconfig/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(腾讯云需要用内网ip)]

iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口] -j SNAT --to-source [本地服务器公网IP(腾讯云需要用内网ip)]

其中端口指你要开放的本地转发端口。目标IP:端口是国外vps的IP和需要转发的端口,这样就开启了tcp和udp中转,然后重启一下iptables就可以进行测试了



以上即完成了防火墙转发


vi修改 iptables 无需用到此命令 service iptables save 

service iptables save

service iptables restart 

(重启命令,重启生效)



多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 )

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1

iptables -t nat -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1

iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP(腾讯云需要用内网ip)]

iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP(腾讯云需要用内网ip)]



非同端口号修改方案:(使用本地服务器的 60000 端口来转发目标 IP 为 1.1.1.1 的 50000 端口)

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000

iptables -t nat -A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000

iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP(腾讯云需要用内网ip)]

iptables -t nat -A POSTROUTING -d 1.1.1.1/32 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP(腾讯云需要用内网ip)]


2.关闭iptables(添加 转发规则 后需要关闭才能 转发删除规则)
service iptables stop  #临时关闭,重启无效

chkconfig iptables off    #永久关闭,重启生效


同样的centos7的firewalld也可以实现上述功能,直接几条命令就可以了

启动firewalld服务。

systemctl start firewalld

firewall-cmd --permanent --add-port=端口/tcp #开启本地tcp中转端口
firewall-cmd --permanent --add-port=端口/udp #开启本地udp中转端口
firewall-cmd --permanent --add-masquerade #添加伪装
firewall-cmd --permanent --add-forward-port=port=端口:proto=tcp:toport=vps端口:toaddr=x.x.x.x(vps IP) #建立tcp远程中转端口转发
firewall-cmd --permanent --add-forward-port=port=端口:proto=udp:toport=vps端口:toaddr=x.x.x.x(vps IP) #建立udp远程中转端口转发
firewall-cmd --reload #重启firewalld