개요
우리 모두가 알고있는 포트에만 사용할 수 있는 단일 응용 프로그램 또는 서비스에는 동일한 시간입니다. 때로는 특정 포트에서 어떤 프로세스가 수신 대기 중인지 알아야합니다.
이 튜토리얼에서는 Linux 에서 특정 포트에서 수신 대기하는 프로세스를 찾는 다른 접근 방식을 살펴 보겠습니다.
루트 권한이
리눅스에서,루트 사용자 또는 프로세스 소유자가를 얻을 수 있는 상세한 정보의 과정입니다.,
특정 포트에서 수신 대기중인 프로세스를 확인하고자 할 때 프로세스가 속한 사람을 알지 못합니다.
루트 권한이 우리를 얻을 수 있습에 필요한 모든 정보를 이 과정을 예를 들어,프로세스 id.
따라서 루트 사용자(또는 sudo)로 네트워크 도구를 시작해야 할 수도 있습니다.
netstat 사용
netstat 명령은 net-tools 패키지의 멤버입니다.
과거에는 많은 Linux 배포판에 사전 설치되어 있습니다. 그러나 net-tools 패키지는 2011 년 이후로 업데이트되지 않았습니다.,
현대 리눅스 커널 기능 및 기타 이유의 지원 부족으로 인해 net-tools 패키지는 쓸모 없게되었습니다.
즉,netstat 자체는 여전히 널리 사용되므로 도움이 될 수있는 방법을 살펴 보겠습니다.
첫째,의 예를 참조하십시오 출력 netstat 명령:
와 함께 옵션 ltnup,netstat 우리를 보여줍니다 모든 포트에서 사용은 위의 예입니다.,
자가 무엇인지 살펴보십시오 옵션:
- l–만 보이기 listening sockets
- t 쇼 TCP 연결
- n 표시한 주소에 숫자 형식
- u–보 UDP 연결
- p–쇼 프로세스 id/로그램의 이름
경우 우리가 검토하는 위 출력,마지막 열은 정확히 우리가 무엇을 찾고 있: PID 및 프로세스 이름을 듣고 특정한 포트입니다.
netstat 출력을 grep 명령으로 파이프하여 개별 포트에서 프로세스 정보를 얻을 수 있습니다.,
예를 들어 보자는 프로세스는 포트는 22:
root# netstat -ltnup | grep ':22'tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 575/sshd
ss
이전 섹션에서,우리가 논의는 net-tools 패키지는 사용되지 않습니다.이 명령은 netstat 명령을 대체 한 것입니다.
이제를 사용하는 방법을 참조하십시오 ss 명령하는 프로세스는 포트는 22:
경우 우리는 체크 옵션이 늘어난다는 것을 알았습니다 우리는 옵션을 통과하 ss 명령과 같은 우리는 전달 netstat.,
유일한 차이점은 출력을 필터링하기 위해 여분의 grep 프로세스 대신 ss 유틸리티의 상태 필터를 사용한다는 것입니다.
netstat 명령의 출력과 유사하게 예상되는 프로세스 정보도 마지막 열에 있습니다.
Lsof 를 사용하여
Lsof 명령은 Linux 시스템에서 열려있는 모든 파일을 나열 할 수 있습니다.,
우리가 사용할 수 있는 lsof 명령을 찾기 위해 프로세스를 사용하여 특정 포트를 사용하여 내:port_number 옵션:
root# lsof -i :22COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 575 root 3u IPv4 19373 0t0 TCP *:ssh (LISTEN)
네 첫번째 열에 위 출력 저희에게 말 프로세스 이름을 듣고에서 포트는 22 과 PID,소유자,그리고 파일 설명한다.
우리는 전달할 수 있습 여러 나가:포트 lsof 명령어를 찾을 듣는 프로세스 다양한 포트에서:
root# lsof -i :22 -i :68COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEsshd 575 root 3u IPv4 19373 0t0 TCP *:ssh (LISTEN)dhcpcd 8822 root 10u IPv4 49601 0t0 UDP *:bootpc
사용하는 융합기
융합기 유틸리티를 표시하는 프로세스를 사용하여 지명된 파일 소켓 또는 파일 시스템입니다., Psmisc 패키지에 포함되어 있으며 기본적으로 많은 최신 Linux 배포판에 사전 설치되어 있습니다.이를 사용하여 특정 포트에서 실행중인 프로세스의 정보를 볼 수 있습니다. 다시을 알 수 있습니 PID 의 처리를 듣 TCP port22:
root# fuser 22/tcp22/tcp: 575
위의 출력은 매우 간단합니다. 우리는 pid575 가있는 프로세스가 TCP 포트 22 에서 수신 대기하고 있음을 알고 있습니다.
그러나 프로세스에 대한 자세한 정보를 알려주지 않습니다(예:프로세스 575 의 이름은 무엇입니까? 누가 프로세스를 소유하고 있습니까? 등등.,
우리가 원하는 경우 추가 정보를 얻으려면 프로세스에 대해,우리가 할 수 있습을 통과”-v”옵션을 선택하는 퓨저 명령을 자세한 정보를 출력:
root# fuser -v 22/tcp USER PID ACCESS COMMAND22/tcp: root 575 F.... sshd
를 사용하는 융합기 명령을 우리는 또한 확인을 실행하는 프로세스에 대한 정보를 여러 TCP 또는 UDP 포트 중 하나에서 촬영:
root# fuser -v 22/tcp 68/udp USER PID ACCESS COMMAND22/tcp: root 575 F.... sshd68/udp: root 8822 F.... dhcpcd
결론
이 문서에서,우리는 것을 배웠 네 개의 서로 다른 리눅스 명령 라인 유틸리티와 예제는 그 밖의 정보를 이 과정에 듣기에 특별한 포트입니다.,
그들은 리눅스 명령 줄에 우리의 무기고에 가지고있는 모든 매우 강력한 도구입니다.