linux - SSH 服务器 - 获取 sshd 进程转发端口 #N 的 pid

标签 linux ssh server pid ssh-tunnel

我正在运行一个服务器 (Ubuntu Server 14.04),它允许客户端从他们的设备 (Raspberry Pi) 创建一个 ssh 隧道,这样他们就可以从互联网访问他们的网络服务器(作为穿越 NAT 的一种方式)。我可以使用 ps -u username(该用户只运行 sshd 来转发端口)获取用户拥有的进程列表(所有设备都相同),但我无法过滤这些进程由他们转发的端口。所以问题是,我怎样才能得到转发端口#N 的 sshd 的 pid?

最佳答案

您可以使用 lsof 命令,因为在 Linux 上一切都是文件。

类似于 lsof -Pan -i | grep :PORT 会得到你所要求的。当我在我的机器上为端口 80 运行它时,它有这样的输出:

Command    PID     USER     FD  TYPE  DEVICE SIZE/OFF NODE  NAME
nginx      1104     root    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1105 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1106 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1107 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)
nginx      1108 www-data    6u  IPv4  23348      0t0  TCP *:80 (LISTEN)

可以找到关于 lsof 的更多信息 here

关于linux - SSH 服务器 - 获取 sshd 进程转发端口 #N 的 pid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43989022/

相关文章:

c++ - cmake 链接到共享库而不使用完整路径

ssh - 在 Pycharm 中配置 SFTP

ruby-on-rails - 构建服务器以在本地托管 Rails 应用程序

linux - 每个目录的最佳文件数与 EXT4 的目录数

linux - 当我将 `&` 与 Bash 脚本中的函数一起使用时会发生什么?

docker - Docker-ssh非根路径/getsockopt:连接被拒绝

python - "No module named ' http_server '"尝试在 networkx 中导入 http_server 时

javascript - 为什么我得到 'undefined is not a function' ?

linux - 使用 postfix 进行私有(private)网络

java - Jsch shell/Expecdt4j 简单示例?