2017-05-15 1 views
0

클라이언트에서 자신의 웹 서버에 액세스 할 수 있도록 클라이언트가 자신의 장치 (Raspberry Pi)에서 ssh 터널을 만들 수있게 해주는 서버 (Ubuntu Server 14.04)를 실행하고 있습니다. 인터넷 (NAT를 통과하는 수단). ps -u username (이 사용자는 포트를 전달하기 위해 sshd 만 실행 함)를 사용하여 사용자가 소유 한 프로세스 목록 (모든 장치에서 동일 함)을 얻을 수 있지만 포워딩중인 포트별로 해당 프로세스를 필터링 할 수는 없습니다. 그래서 질문은, 어떻게 포트 # N을 전달하는 sshd의 PID를 얻을 수 있습니까?SSH 서버 - sshd 프로세스 포워딩 포트의 번호를 받으십시오. #N

답변

2

모든 것이 리눅스의 파일이기 때문에 lsof 명령을 사용할 수 있습니다.

같은 것을 lsof -Pan -i | grep :PORT와 같이 묻습니다. 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

좋은 답을 찾을 수 있습니다 : 내 컴퓨터에 포트 80을 실행할 때 그것은이 같은 출력을 가지고있다. 참고로이 명령은 Mac OS X에서도 작동합니다. – hmedia1

+0

위대한 작품! 나는'sudo lsof -Pan -i4 -c sshd -u domopro | 할 수있다. grep : | awk { 'print $ 2'}'를 실행하고 프로세스를 자동화하는 데 필요한 PID 만 가져옵니다. 감사 ;) –

관련 문제