最常用的方法是使用 w
命令。这个命令不仅可以显示当前登录用户的信息,还会显示他们的 IP 地址。只需在终端输入 w
命令即可查看结果:
$ w
15:24:42 up 2 days, 23:23, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 15:24 0.00s 0.02s 0.00s w
user2 pts/1 192.168.1.101 15:23 1.00s 0.03s 0.00s bash
从输出中可以看到,user1
从 192.168.1.100
登录,user2
从 192.168.1.101
登录。
who
命令也可以用于查看当前登录用户的 IP 地址。它的输出与 w
命令非常相似,只不过不会显示用户当前正在运行的进程信息。
$ who
user1 pts/0 2023-04-13 15:24 (192.168.1.100)
user2 pts/1 2023-04-13 15:23 (192.168.1.101)
lastlog
命令提供另一种查看登录用户信息的方式。它会显示系统中所有用户的最后一次登录时间和 IP 地址。
$ lastlog
Username Port From Latest
root pts/0 192.168.1.100 2023-04-13 15:24:00 +0000
user1 pts/0 192.168.1.100 2023-04-13 15:24:00 +0000
user2 pts/1 192.168.1.101 2023-04-13 15:23:00 +0000
注意,lastlog
命令显示的是用户上次登录的信息,而不是当前在线用户的信息。
netstat
命令是一个非常强大的网络诊断工具,它可以用来查看网络连接的状态,包括登录用户的 IP 地址。使用 netstat -antp
命令可以显示所有活跃的网络连接,包括登录用户的 IP 地址。
$ netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1234/sshd
tcp 0 0 192.168.1.100:22 192.168.1.101:35584 ESTABLISHED 5678/sshd: user1@pt
tcp 0 0 192.168.1.100:22 192.168.1.100:35586 ESTABLISHED 9012/sshd: user2@pt
从输出中可以看到,user1
从 192.168.1.101
登录,user2
从 192.168.1.100
登录。
ss
命令是 netstat
的替代品,它可以提供更快速和更详细的网络连接信息。使用 ss -antp
命令可以查看活跃的网络连接,包括登录用户的 IP 地址。
$ ss -antp
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* 1234/sshd
ESTAB 0 0 192.168.1.100:22 192.168.1.101:35584 5678/sshd: user1@pts
ESTAB 0 0 192.168.1.100:22 192.168.1.100:35586 9012/sshd: user2@pts
从输出中可以看到,user1
从 192.168.1.101
登录,user2
从 192.168.1.100
登录。
在 Linux 服务器上查看登录用户的 IP 地址有多种简单有效的方法。w
和 who
命令是最常用的,可以直接显示当前登录用户的 IP 地址。lastlog
命令可以查看每个用户的最后一次登录时间和 IP 地址。netstat
和 ss
命令则可以提供更详细的网络连接信息,包括登录用户的 IP 地址。无论选择哪种方法,都可以快速了解服务器的登录情况,为系统管理和安全监控提供重要依据。