리눅스에서 열린 포트 수를 찾는 방법은 무엇입니까?


17

리눅스에서 열린 포트 수를 찾는 방법은 무엇입니까? 포트가 부족한지 확인하고 싶습니다. 또한 OS의 한계를 어떻게 알 수 있습니까?


2
포트가 부족 할까봐 무엇을하고 있습니까?
MDMarra

답변:


27

최신 Linux에서는 ss (소켓 통계) 유틸리티를 사용하십시오.

$ ss -s
Total: 10160 (kernel 10262)
TCP:   10349 (estab 8886, closed 408, orphaned 0, synrecv 0, timewait 393/0), ports 3147

Transport Total     IP        IPv6
*         10262     -         -        
RAW       0         0         0        
UDP       5         5         0        
TCP       9941      9941      0        
INET      9946      9946      0        
FRAG      0         0         0        

9
netstat -an | grep ESTABLISHED | wc -l

내 경우에는 32 개의 열린 포트 수를 제공합니다.

cat /proc/sys/net/ipv4/ip_local_port_range

다음과 같은 것을 반환합니다 :

32768 61000

61000-32768-$ OPENPORTS = 사용 가능한 포트

내 상자에는

61000-32768-32 = 28200 사용 가능한 포트 번호.


-a46이 작동하지 않았습니다. 어떤 도움?
erotsppa

어떤 배포판을 실행하고 있습니까? (우분투 서버 10.04 LTS에서 작동합니다). 물론 ipv6이 설치되어 있지 않으면 netstat -a를 사용하십시오.
Grizly

CentOS 상자에서 테스트 한 결과 이름 확인을 중지하기 위해 "-n"을 사용하지 않으면 중단되는 것 같습니다. (netstat -an | grep ESTABLISHED | wc -l)
Grizly 2016 년

아래의 "ss"를 보았습니다. 대단합니다. 그것에 대해 몰랐습니다. 훨씬 더 좋습니다! ip_local_port_range를 사용하여 리눅스가 허용하도록 구성된 것을 결정하십시오. 그러나 현재 사용중인 것을 훨씬 더 접근 가능한 형식으로 보여줍니다!
Grizly

8

다른 사람들이 언급했듯이 netstat는 현재 사용중인 포트를 확인하는 데 사용되는 도구입니다. 한계와 관련하여 사용 가능한 포트 수는 16 비트 부호없는 정수이며 범위는 0-65535입니다. 응용 프로그램이 바인딩 할 수있는 포트는 예약 된 권한있는 포트 / 루트 포트 (0-1024)와 임시 포트 범위에 포함되지 않은 모든 포트입니다.

을 실행하여 임시 포트를 볼 수 있습니다 cat /proc/sys/net/ipv4/ip_local_port_range.

이를 영구적으로 수정하려면 /etc/sysctl.conf 파일에서 "net.ipv4.ip_local_port_range"를 추가하거나 수정해야합니다. sysctl -n net.ipv4.ip_local_port_range="<start_port> <end_port>"


1
nit picking이지만 정확히 ipv4 한도가 아닙니다. tcp / udp 한도입니다. 그리고 ipv4와 독립적으로 실행됩니다. (예 : ipv6은 전송 계층에 대해 아무 것도하지 않습니다)
Joel K

아아, 네 말이 맞아 내 답변에서 IPV4 참조를 제거했습니다.
Alex

1

개인적으로 저는 nmap을 선호합니다. nmap -P 1-65535 대상을 실행하여 모든 포트의 상태를 찾을 수 있습니다. 대부분의 배포판은 패키지 관리자를 통해이 패키지를 사용할 수 있어야합니다.



0

netstat를 사용하면 열려있는 포트를 확인하고 "netstat-"를 수행하여 가장 적합한 포트를 확인하십시오.


1
netstat --inet가장 도움이 될 것입니다.
Paul Tomblin 2016 년

내말은 -? 문자가 누락되었습니다.
jer.salamon 2018 년

또는 맨 페이지
MDMarra

IPv6 소켓 및 ip-agnostic 소켓을 얻으려면 --inet6 (둘 다 -4-6)을 포함하십시오 (후자는 이중 스택 호스트의 기본값이므로 rfc 3493 섹션 3.7 참조).
Tobu


0

netstat -tulnp

netstat 프로그램에 대한 인수는 다음과 같습니다.

*

  t - Show TCP
*

  u - Show UDP
*

  l - Show only listening processes (netstat can show both listening and all established connections, i.e. as a client too)
*

  n - Do not resolve network IP address names or port numbers
*

  p - Show the process name that is listening on the port

0

터미널에서 다음 명령을 사용하여 모든 포트를 확인하십시오.

netstat -lntu

특정 포트 상태를 보려면 다음 명령을 사용하십시오.

netstat -an | grep ':6060'

6060을 특정 포트 번호로 교체하십시오.

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