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。

相关推荐
知已难寻10 小时前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
默|笙10 小时前
【Linux网络】网络层协议 IP(1)理解报头、网段划分
linux·网络·tcp/ip
修己xj13 小时前
nslookup 使用指南:两种模式与常用查询技巧
linux
唠玖馆15 小时前
文件系统详解
linux·文件系统·ext2
GeW15 小时前
当Linux内核开始“确定性”,制造高端化才有了底层语法
linux
星恒随风16 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql
梦到啥说啥17 小时前
Linux网络编程:TCP网络协议
网络·网络协议·tcp/ip
StarsGreen18 小时前
libva在intel平台上的前端流程简介
linux
Shanks.20 小时前
2026 远程控制软件实测:ToDesk / 向日葵 / RustDesk / TeamViewer 在跨城与弱网下的真实差距
网络·远程工作·软件需求
Jeremy_WW21 小时前
802.3协议解读 06:117章节 RS 和 200GMII / 400GMII I
网络·网络协议·信息与通信·光模块·802.3协议