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


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.