proxychains
V2EX  ›  问与答

请教一个 tcp 的网络问题

  •  
  •   proxychains · Mar 14, 2023 · 992 views
    This topic created in 1230 days ago, the information mentioned may be changed or developed.
    主机 `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
       Mar 14, 2023
    从其他主机连接 `112` 的 `ssh` 又是可达的. 想不到如何排查了
    garychenlin
        2
    garychenlin  
       Mar 15, 2023
    抓包数据有两端抓包嘛? 10.1.1.112 和 10.1.1.179 都抓

    traceroute 对比看下路由表?

    或者 iptables -t filter 看下有没有拦截?
    proxychains
        3
    proxychains  
    OP
       Mar 15, 2023
    @garychenlin 都抓了, 表现就是三次握手的时候第三个 ack 没发出去, 一直重联.
    路由表没问题的, 这两台主机 icmp 报文可达.
    proxychains
        4
    proxychains  
    OP
       Mar 15, 2023
    解决了.
    iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2926 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 07:19 · PVG 15:19 · LAX 00:19 · JFK 03:19
    ♥ Do have faith in what you're doing.