You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取已SSH登录主机的连接IP地址

如何获取已SSH登录主机的连接IP地址

这个问题我之前也碰到过,尤其是在NAT环境下,主机自身的内网IP和你用来SSH连接的对外IP完全不是一回事——你用hostname -I或ifconfig查到的是主机本地网卡的IP,而你实际连接的是NAT网关映射后的地址,所以肯定对不上。给你几个实用的办法来拿到你需要的那个连接IP:

  • 查看当前登录会话的来源IP
    直接在登录后的主机上执行 who am i 或者 w 命令,输出里会包含你的登录来源信息。比如:

    username  pts/0        2024-05-20 14:30 (10.49.x.xxx)
    

    括号里的10.49.x.xxx就是你用来SSH连接的那个IP。

  • 查看SSH服务的登录日志
    不同发行版的日志位置略有不同:

    • Debian/Ubuntu系列:执行 cat /var/log/auth.log | grep sshd
    • CentOS/RHEL系列:执行 cat /var/log/secure | grep sshd
      日志里会有类似这样的记录:
    sshd[12345]: Accepted publickey for username from 10.49.x.xxx port 54321 ssh2
    

    这里的10.49.x.xxx就是你要找的连接IP。

  • 查看当前活跃的SSH连接
    用ss命令(比netstat更高效)查看当前的TCP连接:

    ss -tnp | grep sshd
    

    输出会类似:

    ESTAB      0      0  192.168.0.10:22      10.49.x.xxx:54321      users:(("sshd",pid=12345,fd=3))
    

    右边的10.49.x.xxx就是你的客户端连接到主机时用的IP地址。

简单来说,因为NAT的存在,主机本身不知道自己对外暴露的那个IP,只能通过记录你的连接会话信息来反推这个地址,上面几个方法都能帮你快速拿到它。

备注:内容来源于stack exchange,提问作者KARTHIK M S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 12:28:12