V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
proxychains
V2EX  ›  问与答

请教一个 tcp 的网络问题

  •  
  •   proxychains · 2023-03-14 15:16:59 +08:00 · 494 次点击
    这是一个创建于 423 天前的主题,其中的信息可能已经有所发展或是发生改变。
    主机 `10.1.1.179` 上使用 nginx 监听 `80` , 其他主机都可以请求 `10.1.1.112:80` 正常返回.

    但是主机 `10.1.1.112` 使用 `curl` 发送请求到 `10.1.1.179:80`.
    期间 `112` 主机一直显示为 `SYN_SENT` 状态, `179` 为 `SYN_RECV`状态, 一直到 `112` 显示 `timeout`

    抓包显示

    [from_179_80_pcap.png]( https://s2.loli.net/2023/03/14/6SrxBDLQ4IvaqPU.png)


    看起来 `112` 第三次握手的包丢失了, 导致一直重传.

    主机 `179` 和 `112`
    内核版本: 3.10.0-1160.el7.x86_64

    主机 `179` iptables INPUT 链:

    ```bash
    -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
    ```
    proxychains
        1
    proxychains  
    OP
       2023-03-14 15:34:21 +08:00
    从其他主机连接 `112` 的 `ssh` 又是可达的. 想不到如何排查了
    garychenlin
        2
    garychenlin  
       2023-03-15 01:41:29 +08:00
    抓包数据有两端抓包嘛? 10.1.1.112 和 10.1.1.179 都抓

    traceroute 对比看下路由表?

    或者 iptables -t filter 看下有没有拦截?
    proxychains
        3
    proxychains  
    OP
       2023-03-15 09:03:42 +08:00
    @garychenlin 都抓了, 表现就是三次握手的时候第三个 ack 没发出去, 一直重联.
    路由表没问题的, 这两台主机 icmp 报文可达.
    proxychains
        4
    proxychains  
    OP
       2023-03-15 15:42:11 +08:00
    解决了.
    iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3294 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:38 · PVG 08:38 · LAX 17:38 · JFK 20:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.