web_code 2024-10-17 20:23 采纳率: 0%
浏览 14
已结题

dnat基础问题,本机发出,别人返回的包,不能命中

问题遇到的现象和发生背景

注意 不接受机器的回复
机器1
ip 192.168.1.204
增加ip
ip addr add 192.168.1.223/24 dev enp0s3
增加dnat
把目的ip是192.168.1.223的包目的地址修改为10.11.12.233
iptables -t nat -A PREROUTING -d 192.168.1.223 -p tcp -j DNAT --to-destination 10.11.12.233

机器2
ip 192.168.1.231

操作
机器2上面 telnet 192.168.1.223 8888 会一直卡这,不会立刻返回拒绝 因为把目的地址改了 所有不会返回 这是正常的

   机器1上面 telnet -b 192.168.1.223 192.168.1.231 9999 机器2会立刻返回拒绝(rst) 这是不正常的,也是一直卡着 才正常  
     -b参数源地址会修改为223
      
      问题1.为什么机器2返回的包没有命中机器1的dnat
      问题2.如果想让机器2返回的包命中机器1的dnat 需要怎么做?
  • 写回答

28条回答 默认 最新

  • 阿里嘎多学长 2024-10-17 20:23
    关注
    获得0.30元问题酬金

    AIGC生成:


    dnat基础问题,本机发出,别人返回的包,不能命中

    你遇到的问题是,机器1设置了新的 IP 地址 192.168.1.22,但是本机发出包,别人返回的包不能命中。这可能是因为 DNS 解析的问题。

    首先,让我们检查机器1的 DNS 配置。可以使用以下命令:

    cat /etc/resolv.conf
    

    这将显示机器1的 DNS 配置文件。如果 DNS 服务器配置正确,那么机器1应该能够解析别人的 IP 地址。

    其次,让我们检查机器1的路由表。可以使用以下命令:

    route -n
    

    这将显示机器1的路由表。如果路由表中没有正确的路由条目,那么机器1可能无法将包发送到正确的目的地。

    最后,让我们检查机器1的 ARP 表。可以使用以下命令:

    arp -n
    

    这将显示机器1的 ARP 表。如果 ARP 表中没有正确的 ARP 条目,那么机器1可能无法将包发送到正确的目的地。

    如果以上命令都没有问题,那么可能是 DNS 解析的问题。可以尝试使用以下命令来检查 DNS 解析:

    dig +short <别人的域名>
    

    这将显示别人的 DNS 记录。如果 DNS 记录正确,那么机器1应该能够解析别人的 IP 地址。

    总之,问题可能是 DNS 解析的问题,可以尝试使用以上命令来检查 DNS 解析和路由表。如果问题仍然存在,可以提供更多的信息和日志,以便更好地 debug。


    评论

报告相同问题?

问题事件

  • 系统已结题 10月25日
  • 修改了问题 10月17日
  • 修改了问题 10月17日
  • 创建了问题 10月17日