logo

Linux에서 열린 포트를 확인하는 방법

간략하게 컴퓨터 네트워킹 내의 포트를 설명하고 더 나아가 Linux에서 열려 있는 모든 포트를 나열하는 방법에 대해 설명하겠습니다.

포트는 컴퓨터 네트워킹 및 소프트웨어 용어에서 논리적 개체로 정의될 수 있습니다.

이는 주어진 프로세스나 애플리케이션을 식별하기 위한 통신 종점 역할을 합니다. 리눅스 운영체제 . 포트는 16비트(~65535) 다양한 최종 시스템에서 단일 애플리케이션을 다른 애플리케이션과 구별하는 번호입니다.

가장 유명한 인터넷 전송 프로토콜 중 두 가지는 사용자 데이터그램 프로토콜(UDP) 그리고 전송 제어 프로토콜(TCP) 및 기타 프로토콜은 많은 통신 세션에 포트 번호를 적용합니다(대상 및 소스 IP 주소와 함께 대상 및 소스 포트 번호).

프로토콜, 포트, IP 주소의 조합 TCP/UDP 이라고 불린다 소켓. 모든 서비스에는 특정 소켓이 있어야 합니다.

mysql 목록 사용자

항구의 종류

이러한 포트는 포트의 다양성이 크기 때문에 사용 편의성을 위해 세 가지 범주로 나뉩니다. 모든 범주에는 포트 값 범위로 레이블이 지정됩니다.

0-1023: 이러한 포트는 잘 알려진 그리고 전화했다 '체계' 포트. 이는 광범위한 네트워크 서비스를 제공하는 시스템 프로세스용으로 예약되어 있습니다. 프로세스는 모든 바인딩에 대해 수퍼유저 권한을 가지고 있어야 합니다. '잘 알려진' 포트.

1024-49151: 이러한 포트는 '등기' 그리고 전화했다 '사용자' 포트. 그들은 다음을 통해 지정됩니다. IANA 독특한 서비스를 위해. 프로세스는 요청 시 인증을 받을 수 있습니다. 대부분의 시스템 경우에는 이러한 포트를 사용하기 위해 수퍼유저의 권한이 필요하지 않습니다.

49152-65535: 이러한 포트는 '동적' 그리고 전화했다 '사적인' 포트. 등록할 수 없습니다. IANA. 이러한 유형의 포트는 맞춤형 및 개인 서비스용으로 개방되어 있으며 임시 포트(라고도 함)로 할당될 수도 있습니다. 수명이 짧은 IP로 적용되는 포트)를 자동으로 사용합니다.

Linux에서 열린 포트를 확인하는 방법에는 여러 가지가 있습니다. 기본적으로 포트는 응용 프로그램이 적용되지 않는 한 닫힙니다. 포트가 열려 있는 경우 프로세스나 서비스에 할당해야 합니다.

열린 포트 목록

어떤 포트가 열려 있는지보다는 어떤 포트가 사용 중인지 아는 것이 더 쉽습니다. 따라서 아래 섹션에서는 현재 사용 중인 모든 포트를 나열하는 방법을 제공합니다.

Linux에는 이 작업을 위한 여러 도구가 있습니다. 대부분 이용 가능 내장 리눅스 배포판에서.

현재 열려 있는 포트를 파악하면 많은 시나리오에서 도움이 될 수 있습니다. 보장된 애플리케이션에 대한 전용 포트를 결정하는 것이 가능합니다. 열린 포트는 네트워크 내의 강력한 침입 표시일 수 있습니다.

방법은 다음에 사용됩니다. 우분투 20.04 LTS 아래에 언급된 내용입니다.

/etc/services 파일을 사용하여 열린 포트 및 프로토콜 나열

파일, 즉 /etc/서비스 (현재) 실행 중인 서비스에 대한 세부 정보가 포함되어 있습니다. 대용량 파일입니다.

 $cat /etc/services | less 

Linux에서 열린 포트를 확인하는 방법

netstat를 사용하여 열린 포트 나열

그만큼 netstat 도구는 라우팅 테이블, TCP 및 여러 네트워크 인터페이스에 대한 네트워크 연결을 표시하는 유틸리티로 설명될 수 있습니다. 또한 네트워크 프로토콜의 통계를 용이하게 합니다. netstat 도구를 사용하여 시스템의 모든 열려 있는 포트를 나열할 수 있습니다.

