내 컴퓨터에서 어떤 포트가 열려 있는지 어떻게 알 수 있습니까?


148

내 컴퓨터에서 어떤 포트가 열려 있는지 (예 : 내 컴퓨터에서 어떤 포트가 수신하고 있는지)보고 싶습니다. 예를 들어 웹 서버를 설치 한 경우 포트 80 등.

이것에 대한 명령이 있습니까?

답변:


113

nmap nmap 설치

Nmap ( "Network Mapper")은 네트워크 탐색 또는 보안 감사를위한 무료 오픈 소스 유틸리티입니다.

nmap 192.168.1.33 내부 PC 또는 nmap external ip address

추가 정보 man nmap


11
덕분에 nmap localhost큰했다.
Jonas

11
차이가 있음을 기억 nmap localhost하고 nmap 192.168.0.3(또는 적 기계 IP는 무엇인가)
LassePoulsen

6
나는 netstat가 이것에 대한 더 나은 대답이라고 생각합니다. netstat는 추가 응용 프로그램을 사용하거나 로컬 호스트를 통해 불필요한 호출을하지 않거나 네트워크를 생각하지 않고 시스템이 직접 수신하는 내용을 나열합니다.
Mathieu Trudel-Lapierre

2
이것은 바보입니다. 컴퓨터에 액세스 할 수 있으면을 사용하십시오 netstat -ln. 열려있는 모든 포트가 즉시 표시됩니다.
Alexis Wilke

1
nmap localhostlocalhost에만 바인딩 된 서비스를 찾지 못했습니다. 예를 들어으로 실행 influxd합니다 bind-address:localhost:8086. 에 표시되지 sudo nmap localhost않았지만에 표시되었습니다 sudo netstat -tulpn.
Dan Dascalescu

279

나는 항상 이것을 사용했다 :

sudo netstat -ntlp | grep LISTEN

4
sudo netstat -ntlp | grep LISTEN... sudo그렇지 않으면 ... pid가 인쇄되지 않습니다.
Rafaf Tahsin

6
-l이미 듣기 위해 필터링합니다. grep LISTEN두 줄의 헤더 정보를 숨기는 것 이상으로 도움이되지 않습니다.
Dan Dascalescu

3
-t: tcp, -l: 청취 소켓, -p: show pid and program name, -n: 127.0.0.1:80대신에 print localhost:http. 참조 : linux.die.net/man/8/netstat
Rick

1
netstat함께 설치sudo apt-get install net-tools
RichArt

2
확장 된 명령은 sudo netstat --tcp --listening --programs --numeric입니다. grep열 머리글을 제거하지 않으면 사용할 필요가 없습니다 .
패트릭 다크

60

수신 대기중인 포트와 방화벽 규칙을 확인하는 다른 좋은 방법 :

  • sudo netstat -tulpn

  • sudo ufw status


나는 대답을 nmap다시 바꾸었다 netstat.
Jonas

2
@Jonas : nmap 답변 아래 내 의견을 참조하십시오. localhost에만 바인딩하는 서비스는 나열하지 않습니다.
Dan Dascalescu

27

열린 포트를 나열하려면 netstat명령을 사용하십시오 .

예를 들면 다음과 같습니다.

    $ sudo netstat -tulpn | grep LISTEN
    tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      5452/dnsmasq    
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1037/cupsd      
    tcp6       0      0 ::1:631                 :::*                    LISTEN      1037/cupsd

위의 예에서 세 개의 서비스가 루프백 주소에 바인딩됩니다.

루프백 주소 "127.0.0.1"에 바인딩 된 IPv4 서비스는 로컬 컴퓨터에서만 사용할 수 있습니다. IPv6의 동등한 루프백 주소는 ":: 1"입니다. IPv4 주소 "0.0.0.0"은 "모든 IP 주소"를 의미하며, 이는 다른 시스템이 특정 포트에서 로컬로 구성된 네트워크 인터페이스에 연결될 수 있음을 의미합니다.

다른 방법은 다음 lsof명령 을 사용하는 것입니다 .

    $ sudo lsof -nP -i | grep LISTEN
    cupsd     1037   root    9u  IPv6  11276      0t0  TCP [::1]:631 (LISTEN)
    cupsd     1037   root   10u  IPv4  11277      0t0  TCP 127.0.0.1:631 (LISTEN)
    dnsmasq   5452 nobody    5u  IPv4 212707      0t0  TCP 127.0.0.1:53 (LISTEN)

자세한 내용은 man netstat또는을 참조하십시오 man lsof.


3
-l옵션이 LISTEN포트 목록을 나열 하는 것이라고 생각했습니다 . 그래서 grep이 여기에 불필요한 것일까 요?!
Alexis Wilke

24

이것은 0.0.0.0포트 80 (표준 웹 서버 포트 번호) 에서 IP 주소를 수신 대기하는 프로세스 (필요에 따라 요청에 응답해야 함) 가 있음을 보여주기에 충분합니다 . 내 경우에는 이것이 웹 서버임을 보여줍니다.lighttpd

$ sudo netstat -ntlp | grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN          2495/lighttpd

나중에 방화벽을 통해 허용되는 유일한 포트가 포트 80인지 확인하려면 www.grc.com의 ShieldsUp을 사용하여 방화벽 테스트를 수행합니다.


11

sudo iptables -LPC의 포트 규칙을 나열합니다. ufw 또는 shorewall 방화벽을 사용하는 경우 출력을 읽기 어려울 수 있습니다. 이 경우 오히려 sudo ufw status예를 들어 사용하십시오 .

포트가 열린 액세스 인 경우에도 해당 포트에서 수신 대기하는 프로세스가없는 경우 여전히 거부 되더라도 이는 그다지 유용하지 않습니다.


4

서버 시스템 또는 로컬 포트의 지속적인 모니터링을 찾고 있다면 nmap의 그래픽 버전, 즉 Zenmap을 사용하여 더 자세한 버전을 사용할 수 있다고 생각합니다.

Zenmap은 Nmap Security Scanner의 공식 그래픽 사용자 인터페이스 (GUI)입니다.

사용 가능한 지원 (Linux, Windows, Mac OS X, BSD 등)

이 도구보기를 살펴보십시오.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.