이 명령 결과에 나열된 포트 번호는 어디에 있습니까?

이 명령 결과에 나열된 포트 번호는 어디에 있습니까?

내 시스템에서 간단한 포트 스캔을 실행하고 있는데 혼란스러운지 아닌지 알 수 없습니다.

실행 후 lsof -i결과는 다음과 같습니다.

명령 PID 사용자 FD 유형 장치 크기/OFF 노드 이름
firefox-e 8008 군단 43u IPv4 96999 0t0 TCP KryptL0c:44376->ec2-34-212-188-196.us-west-2.compute.amazonaws.com:https (확립됨)
firefox-e 8008 군단 67u IPv4 84170 0t0 TCP KryptL0c:52778->ord37s09-in-f10.1e100.net:https (설정됨)
firefox-e 8008 군단 94u IPv4 93549 0t0 TCP KryptL0c:56526->ord37s35-in-f1.1e100.net:https (설정됨)
firefox-e 8008 군단 98u IPv4 89869 0t0 TCP KryptL0c:47874->ec2-52-86-133-10.compute-1.amazonaws.com:https (설정됨)
firefox-e 8008 군단 126u IPv4 98838 0t0 TCP KryptL0c:40792->ord38s28-in-f10.1e100.net:https (설정됨)
firefox-e 8008 군단 131u IPv4 98839 0t0 TCP KryptL0c:41878->ord38s01-in-f10.1e100.net:https (설정됨)
firefox-e 8008 군단 133u IPv4 88016 0t0 TCP KryptL0c:44998->server-99-84-167-136.ord52.r.cloudfront.net:https (설정됨)
firefox-e 8008 군단 176u IPv4 88018 0t0 TCP KryptL0c:51574->ord37s18-in-f2.1e100.net:https (설정됨)
firefox-e 8008 군단 179u IPv4 86297 0t0 TCP KryptL0c:46752->142.250.123.157:https (설정됨)
firefox-e 8008 군단 184u IPv4 84401 0t0 TCP KryptL0c:40262->ord38s08-in-f2.1e100.net:https (설정됨)
firefox-e 8008 군단 187u IPv4 92092 0t0 TCP KryptL0c:38700->ord38s28-in-f1.1e100.net:https (설정됨)
firefox-e 8008 군단 193u IPv4 89558 0t0 TCP KryptL0c:40714->ord37s09-in-f2.1e100.net:https (설정됨)
firefox-e 8008 군단 199u IPv4 90795 0t0 TCP KryptL0c:47760->136.144.59.88:https (설정됨)
firefox-e 8008 군단 201u IPv4 90789 0t0 TCP KryptL0c:40586->server-99-84-253-65.ord50.r.cloudfront.net:https(설정됨)
firefox-e 8008 군단 210u IPv4 90803 0t0 TCP KryptL0c:41732->lga15s49-in-f4.1e100.net:https (설정됨)
firefox-e 8008 군단 214u IPv4 90805 0t0 TCP KryptL0c:45540->rio01s25-in-f3.1e100.net:https (설정됨)
firefox-e 8008 군단 221u IPv4 97886 0t0 TCP KryptL0c:41752->ord37s07-in-f14.1e100.net:https (설정됨)
firefox-e 8008 군단 301u IPv4 92423 0t0 TCP KryptL0c:59832->ord38s04-in-f2.1e100.net:https (설정됨)

첫 번째 줄의 포트는 44376입니다. 맞나요?

이것이 정확하고 이러한 서비스가 내 시스템에 설정되어 있는 경우 포트 스캔을 실행할 때 nmap -p 1-65535 xxx.xxx.x.xxx열려 있는 포트가 없다는 결과가 나오는 이유는 무엇입니까?

답변1

첫 번째 줄의 포트는 44376입니다. 맞나요?

예, 로컬 포트는 44376입니다. 그러나 시스템과 원격 호스트 간에 설정된 연결을 보고 있습니다. 일부 포트에 연결되어 있다고 해서 해당 포트에 청취 소켓이 있다는 의미는 아닙니다.

여기서 로컬 포트는 높음(>40,000)이고 원격 포트는 443(HTTPS)이므로 이것이 인터넷의 일부 HTTPS 서비스로 나가는 연결임을 높은 수준의 신뢰도로 추론할 수 있습니다.

나는 당신이 macOS 또는 BSD를 사용하고 있다고 가정합니다.

실제 리스너의 다음 예를 고려하십시오(이렇게 -P하면 포트가 "알려진 포트 이름"으로 확인되지 않습니다).

$ lsof -i udp -P
syncthing 16758 fuzzy    7u  IPv6 0xd2b0d06f6f1a443d      0t0  UDP *:22000
$ lsof -i tcp -P
syncthing 16758 fuzzy   17u  IPv6 0xd2b0d06f70a57bfd      0t0  TCP *:22000 (LISTEN)

보시다시피, 구별하기 쉽습니다. 원격 끝점이 없습니다. TCP에는 적절한 "수신" 상태가 있으므로 이 상태도 명시적으로 나열됩니다. UDP를 사용하면 일이 그렇게 쉽지 않습니다.

TCP 포트 22000에 대해 NMAP을 실행하면 열려 있는 것으로 보고됩니다.

답변2

KryptL0c:44376->ec2-34-212-188-196.us-west-2.compute.amazonaws.com:https

이 경우 우리는 할 수 있습니다미루다https는 알려진 서비스이기 때문에 연결은 클라이언트 호스트:포트 소스에서 대상 서버 호스트:포트 KryptL0c:44376로 향합니다.->ec2-34-212-188-196.us-west-2.compute.amazonaws.com:https

소스 포트는 아웃바운드, 클라이언트 측 연결에 사용되며 이를 수신하는 서비스가 없으므로 열려 있는 것으로 표시되지 않습니다. 예를 들어, 웹 서버에 대한 모든 웹 브라우저 연결은 다른 클라이언트/소스 포트를 사용하여 네트워크 연결을 엽니다. 연결이 종료되면 포트가 자동으로 닫히고 다음 연결에는 새 포트가 사용됩니다. 소스 포트는 일반적으로 32768보다 큰 숫자입니다.

https또한 공통 서비스 포트 번호 는 /etc/services 파일을 사용하여 포트 443과 같은 이름으로 해석되며 , 이와 같이 출력에 숫자로 표시되지 않는 경우가 많습니다.

관련 정보