【问题标题】:iptable for port forwardingiptable 用于端口转发
【发布时间】:2013-05-10 04:05:09
【问题描述】:

我想将通过端口 22 进入我的 Linux (192.168.1.34) 的所有流量重定向到另一个地址

所以我使用了下面的iptable命令

sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.1.239:22

该命令不返回错误。

但是当我尝试从 PC (192.168.1.133) 到我的 linux (192.168.1.34) 打开 ssh 会话时,ssh 会话没有打开。看起来 ssh 流量没有重定向到 (192.168.1.239)

如果我直接从PC(192.168.1.133)打开ssh会话到(192.168.1.239),那么会话就打开了

【问题讨论】:

  • 什么是网络掩码?

标签: linux ubuntu debian iptables portforwarding


【解决方案1】:

首先,确保 NAT 主机启用了 IP 转发:

echo "1" > /proc/sys/net/ipv4/ip_forward

其次,您的所有主机都在同一个子网中,这意味着从 192.168.1.239 回到您的客户端 (192.168.1.133) 的 SSH 流量不会通过 192.168.1.34 路由。

所以你可以:

  1. 同时使用 DNAT 和 SNAT,或者
  2. 为您的主机使用不同的子网。

【讨论】:

    【解决方案2】:

    您需要再添加两条规则:您的 Linux IP (192.168.1.34) 和另一台机器的 IP (192.168.1.239):

    ### \# prerouting
    sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j DNAT --to-destination 192.168.1.239:22
    
    ### \# postrouting
    sudo iptables -t nat -A POSTROUTING -p tcp --dport 22 -j MASQUERADE
    
    ### \# forward
    sudo iptables -A FORWARD -s 192.168.1.34 -d 192.168.1.239 -j ACCEPT
    
    sudo iptables -A FORWARD -s 192.168.1.239 -d 192.168.1.34 -j ACCEPT
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-29
      • 2013-09-02
      • 2016-04-19
      • 2014-05-25
      • 2016-08-22
      • 2020-05-25
      • 2014-10-03
      • 1970-01-01
      相关资源
      最近更新 更多