아래 명령을 실행할 수 있습니다.

 $ netstat -atu 

Linux에서 열린 포트를 확인하는 방법

위 명령에서 사용한 각 플래그의 분석을 빠르게 설명하겠습니다.

1. 가: 이 플래그는 netstat에 각 소켓을 표시하도록 알립니다.

2. 티: 이 플래그는 netstat에 TCP 포트 나열을 알립니다.

3. 에서: 이 플래그는 UDP 포트 목록을 netstat에 알립니다.

그만큼 netstat 명령에는 아래에 언급된 또 다른 변형이 있습니다.

 $ netstat -lntu 

Linux에서 열린 포트를 확인하는 방법

위 명령에는 두 개의 플래그가 새로 추가되었습니다. 이에 대한 설명은 다음과 같습니다.

1. 나: 이 플래그는 netstat에 청취 소켓만 인쇄하도록 알립니다.

자바의 수학적 방법

2. 엔: 이 플래그는 netstat에 포트 번호 표시를 알립니다.

우리는 플래그를 사용할 수 있습니다. 즉, '-피' 포트를 사용하고 있는 프로세스 PID를 표시합니다.

 $ netstat -lntup 

Linux에서 열린 포트를 확인하는 방법

로컬에서 열린 포트 확인

netstat 명령은 네트워크 연결을 모니터링하기 위해 모든 컴퓨터 운영 체제에서 사용할 수 있습니다. 아래 명령은 netstat를 적용하여 TCP 프로토콜로 각 수신 포트를 표시합니다.

 netstat -lt 

Linux에서 열린 포트를 확인하는 방법

위 명령에 있는 플래그를 간략하게 정의해 보겠습니다.

1. -l: 청취 포트가 나열됩니다.

2. -티: TCP 프로토콜을 지정합니다.

결과는 프로토콜, 인간 친화적, 전송 및 수신 패킷, 포트 상태, 원격 및 로컬 IP 주소를 표시하는 열에 잘 정렬되어 있습니다.

UDP 프로토콜에 대해 TCP 프로토콜을 수정하면 출력에는 열린 포트만 표시됩니다. 결과는 TCP 프로토콜과 모순되어 상태를 설명하지 않고 표시됩니다.

 netstat -lu 

Linux에서 열린 포트를 확인하는 방법

프로토콜 설명을 무시하고 --listen 또는 -l 옵션만 적용하여 프로토콜을 자유롭게 수신하는 각 포트에 대한 세부 정보를 얻을 수 있습니다.

 netstat --listen 

Linux에서 열린 포트를 확인하는 방법

위 옵션은 Unix, UDP 및 TCP 소켓 프로토콜에 대한 세부 정보를 표시합니다.

위의 모든 예는 승인된 연결 없이 수신 대기 포트를 통해 세부 정보를 인쇄하는 방법을 보여줍니다. 아래 명령은 수신 포트 및 승인된 연결을 표시하는 방법을 표시합니다.

 netstat -vatn 

Linux에서 열린 포트를 확인하는 방법

어디:

1. -in: 자세한 내용을 표시하는 데 사용됩니다.

2. -a: 활성 연결을 표시합니다.

3. -티: TCP 연결을 표시합니다.

4. -n: 포트(숫자값)를 표시합니다.

TCP 및 IP 모델

시스템 내에서 의심스러운 프로세스를 인식하고 이에 관련된 포트를 확인하고 싶다고 가정해 보겠습니다. 프로세스와 관련된 열린 파일을 나열하는 데 사용되는 lsof 명령을 사용할 수 있습니다.

 lsof -i 4 -a -p 

어디,

1. -i: 인터넷과 협력하는 파일을 나열합니다. 6 옵션이 있습니다 IPv6, 그리고 4 옵션은 인쇄만 지시합니다. IPv4.

2. -a: 결과를 다음과 같이 지시합니다. 당신은주었습니다.

3. -p: 확인하려는 프로세스 PID 번호를 지정합니다.

ss를 사용하여 열린 포트 나열

그만큼 봄 여름 시즌 도구는 소켓을 조사하는 유틸리티로 지정할 수 있습니다. 이 도구의 사용법은 다음과 같습니다. netstat 명령.

