linux 查询当前登录的用户数量

命令一:last | grep root | head -n 10

作用 :查看 root 用户最近的登录记录(含历史与当前在线会话)。

命令部分 含义
last 读取 /var/log/wtmp,列出所有登录/注销历史。
grep root 筛选 root 用户的行。
head -n 10 只显示前 10 行,避免刷屏。

如何看懂输出字段:

text

复制代码
用户名  终端      来源信息               登录时间       状态
root    pts/0    <远程IP-1>            Tue Aug 18 15:04   still logged in
root    tty1     :0                    Tue Aug 18 13:58   still logged in
root    pts/0    :0.0                  Tue Aug 18 13:58 - 14:19  (00:20)
...
  • 第三列(来源):

    • 若为 IP 地址 (如 <远程IP-1>),表示该会话来自远程 SSH 连接。

    • 若为 :0 或 :0.0,表示来自本地图形界面(X Window),非网络远程。

  • 状态列:

    • still logged in → 当前仍在线的会话,这是判断"当前谁在登录"的关键。

    • 若显示如 (00:20),表示该会话已注销,持续了 20 分钟。

通过 last 可以直观看到哪些 IP 当前处于 still logged in 状态。


命令二:ss -tnp | grep :22 | grep -v LISTEN

作用:查看当前服务器上所有与 SSH(端口 22)相关的、已建立或正在发起的 TCP 连接,并显示进程信息。

命令部分 含义
ss Socket Statistics,查看套接字信息。
-t 仅 TCP。
-n 数字显示 IP 和端口(不解析域名)。
-p 显示进程 PID 和程序名。
grep :22 只保留包含 :22 的行。
grep -v LISTEN 去掉处于监听状态的守护进程,只保留实际通信连接。

如何看懂输出字段:

text

复制代码
状态    recv-q send-q  本地地址:端口        远程地址:端口         进程信息
ESTAB   0      0        <服务器本地IP>:22   <远程IP-1>:37742    users:(("sshd",pid=30794,...))
SYN-SENT 0     1        <服务器本地IP>:56810 <远程IP-2>:22      users:(("ssh",pid=30875,...))
ESTAB   0      0        <服务器本地IP>:22   <远程IP-3>:4663     users:(("sshd",pid=30420,...))
  • 状态:

    • ESTAB:连接已建立,正在通信。这些是当前有效的 SSH 会话(别人连你的)。

    • SYN-SENT:表示本机正在主动向外发起 SSH 连接(你的服务器作为客户端去连别的机器),不是别人连你。

  • 本地地址:本机的网卡 IP 和端口(22 是 SSH 服务端端口)。

  • 远程地址:连接对端的 IP 和临时端口。

  • 进程信息:

    • sshd 表示服务端进程(被连接),通常是 root 用户在远程登录。

    • ssh 表示客户端进程(主动连接外部)。


两条命令的互补关系

  • last 侧重于"登录历史与当前在线状态",能区分本地(图形/串口)和远程(IP)。

  • ss 侧重于"实时网络连接",能精确显示当前所有 TCP 隧道,包括别人连你的和你连别人的。

结合输出分析:

  • last 中显示有 still logged in 的 pts/0 行带有 <远程IP-1>,说明当前有一个远程 SSH 登录。

  • ss 中显示有两条 ESTAB 连接,远程地址分别为 <远程IP-1> 和 <远程IP-3>,都连接到本机的 22 端口,说明有两个远程 IP 正在通过 SSH 连接本机。

  • 另外还有一条 SYN-SENT,说明本机曾尝试连接 <远程IP-2> 的 22 端口(可能是之前在终端执行过 ssh 命令)。

因此,当前共有 2 个远程 IP 通过 SSH 以 root 身份登录(对应 pts/0 和另一个 pts 会话)。本地终端(tty1、ttyAMA0)不计入远程 IP。

相关推荐
HY小宝F11 分钟前
树莓派智能摄像头系统 30 天重学计划之 Day 03 · 网络基础:建立“包“的思维 —— 学习总结
网络·学习
ayaya_mana14 分钟前
MCTier 组网联机工具:安装、配置与私有化部署
网络·windows·内网穿透·联机
故七月18 分钟前
GEO 信源评估体系:如何判断一条网页信源能否被大模型采信
前端·网络·人工智能
hasty37 分钟前
一次 WebSocket 握手为何能终止进程?Undici CVE-2026-19534 的异常边界
网络·websocket·网络协议
C++ 老炮儿的技术栈1 小时前
有符号变量与无符号变量的区别
服务器·开发语言·前端·数据结构·c++·算法·c
实点科技1 小时前
XB6S-EI2002如何与信捷XDH-60T4-E实现EtherNet/IP通讯?
网络
YYRAN_ZZU1 小时前
如何编一个gcc的交叉工具链
linux·c++
shjita1 小时前
centos中安装docker
linux·docker·centos
仍然.2 小时前
RabbitMQ---可靠性传输
网络·分布式·rabbitmq
程序猿老A2 小时前
阿里云linux服务器安装mysql并实现远程访问
linux·服务器·阿里云