Linux에서 포트를 여는 방법

외부 PC 또는 서버에 연결해야 하거나 연결하기 위해 다른 PC 또는 서버가 필요하십니까? Linux를 실행하는 경우 올바른 포트가 열려 있는지 확인해야 합니다.

다른 운영 체제에는 일반적으로 이를 위한 그래픽 도구가 있지만 Linux는 그렇게 간단하지 않습니다. 아래에서 Linux에서 포트를 여는 방법을 안내합니다.

포트란 무엇이며 포트를 열어야 하는 이유는 무엇입니까?

포트는 네트워크의 끝점입니다. 특정 방이나 외부 세계로 연결되는 문처럼 생각하세요. 하지만 컴퓨터에 있습니다. 인터넷에서 수행하는 모든 작업은 특정 포트 또는 일련의 포트를 사용합니다.

예를 들어 자신의 Minecraft 서버를 실행하고 싶다고 가정해 보겠습니다. 그렇게 하려면 사용자가 포트에 연결할 수 있도록 포트를 열어야 합니다. 자신의 웹, 메일 또는 FTP 서버를 실행할 때도 마찬가지입니다.

포트는 네트워크에 연결된 모든 장치에서 표준화됩니다. 처음 1,024개의 포트(0에서 1023까지)를 잘 알려진 포트 번호라고 합니다 . HTTP 및 HTTP(각각 포트 80 및 443) 및 SSH(포트 22)와 같이 가장 일반적으로 사용되는 서비스용으로 예약되어 있습니다.

1024보다 큰 포트 번호를 임시 포트 라고 하며 일반적으로 온라인 게임, 개인 웹 서버 등에 사용할 수 있습니다. 포트 번호 1024~49151을 등록 또는 사용자 포트 라고 하고 49152~65535를 동적 또는 개인 포트 라고 합니다.

Linux에서 열린 포트 나열

Linux에서 포트 열기를 시작하기 전에 이미 사용 중이 아닌지 확인해야 합니다. 대부분의 Linux 배포판에 포함된 netstat 명령 을 사용하여 이를 수행할 수 있습니다 . 배포에 netstat 가 없으면 대신 ss 를 사용할 수 있습니다 .

netstat -lntu

Linux에서 포트를 여는 방법

그러면 포트 번호( -n ) 와 함께 모든 수신 소켓( -l )이 인쇄 됩니다. 여기에는 TCP 포트( -t )와 UDP( -u )가 포함됩니다. 시스템에 netstat 이 없으면 동일한 매개변수와 함께 ss 를 사용 하십시오.

ss -lntu

Linux에서 포트를 여는 방법

Linux에서 포트를 여는 방법

이 예에서는 TCP 연결에 대해 포트 4000을 열고 싶다고 가정합니다. 먼저 포트가 이미 사용 중이 아닌지 확인해야 합니다. netstat 또는 ss 를 통해 이 작업을 수행합니다 .

netstat -na | grep :4000 ss -na | grep :4000

출력이 비어 있다고 가정하면 시스템의 방화벽에 적절한 포트 규칙을 추가할 수 있습니다. 이를 위한 방법은 배포판과 최신 ufw 방화벽 또는 firewalld 사용 여부에 따라 다릅니다 . Ubuntu 는 ufw 를 선호하지만 CentOS는 일반적으로 대신 firewalld 를 사용합니다. 물론 이전 iptables 방화벽을 사용하는 일부 Linux 배포판이 여전히 있습니다.

Ubuntu 사용자 및 기타 ufw 방화벽 기반 시스템용

이전 iptables 방화벽 을 사용하는 대신 Ubuntu 및 일부 다른 배포판은 ufw 를 사용 합니다. 이러한 시스템에서 다음 명령은 포트를 엽니다.

sudo ufw allow 4000

다음 몇 단계를 건너뛰고 새로 열린 포트를 테스트하여 작동하는지 확인하십시오.

CentOS 및 기타 방화벽 기반 시스템을 사용하여 Linux에서 포트를 여는 방법

시스템 에서 firewalld 를 사용하는 경우 가장 좋은 방법은 firewall-cmd 명령을 사용하여 규칙을 업데이트하는 것입니다.

sudo firewall-cmd --add-port=4000/tcp

이것은 영구적인 변경 사항은 아니지만 포트를 테스트한 후 재부팅 후 규칙을 유지하는 방법을 다룰 것입니다.

기타 Linux 배포판의 경우

Linux 시스템에 ufw 또는 firewalld 가 없으면 iptables 를 사용해야 합니다 . 설치되지 않은 경우 선택한 패키지 관리자를 사용하여 가져옵니다. 설치가 완료되면 이 명령은 포트 4000을 엽니다.

