博客地址:http://home.cnblogs.com/u/zengjianrong/

linux上端口重定向及端口映射

0. 查看匹配规则

sudo iptables -t nat -nvL --line-numbers

-n:不显示hostname,减少dns等待时间;

-v: verbose

-L:--list,列举规则

--line-numbers:带上规则排号,越靠前越先被匹配

 

1. 端口映射

将10.6.0.4:6666 映射到 172.17.0.1:7777,注意:目标ip不能是127.0.0.1

如果10.6.0.4和172.17.0.1两个网卡同属于一个SoC,则只需要配置DNAT即可

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 PREROUTING -p tcp -m tcp -d 10.6.0.42/32 -i enp0s31f6 --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:~$ sudo iptables -t nat -A POSTROUTING -p tcp -m tcp -d 172.17.0.1/32 --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://zhuanlan.zhihu.com/p/441089738

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

posted @ 2022-07-05 17:51  black_man  阅读(299)  评论(0编辑  收藏  举报