응용 프로그램에서 사용하기 위해 모든 열린 포트를 나열하려면 Linux 명령이 필요합니다
lsof -i TCP| fgrep LISTEN
목록에있는 포트가 반드시 사용 가능한 것은 아니기 때문에 도움이되지는 않습니다. 사용하지 않는 열린 포트를 어떻게 나열합니까?
응용 프로그램에서 사용하기 위해 모든 열린 포트를 나열하려면 Linux 명령이 필요합니다
lsof -i TCP| fgrep LISTEN
목록에있는 포트가 반드시 사용 가능한 것은 아니기 때문에 도움이되지는 않습니다. 사용하지 않는 열린 포트를 어떻게 나열합니까?
답변:
netstat -lntu
@askmish에 의해 응답 된 것처럼 tcp 및 udp 포트에서 시스템에서 실행되는 서비스 목록을 제공합니다.
-l
= 일부 포트에서 수신 대기중인 서비스 만-n
= 포트 번호 표시, 서비스 이름을 확인하지 마십시오-t
= TCP 포트-u
= UDP 포트-p
= 프로그램 이름사용 가능한 포트가 있고 어떤 프로그램이 실행 중인지에 관심이 있으므로 'p'매개 변수가 필요하지 않습니다.
그래도 시스템의 어느 포트가 사용되는지 보여줍니다. 예를 들어 NAT 뒤에 있고 외부에서 일부 서비스에 액세스하려는 경우 네트워크 상태를 알 수 없습니다. 또는 방화벽이 외부 방문자의 포트를 차단하는 경우. 이 경우 nmap이 구조에 온다. 경고 : 제어가 가능한 네트워크에서만 nmap을 사용하십시오. 또한 nmap 핑을 차단할 수있는 방화벽 규칙이 있으므로 올바른 결과를 얻으려면 옵션을 검토해야합니다.
ss
에 포함되어 있지 않은 경우
이후 net-tools
사용되지 않습니다 , 당신은 사용할 수있는 ss
명령 대신의 netstat
경우 netstat
컴퓨터에없는입니다 :
ss -lntu
와 비슷하게 작동해야합니다
netstat -lntu
내장 된 도움말에 따르면 :
-n, --numeric don't resolve service names
-l, --listening display listening sockets
-t, --tcp display only TCP sockets
-u, --udp display only UDP sockets
응답 트래픽을 포함한 모든 열린 포트 :
netstat -tuwanp 2>/dev/null | awk '{print $4}' | sort | uniq -c | wc -l
netstat -tuwanp4 | awk '{print $4}' | grep ':' | cut -d ":" -f 2 | sort | uniq
다음 명령은 Ubuntu / Debian과 동일한 형식으로 출력되는 모든 Unix에서 작동합니다. 여기서 로컬 주소는 4 열에 있고 출력은 맨 위에 2 줄 헤더를 포함합니다. 그 숫자 중 하나가 다른 경우 아래 awk 명령을 조정하십시오.
IPv4 만 원하는 경우 :
netstat -lnt | awk 'NR>2{print $4}' | grep -E '0.0.0.0:' | sed 's/.*://' | sort -n | uniq
IPv6 만 원하는 경우 :
netstat -lnt | awk 'NR>2{print $4}' | grep -E ':::' | sed 's/.*://' | sort -n | uniq
둘 다 원하는 경우 :
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(0.0.0.0:|:::)' | sed 's/.*://' | sort -n | uniq
이 명령은 모든 인터페이스에서 수신 대기중인 포트 번호 목록을 출력합니다. localhost 인터페이스에서 수신 대기중인 모든 포트를 나열하려면 다음과 같이 사용하십시오.
netstat -lnt | awk 'NR>2{print $4}' | grep -E '(127.0.0.1:|::1:)' | sed 's/.*://' | sort -n | uniq
netstat
많은 시스템에서 사용되지 않으며ss
대신 사용해야합니다.