ë¤ê°íëë ìì¦ ë¬´ì íê²½ì '3ë í¸ë ë'
차례:
네트워크 연결 또는 응용 프로그램 관련 문제를 해결할 때 가장 먼저 확인해야 할 사항 중 하나는 시스템에서 실제로 사용중인 포트와 특정 포트에서 수신중인 응용 프로그램입니다.
이 기사에서는
netstat
,
ss
및
lsof
명령을 사용하여 어떤 서비스가 어떤 포트에서 수신 대기하는지 확인하는 방법에 대해 설명합니다. 이 지침은 macOS와 같은 모든 Linux 및 Unix 기반 운영 체제에 적용됩니다.
청취 포트란?
네트워크 포트는 번호, 관련 IP 주소 및 TCP 또는 UDP와 같은 통신 프로토콜 유형으로 식별됩니다.
수신 포트는 통신 끝점 역할을하는 응용 프로그램이나 프로세스가 수신하는 네트워크 포트입니다.
방화벽을 사용하여 각 청취 포트를 열거 나 닫을 수 있습니다 (필터링). 일반적으로, 열린 포트는 원격 위치에서 들어오는 패킷을받는 네트워크 포트입니다.
동일한 IP 주소에서 동일한 포트를 수신하는 두 개의 서비스를 가질 수 없습니다.
예를 들어, 포트
80
및
443
에서 수신 대기하는 Apache 웹 서버를 실행 중이고 Nginx를 설치하려고하면 HTTP 및 HTTPS 포트가 이미 사용 중이므로 나중에 시작하지 못합니다.
netstat
수신 포트 확인
netstat
는 네트워크 연결에 대한 정보를 제공 할 수있는 명령 줄 도구입니다.
포트를 사용하는 서비스 및 소켓 상태를 포함하여 청취중인 모든 TCP 또는 UDP 포트를 나열하려면 다음 명령을 사용하십시오.
sudo netstat -tunlp
이 명령에 사용 된 옵션의 의미는 다음과 같습니다.
-
-t
-TCP 포트를 표시합니다.-u
-UDP 포트를 표시합니다.-n
호스트를 확인하는 대신 숫자 주소를 표시합니다.-l
수신 포트만 표시합니다.-p
리스너 프로세스의 PID 및 이름을 표시합니다. 이 정보는 루트 또는 sudo 사용자로 명령을 실행하는 경우에만 표시됩니다.
결과는 다음과 같습니다.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 929/master tcp6 0 0:::3306:::* LISTEN 534/mysqld tcp6 0 0:::80:::* LISTEN 515/apache2 tcp6 0 0:::22:::* LISTEN 445/sshd tcp6 0 0:::25:::* LISTEN 929/master tcp6 0 0:::33060:::* LISTEN 534/mysqld udp 0 0 0.0.0.0:68 0.0.0.0:* 966/dhclient
우리의 경우 중요한 열은 다음과 같습니다.
-
Proto
-소켓에서 사용하는 프로토콜입니다.Local Address
-프로세스가 수신하는 IP 주소 및 포트 번호입니다.PID/Program name
-PID 및 프로세스 이름.
sudo netstat -tnlp | grep:22
출력은이 머신에서 포트 22가 SSH 서버에서 사용됨을 보여줍니다.
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 445/sshd tcp6 0 0:::22:::* LISTEN 445/sshd
출력이 비어 있으면 포트에서 수신 대기중인 것이 없음을 의미합니다.
기준 (예: PID, 프로토콜, 상태 등)을 기준으로 목록을 필터링 할 수도 있습니다.
netstat
는 더 이상 사용되지 않으며
ss
및
ip
로 대체되지만 여전히 네트워크 연결을 확인하는 데 가장 많이 사용되는 명령입니다.
ss
수신 포트 확인
ss
는 새로운
netstat
입니다. 일부
netstat
기능이 없지만 더 많은 TCP 상태를 노출하며 약간 더 빠릅니다. 명령 옵션은 대부분 동일하므로
netstat
에서
ss
로의 전환은 어렵지 않습니다.
ss
로 모든 청취 포트 목록을 얻으려면 다음을 입력하십시오.
sudo ss -tunlp
출력은
netstat
보고 한 것과 거의 동일합니다.
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd", pid=445, fd=3)) LISTEN 0 100 0.0.0.0:25 0.0.0.0:* users:(("master", pid=929, fd=13)) LISTEN 0 128 *:3306 *:* users:(("mysqld", pid=534, fd=30)) LISTEN 0 128 *:80 *:* users:(("apache2", pid=765, fd=4), ("apache2", pid=764, fd=4), ("apache2", pid=515, fd=4)) LISTEN 0 128:22:* users:(("sshd", pid=445, fd=4)) LISTEN 0 100:25:* users:(("master", pid=929, fd=14)) LISTEN 0 70 *:33060 *:* users:(("mysqld", pid=534, fd=33))
lsof
수신 포트 확인
lsof
는 프로세스가 연 파일에 대한 정보를 제공하는 강력한 명령 줄 유틸리티입니다.
Linux에서는 모든 것이 파일입니다. 소켓은 네트워크에 쓰는 파일로 생각할 수 있습니다.
lsof
유형의 모든 수신 TCP 포트 목록을 가져 오려면 다음을 수행하십시오.
sudo lsof -nP -iTCP -sTCP:LISTEN
사용되는 옵션은 다음과 같습니다.
-
-n
포트 번호를 포트 이름으로 변환하지 마십시오.-p
호스트 이름을 확인하지 않고 숫자 주소를 표시합니다.-iTCP -sTCP:LISTEN
-TCP 상태가 LISTEN 인 네트워크 파일 만 표시합니다.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 445 root 3u IPv4 16434 0t0 TCP *:22 (LISTEN) sshd 445 root 4u IPv6 16445 0t0 TCP *:22 (LISTEN) apache2 515 root 4u IPv6 16590 0t0 TCP *:80 (LISTEN) mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN) mysqld 534 mysql 33u IPv6 19973 0t0 TCP *:33060 (LISTEN) apache2 764 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) apache2 765 www-data 4u IPv6 16590 0t0 TCP *:80 (LISTEN) master 929 root 13u IPv4 19637 0t0 TCP *:25 (LISTEN) master 929 root 14u IPv6 19638 0t0 TCP *:25 (LISTEN)
대부분의 출력 열 이름은 자명합니다.
-
COMMAND
,PID
,USER
포트와 관련된 프로그램을 실행하는 이름, pid 및 사용자NAME
포트 번호
특정 포트에서 수신 대기중인 프로세스 (예: 포트
3306
찾으려면 다음을 사용하십시오.
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
출력은 포트
3306
이 MySQL 서버에서 사용됨을 보여줍니다.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 534 mysql 30u IPv6 17636 0t0 TCP *:3306 (LISTEN)
자세한 내용은 lsof 매뉴얼 페이지를 방문하여이 도구의 다른 모든 강력한 옵션에 대해 읽으십시오.
결론
시스템에서 사용중인 포트를 확인하고 특정 포트에서 수신하는 프로세스를 찾는 방법을 확인하는 데 사용할 수있는 몇 가지 명령을 보여주었습니다.
단말기는 시스템에 연결된 모든 TCP, UDP 통신에 대해 매우 유용한 정보를 제공 할 수있는 무료 응용 프로그램이므로 식별하기에 유용합니다 잠재적 인 위협. 요즘 우리는 수많은 해킹 이야기를 듣고 있습니다. 수백만 대의 컴퓨터가 멀웨어에 의해 손상되고 있습니다. TCP / UDP 트래픽을 모니터링하면 사용자가 능동적 인 위협으로부터 컴퓨터를 보호 할 수 있습니다. PortExpert는 해커가 시스템에서 악의적 인 활동을 수행하는 데 사용할 수있는 열린 TCP 또는 UDP 포트를 확인합니다. 컴퓨터 사용자는 위협, 바이러스 또는 열린 포트를 확인해야하며 적시에 검사를 실행하여 컴퓨터에서 해당 위협을 탐지하고 제거해야합니다.

TCP, UDP 포트 모니터링
Linux에서 열린 포트를 확인 (스캔)하는 방법

이 기사에서는 Linux 시스템에서 어떤 포트가 외부에 열려 있는지 확인하는 몇 가지 방법에 대해 설명합니다.
df 명령을 사용하여 Linux에서 디스크 공간을 확인하는 방법

하드 드라이브에 남은 공간은 얼마입니까? Linux 기반 시스템에서는 df 명령을 사용하여 시스템의 디스크 공간 사용량에 대한 자세한 보고서를 얻을 수 있습니다.