[iptables] 端口转发

iptables 端口转发配置规则

请求在防火墙中的路由过程#

                               XXXXXXXXXXXXXXXXXX
                             XXX     Network    XXX
                               XXXXXXXXXXXXXXXXXX
                                       +
                                       |
                                       v
 +-------------+              +------------------+
 |table: filter| <---+        | table: nat       |
 |chain: INPUT |     |        | chain: PREROUTING|
 +-----+-------+     |        +--------+---------+
       |             |                 |
       v             |                 v
 [local process]     |           ****************          +--------------+
       |             +---------+ Routing decision +------> |table: filter |
       v                         ****************          |chain: FORWARD|
****************                                           +------+-------+
Routing decision                                                  |
****************                                                  |
       |                                                          |
       v                        ****************                  |
+-------------+       +------>  Routing decision  <---------------+
|table: nat   |       |         ****************
|chain: OUTPUT|       |               +
+-----+-------+       |               |
      |               |               v
      v               |      +-------------------+
+--------------+      |      | table: nat        |
|table: filter | +----+      | chain: POSTROUTING|
|chain: OUTPUT |             +--------+----------+
+--------------+                      |
                                      v
                               XXXXXXXXXXXXXXXXXX
                             XXX    Network     XXX
                               XXXXXXXXXXXXXXXXXX
  1. 配置外网访问端口转发
    iptables -t nat -A PREROUTING -p tcp -i eth0 -d 192.168.60.241 --dport 19725 -j DNAT --to 192.168.60.241:22

配置网卡eth0 ip 地址 192.168.60.241 进来的 端口 19725 使用目的地转发到 192.168.60.241:22 地址

  1. 本机访问端口转发

iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 19725 -j DNAT --to 127.0.0.1:22
iptables -t nat -A OUTPUT -p tcp -d 192.168.60.241 --dport 19725 -j DNAT --to 127.0.0.1:22

1相同的目的,但是从本机访问 19725 端口的时候会走本地网卡,所以需要添加如上两条规则

遇到的问题#

  1. 在不同网段中,已经设置了DNAT转发,比如让访问 192.168.60.241:1884的端口转发到192.168.1.192:1884但是在另一台机器192.168.20.110上面是连接不上的
  • 我加了另一条规则 iptables -t nat -A POSTROUTING -d 192.168.1.192 -p tcp --dport 1884 -o eth0 -j SNAT --to 192.168.60.241 让在 POSTROUTING 的时候修改目的地址就能连通,查看资料后发现是默认服务器默认路由的问题,但是有点想不通,因为在192.168.1.193上面直接连接192.168.60.241:1884是可以连通,所以猜测是因为请求的时候的路由之类的问题,先记录下了,后面再看看。

作者:Soul

出处:https://www.cnblogs.com/sooooooul/p/17450348.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   CK..Soul  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示