호스트에서 열린 포트를 찾는 방법

호스트에서 열린 포트를 찾는 방법

나는 이것을 사용하여 nmap특정 컴퓨터에 어떤 포트가 열려 있는지 확인할 수 있다는 것을 알고 있습니다. 하지만 나에게 필요한 것은 호스트 측 자체에서 이를 가져오는 방법입니다.

현재 nmap한 컴퓨터에서 다른 컴퓨터를 확인하는 데 사용하면 다음과 같은 예가 표시됩니다.

smb:~# nmap 192.168.1.4

PORT    STATE  SERVICE
25/tcp  open   smtp
80/tcp  open   http
113/tcp closed ident
143/tcp open   imap
443/tcp open   https
465/tcp open   smtps
587/tcp open   submission
993/tcp open   imaps

호스트 자체에서 이 작업을 수행할 수 있는 방법이 있나요? 원격 시스템에서 특정 호스트로 가는 것이 아닙니다.

나도 할 수 있다는 걸 알아

nmap localhost 

그러나 그것은 내가 하고 싶은 일이 아닙니다. 왜냐하면 나는 모든 기계를 통과하는 스크립트에 명령을 넣을 것이기 때문입니다.

편집하다:

이렇게 nmap보여주면서도 22 5000 5001 5432 6002 7103 7106 7201 9200보여 lsof command주면서22 5000 5001 5432 5601 6002 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7201 7210 11211 27017

답변1

Linux에서는 다음을 사용할 수 있습니다.

ss -ltu

또는

netstat -ltu

목록l이스타이넨 TCP 및 UDP 포트.

포트 번호 및 IP 주소를 서비스 및 호스트 이름으로 변환하지 않으려면 이 -n옵션( ss또는 의 경우) 을 추가하십시오.netstat

어떤 프로세스가 수신 중인지 확인하는 옵션을 추가합니다 -p(있는 경우 NFS와 같은 일부 포트가 커널에 의해 바인딩될 수 있음)(수퍼유저 권한이 없는 경우 사용자를 대신하여 실행되는 프로세스에 대한 정보만 제공됩니다).

그러면 애플리케이션이 수신 대기 중인 포트가 나열됩니다(UDP의 경우 소켓이 바인딩되어 있음). 일부는 지정된 주소(IPv4 및/또는 IPv6)에서만 수신 대기할 수 있으며 이는 ss/ 출력 에 표시됩니다 netstat.0.0.0.0어느모든 IPv6 주소의 IPv4 주소 [::]). 그럼에도 불구하고 이는 네트워크의 특정 다른 호스트가 해당 포트 및 해당 주소의 시스템에 연결할 수 있다는 의미는 아닙니다. 방화벽(호스트 방화벽 포함)은 상황에 따라 어느 정도 이를 차단하거나 차단/리디렉션할 수 있기 때문입니다. 포트에서 들어오는 연결에 대한 규칙(예: 이 호스트 또는 해당 호스트, 이 또는 해당 소스 포트의 연결만 허용하고 분당 최대 횟수 등).

호스트 방화벽 구성의 경우 출력을 볼 수 있습니다 iptables-save.

또한 하나 이상의 프로세스가 TCP 소켓을 수신하고 있지만수용하다보류 중인 수신 연결 수가 최대 백로그보다 크면 더 이상 연결이 허용되지 않으며 원격 호스트의 연결은 포트가 차단된 것처럼 나타납니다. 이러한 상황(들어오는 연결이 허용되지 않고 대기열을 채우는 경우)을 알아보려면 / 출력 Recv-Q의 열을 관찰하세요.ssnetstat

답변2

당신은 또한 사용할 수 있습니다

sudo lsof -i |grep LISTEN

현재 수신 중인 모든 포트가 표시됩니다.

답변3

그냥 하세요 nmap localhost아니면nmap 127.0.0.1

편집하다:

그리고 ss -lntu로부터https://superuser.com/questions/529830/get-a-list-of-open-ports-in-linux#529844

답변4

사용된 애플리케이션/포트 조합 목록 보기

cat /etc/services

열려 있는 TCP/UDP 포트를 보려면 터미널에 다음을 입력하세요.

netstat -lntu

또는

ss -lntu

관련 정보