iptables实现远程端口映射
iptables实现远程端口映射
环境说明
Linux服务器两台
客户机:172.16.30.194,80端口无服务
目标机:172.16.30.199,80端口有服务
通过配置iptables,使访问客户机172.16.30.194的80端口流量转发到目标机172.16.30.199的80端口,从而实现映射效果
实现步骤:
客户机和目标机分别开启ipv4转发,vim /etc/sysctl.conf,找到net.ipv4.ip_forward=0,将值改为1,(若没有此项请在文件尾部添加)
net.ipv4.ip_forward=1
在客户机修改iptables规则
# 检查已有规则,确保不会出现冲突 iptables -t nat -nL --line # 清除所有规则 iptables -F -t nat # 将访问172.16.30.194的80端口流量转发到172.16.30.199的80端口上 iptables -t nat -A PREROUTING --dst 172.16.30.194 -p tcp --dport 80 -j DNAT --to-destination 172.16.30.199:80 # 将172.16.30.199的80端口返回的流量,源ip修改为172.16.30.194后再返回给客户端 iptables -t nat -A POSTROUTING --dst 172.16.30.199 -p tcp --dport 80 -j SNAT --to-source 172.16.30.194
此时访问172.16.30.194:80即可穿透到172.16.30.199:80
注意:配置映射后,对应端口会被占用,但netstat等工具是看不到对应端口listen状态的,只能通过iptables查看规则,所以配置端口映射后建议额外记录下,方便后续运维