sudo iptables -A INPUT -p tcp --dport 4000 -j ACCEPT sudo service iptables restart

시스템 에서 systemctl 을 사용 하는 경우 두 번째 명령을 다음으로 바꿉니다.

sudo systemctl restart iptables

연결을 위해 새로 열린 포트 테스트

다음으로 포트를 테스트하여 연결을 허용하는지 확인해야 합니다. netcat( nc )을 사용하여 포트를 수신 대기한 다음 텔넷으로 포트에 연결하여 이를 수행합니다.

먼저 터미널 창을 열고 다음 명령을 실행합니다.

sudo ls | nc -l -p 4000

실행(듣기) 상태로 두고 두 번째 터미널 창을 엽니다. 해당 창에서 텔넷을 사용하여 연결을 테스트합니다. 텔넷이 설치되어 있지 않으면 패키지 관리자를 사용하여 설치하십시오.

telnet [hostname/IP address] [port number]

[호스트 이름/IP 주소] 를 시스템의 IP 주소로 바꾸고 [포트 번호] 를 열려 있는 포트 번호로 바꿉니다 .

telnet localhost 4000

nc 와의 열린 연결을 나타내는 아래와 같은 출력이 표시되어야 합니다 .

Linux에서 포트를 여는 방법

nmap 을 사용하여 포트가 열려 있음을 보여줄 수도 있습니다 . 다시 말하지만, 명령이 아직 설치되지 않은 경우 패키지 관리자를 사용하여 검색합니다.

nmap localhost -p 4000

Linux에서 포트를 여는 방법

nmap 은 연결을 수신 대기하는 열린 포트만 나열합니다. 이것이 우리가 테스트에 netcat을 사용하여 해당 포트에서 수신 대기하는 이유입니다. 그렇지 않으면 포트가 열려 있는 것으로 등록되지 않습니다.

방금 연 포트에 연결할 수 없습니다. 이제 어떻게 합니까?

위의 모든 단계를 실행했는데 포트에 연결할 수 없으면 입력을 다시 확인하십시오. 모든 항목을 올바르게 입력했다고 확신하는 경우 트래픽을 허용하도록 네트워크 라우터를 재구성해야 할 수도 있습니다.

네트워크 라우터마다 구성 화면이 다르기 때문에 특정 장비에 대한 지원 페이지나 사용 설명서를 참조해야 합니다. 라우터가 사용할 수 있는 내장 방화벽뿐만 아니라 포트 전달 또는 포트 매핑 설정을 확인해야 합니다.

Linux에서 영구적으로 포트를 여는 방법

열린 포트를 테스트하고 작동하는지 확인한 후에는 변경 사항을 영구적으로 만들고 싶을 것입니다. 그렇지 않으면 재부팅 후 변경 사항이 유지되지 않을 수 있습니다. Ubuntu 사용자이거나 ufw 방화벽을 사용하는 경우 이에 대해 걱정할 필요가 없습니다. ufw 규칙 은 재부팅 시 재설정되지 않습니다.

방화벽 사용자의 경우

방화벽 을 사용하면 재부팅 후 포트 규칙을 유지하는 것이 쉽습니다 . -permanent 플래그를 초기 명령에 추가하기만 하면 시작 시 Linux 시스템의 방화벽 규칙에 포함됩니다.

sudo firewall-cmd --add-port=4000/tcp --permanent

여전히 iptables를 사용하는 경우

iptables 방화벽은 훨씬 더 번거롭습니다( firewalld 또는 ufw 로 업그레이드해야 하는 좋은 이유일 수 있음). iptables 에서 포트를 "영구적으로" 열려면 iptables-persistent 패키지를 설치하면 도움이 됩니다.

데비안 기반 시스템에 iptables-persistent 를 처음 설치하면 현재 규칙이 /etc/iptables/rules.v4 또는 /etc/iptables/rules.v6 에 저장 됩니다. 새 규칙을 추가하려면 다음 명령을 실행합니다.

sudo iptables-save > /etc/iptables/rules.v4

또는

sudo iptables-save > /etc/iptables/rules.v6

RPM 기반 Linux 배포판을 실행하는 경우에는 약간 다릅니다. 패키지 이름은 iptables-services 이고 저장 파일은 /etc/sysconfig/iptables/etc/sysconfig/ip6tables 입니다.

RPM 기반 배포판에는 IPv6 포트에 사용되는 다른 명령도 있습니다. 다음 두 명령 중 하나를 사용하여 규칙을 저장합니다.

sudo iptables-save > /etc/sysconfig/iptables sudo ip6tables-save > /etc/sysconfig/iptables

