프로세스가 실행 중인 포트를 찾는 Linux 명령은 무엇입니까?

프로세스가 실행 중인 포트를 찾는 Linux 명령은 무엇입니까?

당신은 가지고 있습니까?깨끗한Linux 프로세스/서비스가 실행/수신 중인 포트를 확인하는 방법은 무엇입니까?

fuser, netcat, lsof등은 모두 해당 정보를 찾는 방법이지만 동시에 여러 가지 다른 정보를 반환한다는 것을 알고 있습니다 . 예를 들어 netstat -ltnp | grep -w process_name"성공하지만 반환됩니다.

tcp        0      0 127.0.0.1:1234      0.0.0.0:*               LISTEN      4880/process
tcp6       0      0 ::1:                :::*                    LISTEN      4880/process

또한 특정 포트에서 실행 중인 프로세스가 아니라 프로세스가 실행 중인 포트를 원합니다.

magic_command -abcd process_name 포트 번호를 반환합니다. 그렇지 않으면 아무것도 반환되지 않습니다.

추신: 나는 명백한 링크를 확인했습니다.https://ostechnix.com/how-to-find-which-service-is-listening-on-a-pspecial-port/

답변1

lsof이 목적으로 사용될 수 있습니다. Magic_command는 다음과 같습니다:

sudo lsof -i -P -n | grep LISTEN | grep <your_process_name>

별칭으로 래핑할 수 있습니다.

alias magic="sudo lsof -i -P -n | grep LISTEN | grep "

예제 출력:

$ magic httpd
httpd      9438           apache    3u  IPv4 2087313137      0t0  TCP *:80 (LISTEN)
httpd      9438           apache    4u  IPv4 2087321333      0t0  TCP *:49383 (LISTEN)
httpd      9438           apache    5u  IPv4 2087321335      0t0  TCP *:49384 (LISTEN)
httpd      9438           apache    6u  IPv4 2087345343      0t0  TCP *:443 (LISTEN)
httpd     23940             root    3u  IPv4 2087313137      0t0  TCP *:80 (LISTEN)
httpd     23940             root    4u  IPv4 2087321333      0t0  TCP *:49383 (LISTEN)
httpd     23940             root    5u  IPv4 2087321335      0t0  TCP *:49384 (LISTEN)
httpd     23940             root    6u  IPv4 2087345343      0t0  TCP *:443 (LISTEN)

포트 이외의 다른 것에 정말로 관심이 없다면 일부 출력 처리는 관련 없는 정보를 차단할 것입니다.

$ magic httpd | awk -F: '{print $2}' | cut -d\  -f1 | sort -un
80
443
49383
49384

답변2

Linux에서는 /proc를 마운트할 때 다음에서 이 정보를 얻을 수 있습니다.

ls -l /proc/<pid>/fd/

(<pid> 프로세스 pid를 입력하세요)

관련 정보