前言
Linux下利用iptables进行端口转发还是挺容易的,就是关键的问题有几个,只要有一个没解决就很烦….
刚刚在对这个问题进行共第4xx次的GG后,终于有了最后一个问题的解决方法….(很烦,真的很烦,神烦狗的烦,令人烦躁不安)
iptables端口转发方法
以下几个步骤没有具体的顺序,如果按照网上教程后还是不行,那么缺哪个补哪个:
端口转发主要命令:
其中remote_server指的是远端机器,this_server表示本地机器
iptables -t nat -A PREROUTING -p tcp --dport This_Server_Port -j DNAT --to-destination Remote_Server_IP:Remote_Server_Port iptables -t nat -A POSTROUTING -p tcp -d Remote_Server_IP --dport Remote_Server_Port -j SNAT --to-source This_Server_IP
放行转发命令:
其中eth0改为实际使用网卡(一般是eth0)
# 放行Forward的数据包 iptables -I FORWARD -i eth0 -j ACCEPT # 开启网卡混杂模式(允许任意流向的数据包) iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl配置ipv4转发:
这个的重点在于,它没啥重点,照做就对了
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf; sysctl -p /etc/sysctl.conf;
备用方法:
Centos 7专属:systemctl stop firewalld
如果以上步骤还是不行,那么建议你:换电脑、换系统、换iptables、换脑(
每日一图