포트 사용을 모니터링하십시오

시간이 지남에 따라 서버 요구 사항이 변경될 수 있습니다. Linux 시스템 의 사용자 계정을 최신 상태로 유지 해야 하는 것처럼 열려 있는 포트도 정기적으로 감사해야 합니다. 더 이상 필요하지 않은 열려 있는 포트를 모두 닫습니다. 정기적으로 암호를 변경하는 것과 함께 이는 시스템 침입 및 보안 악용을 방지하는 데 도움이 되는 좋은 보안 방법입니다.

Tags: #HOW-TO

Leave a Comment

Escape from Tarkov의 서버 연결 끊김에 대한 9가지 수정 사항

Escape from Tarkov의 서버 연결 끊김에 대한 9가지 수정 사항

Escape from Tarkov에서 서버 연결 끊김 문제를 해결하기 위한 9가지 테스트 솔루션을 즉시 수행하세요.

수정: 응용 프로그램이 그래픽 하드웨어에 액세스하지 못하도록 차단됨

수정: 응용 프로그램이 그래픽 하드웨어에 액세스하지 못하도록 차단됨

이 문서를 읽고 해결 방법에 따라 Windows 10 PC에서 응용 프로그램이 그래픽 하드웨어 오류에 액세스하지 못하도록 차단되었습니다.

Bootrec/Fixboot 액세스가 거부된 Windows 10 오류를 수정하는 방법?

Bootrec/Fixboot 액세스가 거부된 Windows 10 오류를 수정하는 방법?

이 기사는 bootrec/fixboot 액세스 거부 오류를 수정하는 유용한 솔루션을 제공합니다. CHKDSK 실행, 부트로더 복구, 시작 복구 및 더 많은 방법을 알아보세요.

[수정됨] Valheim이 계속 충돌, 정지, 검은색 화면, 문제를 시작하지 않음

[수정됨] Valheim이 계속 충돌, 정지, 검은색 화면, 문제를 시작하지 않음

Valheim이 계속 충돌/멈춤, 검은 화면, 실행되지 않음 또는 기타 문제가 있습니까? Valheim 문제를 해결하려면 다음 솔루션을 따르십시오.

수정됨: Steam 친구 네트워크에 연결할 수 없는 오류 [5가지 빠른 수정]

수정됨: Steam 친구 네트워크에 연결할 수 없는 오류 [5가지 빠른 수정]

Steam 친구 네트워크에 연결할 수 없음 오류를 수정하는 방법을 배우고 친구의 네트워크에 연결할 수 없는 Steam 오류를 해결하는 5가지 테스트된 솔루션을 따르십시오.

[수정됨] 레지던트 이블 7 바이오하자드 게임 충돌, 오류 등!

[수정됨] 레지던트 이블 7 바이오하자드 게임 충돌, 오류 등!

레지던트 이블 7 게임을 스트리밍할 수 없습니다. 단계별 안내에 따라 게임 오류를 해결하고 중단 없이 게임을 플레이하십시오.

Corsair 유틸리티 엔진 업데이트 오류를 ​​수정하는 방법

Corsair 유틸리티 엔진 업데이트 오류를 ​​수정하는 방법

corsair 유틸리티 엔진 업데이트 오류를 ​​해결하고 이 도구의 새로운 기능에 액세스하기 위한 문제 해결 솔루션을 알아보십시오.

PS5 컨트롤러가 연결되지 않거나 동기화되지 않는 문제를 해결하는 방법은 무엇입니까?

PS5 컨트롤러가 연결되지 않거나 동기화되지 않는 문제를 해결하는 방법은 무엇입니까?

PS5 컨트롤러가 연결되지 않거나 동기화되지 않으면 이러한 PS5 컨트롤러 연결 문제를 해결하기 위해 시도되고 테스트된 솔루션을 시도하십시오.

PC에서 젤다의 전설: 야생의 숨결을 플레이하는 방법?

PC에서 젤다의 전설: 야생의 숨결을 플레이하는 방법?

PC에서 젤다의 전설: 야생의 숨결을 플레이하고 싶으신가요? 여기에서 Windows PC에서 Legend Of Zelda BOTW를 플레이할 수 있는 모든 방법을 확인하십시오.

Windows 10 업데이트 오류 코드 0x800706D9를 수정하는 5가지 솔루션

Windows 10 업데이트 오류 코드 0x800706D9를 수정하는 5가지 솔루션

Windows 10 업데이트 오류 0x800706D9 문제를 해결하고 사용 가능한 업데이트를 설치한 다음 주어진 솔루션에 따라 Windows를 오류 없이 만들고 싶습니다.