Linux 서버에서 인터넷으로 열려 있는 연결 수를 확인하는 방법은 무엇입니까?

Linux 서버에서 인터넷으로 열려 있는 연결 수를 확인하는 방법은 무엇입니까?

엔드포인트의 응답 시간이 특정 서버에 대해서는 응답 시간이 더 길지만 다른 서버에서는 그렇지 않은 문제가 있습니다. 또한 이 문제는 "curl 'ww.google.com'"과 같이 인터넷에 있는 모든 엔드포인트에서 발생하는 것으로 나타났습니다. 더 많은 분석을 통해 우리는 이것이 특정 시간 동안에만 발생한다는 것을 알 수 있습니다. 그래서 나는 호스트가 인터넷에 만든 HTTP 연결을 어떻게 나열하는지 알고 싶습니다. 이것에 대해 도와주세요.

답변1

로컬 Linux 시스템에서 원격 시스템의 포트 80을 통해 원격 시스템으로 이루어진 활성 연결 수를 나열하려면 netstat를 사용하여 활성 연결을 나열하고 외부 주소 열에서 특정 포트를 가져올 수 있습니다.

netstat -tnap | awk '{print$5}' | grep :80 | wc -l

netstat -tnap은 모든 활성 연결을 제공하며 awk를 사용하여 다섯 번째 열만 나열하여 외부 주소의 포트 80에서 이루어진 연결만 나열할 수 있으며 외부 주소의 포트 80에 대한 연결을 greping하면 모든 원격 주소가 제공됩니다. , 그러면 wc -l에 대한 파이프 연결 수를 얻을 수 있습니다.

netstat가 더 이상 사용되지 않고 ss로 대체되므로 MadHatter가 제안한 ss - 소켓 통계를 사용할 수도 있습니다.

ss -tan | awk '{print$5}' | grep :80 | wc -l

답변2

lsofnetstat 또는 ss 외에도 다른 사람들이 제안한 것처럼 (열린 파일 나열)이 유용하다고 생각합니다 -i. UNIX에서는 모든 것이 파일이므로 옵션을 사용하면 네트워크 파일이나 소켓을 나열합니다. 를 사용하면 -i4IPv4로 범위를 좁히고 그 뒤에 :80또는 각각 :443에 대한 포트 번호를 지정할 수 있습니다 . 자세한 내용을 보려면 ls 매뉴얼 페이지를 확인하세요.httphttps

 
[root@kauai tmp]# lsof -i4:80 -n
명령 PID 사용자 FD 유형 장치 크기/OFF 노드 이름
firefox 4128 다니엘 76u IPv4 111733311 0t0 TCP 192.168.10.103:50500->198.252.206.149:http (설정됨)
firefox 4128 다니엘 96u IPv4 112109229 0t0 TCP 192.168.10.103:51201->198.252.206.149:http (확립됨)
firefox 4128 다니엘 108u IPv4 111452598 0t0 TCP 192.168.10.103:50410->198.252.206.149:http (설정됨)
clock-app 31704 다니엘 21u IPv4 126088871 0t0 TCP 192.168.10.103:55146->23.67.61.171:http (설정됨)

[root@kauai tmp]# lsof -i4:443 -n
명령 PID 사용자 FD 유형 장치 크기/OFF 노드 이름
firefox 4128 다니엘 52u IPv4 125964214 0t0 TCP 192.168.10.103:45435->23.67.118.140:https (확립됨)

관련 정보