열려 있는 포트를 나열하려면 아래 명령을 실행할 수 있습니다.

 $ ss -lntu 

Linux에서 열린 포트를 확인하는 방법

위의 플래그는 다음과 같습니다. netstat 명령. ss 도구에서 설명하는 기능도 거의 동일합니다.

1. 나: 이 플래그는 ss에 청취 소켓을 표시하도록 알립니다.

2. 엔: 이 플래그는 ss에게 서비스 이름을 마무리하려고 시도하지 않도록 알립니다.

3. 티: 이 플래그는 ss에 TCP 소켓 표시를 알립니다.

4. 에서: 이 플래그는 UDP 소켓을 표시하도록 ss에 알립니다.

lsof를 사용하여 열린 포트 나열

lsof 명령은 열려 있는 파일을 나열하는 데 사용할 수 있습니다. 그러나 열려 있는 포트를 표시하는 데에도 사용할 수 있습니다.

다음 명령을 실행할 수 있습니다.

문자열 대체 자바
 $ lsof -i 

Linux에서 열린 포트를 확인하는 방법

특정 프로토콜(UDP, TCP 등)의 열린 포트를 얻으려면 다음을 사용한 후 이를 지정하십시오. '-나' 플래그를 지정하면 다음 명령을 실행할 수 있습니다.

 $ lsof -i 

nmap을 사용하여 열린 포트 나열

nmap 명령은 포트/보안 스캐닝 및 네트워크 탐색에 강력한 명령으로 정의될 수 있습니다. 또한 시스템 내의 열려 있는 각 포트를 보고할 수도 있습니다.

열려 있는 TCP 포트를 나열하기 위해 다음 명령을 실행할 수 있습니다.

 $ sudo nmap -sT -p- localhost 

Linux에서 열린 포트를 확인하는 방법

위에서 언급한 이 명령에는 두 가지 섹션이 있습니다.

1. -ST: 스캔을 위해 nmap 도구에 알립니다. TCP 포트.

2. -p-: nmap 도구에 모든 스캔을 알려줍니다. 65535 포트. nmap 도구가 스캔합니다. 1000 사용하지 않는 경우 기본적으로 포트만 사용됩니다.

UDP의 열린 포트를 나열해야 하는 경우 다음 명령을 실행할 수 있습니다.

 $ sudo nmap -sU -p- localhost 

Linux에서 열린 포트를 확인하는 방법

UDP 및 TCP 포트를 모두 가져오기 위해 다음 명령을 실행할 수도 있습니다.

 $ sudo nmap -n -PN -sT -sU -p- localhost 

Linux에서 열린 포트를 확인하는 방법

netcat을 사용하여 열린 포트 나열

netcat 도구는 UDP 및 TCP 프로토콜의 여러 네트워크 연결에서 데이터를 읽고 쓰는 명령줄 유틸리티로 설명할 수 있습니다. 또한 열려 있는 포트를 나열하는 데에도 사용할 수 있습니다. 이 도구는 특정 포트 또는 다양한 포트에 대한 테스트를 구현할 수 있습니다.

아래 netcat 명령은 다음에서 포트를 스캔하는 데 사용됩니다. 1-1000. 기본적으로 TCP 프로토콜을 통한 스캔을 구현합니다.

 $ nc -z -v localhost 1-1000 

Linux에서 열린 포트를 확인하는 방법

또한 특정 포트의 전체 목록으로 확장될 수도 있습니다.

 $ nc -z -v localhost 1-65535 

Linux에서 열린 포트를 확인하는 방법

이러한 플래그를 빠르게 분석해 보겠습니다.

1. 출처: 데이터를 전송하지 않고 열린 포트만 검색하도록 netcat 명령에 알립니다.

2. 에서: 자세한 정보 표시 모드에서 실행되도록 netcat 명령을 알려줍니다.

용어에 대한 grep의 도움으로 결과를 필터링할 수 있습니다. '성공했다' 이 목록을 통해 열린 포트만 가져옵니다.

 $ nc -z -v 127.0.0.1 20-80 | grep succeeded 

Linux에서 열린 포트를 확인하는 방법

UDP 프로토콜을 통한 스캔을 구현하려면 다음을 수행하십시오. 우리는 다음을 포함할 수 있습니다. '-안에' 깃발.

 $ nc -z -v -u localhost 0-65535 2>&1 | grep succeeded