2017-05-15 10 views
0

私は、クライアントが自分のデバイス(Raspberry Pi)からsshトンネルを作成して、自分のWebサーバーにアクセスできるようにするサーバー(Ubuntu Server 14.04)インターネット(NATを横断する手段として) ps -u username(このユーザーはポートを転送するためだけにsshdを実行します)を使用して、ユーザーが所有するプロセスの一覧を取得できますが、転送するポートでこれらのプロセスをフィルタリングすることはできません。だから問題は、どのようにポート#Nを転送しているsshdのPIDを得ることができるのですか?SSHサーバー - sshdプロセス転送ポートのpidを取得する#N

答えて

2

すべてがLinux上のファイルなので、lsofコマンドを使用することができます。

lsof -Pan -i | grep :PORTのようなものは、あなたが求めるものを得るでしょう。私は私のマシン上のポート80のためにそれを実行したときには、このような出力を持っています

lsof
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) 

詳細はhere

+1

良い答えを見つけることができます。 FYIこのコマンドはMac OS Xでも動作します。 – hmedia1

+0

素晴らしい作品です!私は 'sudo lsof -Pan -i4 -c sshd -u domopro |を実行できます。 grep: | awk {'print $ 2'} 'を実行し、PIDだけを取得します。プロセスを自動化するために必要なものです。ありがとう;) –

関連する問題