Marco Montevechi Filho Asked: 2022-05-03 07:16:40 +0800 CST2022-05-03 07:16:40 +0800 CST 2022-05-03 07:16:40 +0800 CST 查找与 /dev/pts/N 关联的物理机 772 如果我的操作系统有多个用户通过 ssh 登录,有什么方法可以找到与每个 /dev/pts/N 关联的物理机器(其中 N 是整数)?我所知道的是 谁 和 ps-辅助 命令将显示哪个用户或进程与设备文件相关联,但我可以获得有关用户/进程来自的物理机器的更多信息吗?也许是IP? ssh ip 2 个回答 Voted Best Answer larsks 2022-05-04T05:24:06+08:002022-05-04T05:24:06+08:00 伪终端不与“物理机器”相关联。它与正在运行的进程相关联(例如,ssh 会话或 gui 终端窗口、screen/tmux 中的窗口等)。您可以使用ps来查找哪些进程正在使用给定pts设备,并可能从那里回溯。 对于您要执行的操作,ss(or netstat) 命令可能更有用。例如,我可以通过运行以下命令找到与活动 ssh 连接关联的远程地址: $ ss -tnp | grep sshd | grep ESTAB ESTAB 0 0 192.168.1.200:22 1.2.3.4:39240 users:(("sshd",pid=2706,fd=3)) ESTAB 0 0 192.168.1.200:22 4.3.2.1:39242 users:(("sshd",pid=2809,fd=3),("sshd",pid=2771,fd=3)) ilkkachu 2022-05-04T05:32:39+08:002022-05-04T05:32:39+08:00 SSH(和 mosh)实际上会填充utmp/wtmp文件,例如who并last读取一些有用的信息,包括远程 IP 地址。 ~$ who ... ilkkachu pts/26 2022-05-03 16:27 (127.0.0.1) $ last -1a ilkkachu pts/26 Tue May 3 16:27 still logged in 127.0.0.1 尽管您可能想要 grep 以获取正确的 tty 名称: $ who | grep "pts/26" ilkkachu pts/26 2022-05-03 16:27 (127.0.0.1) 或者,您可以查找打开文件列表以查找在 tty 上持有 fd 的 SSH 进程,然后找到相应的网络套接字。
伪终端不与“物理机器”相关联。它与正在运行的进程相关联(例如,ssh 会话或 gui 终端窗口、screen/tmux 中的窗口等)。您可以使用
ps
来查找哪些进程正在使用给定pts
设备,并可能从那里回溯。对于您要执行的操作,
ss
(ornetstat
) 命令可能更有用。例如,我可以通过运行以下命令找到与活动 ssh 连接关联的远程地址:SSH(和 mosh)实际上会填充
utmp
/wtmp
文件,例如who
并last
读取一些有用的信息,包括远程 IP 地址。尽管您可能想要 grep 以获取正确的 tty 名称:
或者,您可以查找打开文件列表以查找在 tty 上持有 fd 的 SSH 进程,然后找到相应的网络套接字。