1. 端口映射
将10.6.0.4:6666 映射到 172.17.0.1:7777,注意:目标ip不能是127.0.0.1
user@user-OptiPlex-7090:~$ sudo iptables -t nat -A PREROUTING -p tcp -d 10.6.0.42 --dport 6666 -j DNAT --to-destination 172.17.0.1:7777 user@user-OptiPlex-7090:~$ sudo iptables -t nat -A POSTROUTING -p tcp -d 172.17.0.1 --dport 7777 -j SNAT --to-source 10.6.0.42
测试
本机起监听
user@user-OptiPlex-7090:~$ nc -l 7777
其他机器访问,注意:不可以在同机内做测试,否则会直接报失败
# 另外一台机器 zjr@hd:~$ nc -v 10.6.0.42 6667 Connection to 10.6.0.42 6666 port [tcp/*] succeeded! # 同一台机器 user@user-OptiPlex-7090:~$ nc -v 10.6.0.42 6667 nc: connect to 10.6.0.42 port 6667 (tcp) failed: Connection refused
2 端口重定向
需要源IP和目标IP一致
iptables -t nat -A PREROUTING -p tcp --dport 7777 -j REDIRECT --to-port 6666
参考:
https://www.cnblogs.com/paul8339/p/14688156.html#:~:text=%E8%80%8C%20iptables%20%E7%9A%84%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%99%E6%98%AF%E5%9C%A8%E5%86%85%E6%A0%B8%E8%BF%9B%E8%A1%8C%E3%80%82%201%E3%80%81%E5%B0%86%E6%9C%AC%E5%9C%B0%E7%9A%84%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%E6%9C%AC%E6%9C%BA%E7%AB%AF%E5%8F%A3%20%E5%B0%86%E6%9C%AC%E6%9C%BA%E7%9A%84%207777%20%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%206666,6666%201.242%20%E6%9C%BA%E5%99%A8%E4%B8%8A%E5%B0%86%207777%20%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91%E5%88%B0%206666%EF%BC%8C%E5%B9%B6%E4%BE%A6%E5%90%AC%206666%20%E7%AB%AF%E5%8F%A3%E3%80%82