V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xing393939
V2EX  ›  Linux

机器 A 的 ssh 服务可以接收新的连接,但是不能用 telnet 连接机器 B 的 ssh 服务?

  •  
  •   xing393939 ·
    xing393939 · 2023-01-10 17:06:41 +08:00 · 1572 次点击
    这是一个创建于 669 天前的主题,其中的信息可能已经有所发展或是发生改变。

    机器 A 的 ssh 服务可以接收新的连接,但是不能用 telnet 连接机器 B 的 ssh 服务,会是什么原因呢?

    当前环境是:
    机器 A:172.31.15.148
    机器 B:172.31.6.159
    两机器在同一内网,linux 内核是 5.10.157 ,均有 ssh 服务
    机器 A 已经有 102610 个连接了,此时 telnet 机器 B 不行:

    [root@ip-172-31-15-148 ~]# ss -s
    Total: 102810
    TCP:   102635 (estab 102610, closed 1, orphaned 0, timewait 1)
    
    [root@ip-172-31-15-148 ~]# telnet 172.31.6.159 22
    Trying 172.31.6.159...
    

    而机器 B 可以 telnet 机器 A:

    [root@ip-172-31-6-159 ~]# telnet 172.31.15.148 22
    Trying 172.31.15.148...
    Connected to 172.31.15.148.
    Escape character is '^]'.
    SSH-2.0-OpenSSH_7.4
    

    机器 A 释放了它的 102610 个连接后,telnet 机器 B 是 ok 的

    [root@ip-172-31-15-148 ~]# telnet 172.31.6.159 22
    Trying 172.31.6.159...
    Connected to 172.31.6.159.
    Escape character is '^]'.
    SSH-2.0-OpenSSH_7.4
    

    这会是什么原因呢?或者怎么排查呢?我用strace telnet 172.31.6.159 22查看是卡在 connect 系统调用上。

    16 条回复    2023-01-11 17:48:14 +08:00
    crystom
        1
    crystom  
       2023-01-10 17:40:04 +08:00
    65536 并发警告
    julyclyde
        2
    julyclyde  
       2023-01-10 17:46:52 +08:00
    抓包看看?
    在 A 上执行
    sudo tcpdump -X host B 的 IP 地址 and tcp port 22
    julyclyde
        3
    julyclyde  
       2023-01-10 17:47:18 +08:00
    @crystom 并不存在你说的这个并发问题吧
    xing393939
        4
    xing393939  
    OP
       2023-01-10 18:05:07 +08:00
    @julyclyde
    这事抓包结果:
    ```
    [root@ip-172-31-15-148 ~]# tcpdump -i any net 172.31.6.159 -nn
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
    10:03:36.321501 IP 172.31.15.148.22116 > 172.31.6.159.22: Flags [S], seq 3335570490, win 2048, options [mss 8961,sackOK,TS val 557774307 ecr 0,nop,wscale 7], length 0
    10:03:37.332029 IP 172.31.15.148.22116 > 172.31.6.159.22: Flags [S], seq 3335570490, win 2048, options [mss 8961,sackOK,TS val 557775318 ecr 0,nop,wscale 7], length 0
    10:03:39.348030 IP 172.31.15.148.22116 > 172.31.6.159.22: Flags [S], seq 3335570490, win 2048, options [mss 8961,sackOK,TS val 557777334 ecr 0,nop,wscale 7], length 0
    10:03:43.380028 IP 172.31.15.148.22116 > 172.31.6.159.22: Flags [S], seq 3335570490, win 2048, options [mss 8961,sackOK,TS val 557781366 ecr 0,nop,wscale 7], length 0
    ```
    crystom
        5
    crystom  
       2023-01-11 09:24:04 +08:00
    @julyclyde 这是一个梗,我这个是嘲讽一下
    julyclyde
        6
    julyclyde  
       2023-01-11 09:25:02 +08:00
    上述 A 抓包,看起来是发送了 SYN 但是没有收到 ACK 响应
    倒是跟 strace 结果一致


    那如果在 B 上抓包呢?
    crystom
        7
    crystom  
       2023-01-11 09:33:20 +08:00
    我认为是本地端口占满了,就无法做 tcp 客户端了
    crystom
        8
    crystom  
       2023-01-11 09:33:40 +08:00
    做服务端时,没有这个限制。
    xing393939
        9
    xing393939  
    OP
       2023-01-11 11:06:16 +08:00
    @julyclyde 机器 B 收不到包
    julyclyde
        10
    julyclyde  
       2023-01-11 13:01:52 +08:00
    @xing393939 你给 tcpdump 更换几次-i 看看,到底是从哪个网卡发出去的 SYN
    bulay
        11
    bulay  
       2023-01-11 14:41:17 +08:00
    我记得看到过,每个 tcp 连接的信息都会占用一定的内存空间,可以看看内存的利用率
    xuboying
        12
    xuboying  
       2023-01-11 14:45:01 +08:00
    那你试试 telnet 别的 ip ,别的端口呢?先锁定问题是机器 A 或者机器 B
    xing393939
        13
    xing393939  
    OP
       2023-01-11 15:28:13 +08:00
    @julyclyde 用了 tcpdump -i eth0 ,确认是 eth0 网卡发的 syn


    @bulay cpu2 个核使用率 1%,内存只用了 0.8G 吧,还有 3.2G
    julyclyde
        14
    julyclyde  
       2023-01-11 17:46:30 +08:00
    @xuboying 既然 B 都没收到,那我觉得应该是 A 或者网络问题了
    julyclyde
        15
    julyclyde  
       2023-01-11 17:47:42 +08:00
    @crystom 本地端口并没有满啊,这不是分配了 22116 号嘛
    julyclyde
        16
    julyclyde  
       2023-01-11 17:48:14 +08:00
    @xing393939 确认 eth0 是正确的吗?那你查查网络?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 175ms · UTC 02:28 · PVG 10:28 · LAX 18:28 · JFK 21:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.