본문 바로가기
리눅스,네트워크

네트워크 포트와 포트 포워딩

by 데이널 2023. 12. 27.

이번 포스팅에서는 네트워크 포트와 포트 포워딩에 대해 알아보도록 하겠습니다. 실제 일을 하다 보면 포트(Port)라는 말은 주변에서 자주 듣게 됩니다. 하지만 왜 포트를 사용하는지 그 개념에 대해 아는 사람은 드물죠. 이번 글에서는 포트에 대한 개념 그리고 포트 번호, 포트의 종류, 포트 포워딩까지 알아보도록 하겠습니다. 

 

 

포트(Port) 란

포트는 네트워크 통신을 할 때 가장 종점이라고 할 수 있습니다. 논리적인 접속장소 개념입니다. 특히 인터넷 프로토콜인 TCP/IP를 사용할 때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정할 때 사용합니다. 예를 들어 우리가 많이 사용하는 SSH의 경우 22 port로 지정하여 22 포트로는 접속하는 경우는 SSH만 사용하게 하는 방식입니다. 

 

포트 포워딩
포트 포워딩

 

Port 번호

포트는 0 ~ 65535까지의 포트 번호라는 숫자 값으로 식별됩니다. 이 포트 번호는 잘 알려진 포트, 등록된 포트, 동적 및/또는 개인 포트 등 세 범위로 나눠집니다. 포트는 Pocess 식별자, Service 식별자, Interface 번호라고 합니다. http는 80, 8080, SSH는 22 등 지정된 포트만 연결됩니다. 그런데 보안적인 이유로 포트를 사람들이 잘 모르는 포트로 변경하기도 합니다. IP와 해당 포트를 알면 해커들이 계속 동일한 포트로 접속을 시도할 수 있기 때문입니다. 

  • 잘 알려진 포트는 0부터 1023까지
  • 등록된 포트는 1024부터 49151까지
  • 동적 및/또는 개인 포트는 49152부터 65535까지

공통 포트

  • 21(FTP): 파일 전송 프로토콜은 네트워크의 컴퓨터 간에 파일을 전송하는 데 포트 21을 사용합니다.
  • 22(SSH): Secure Shell은 보안 원격 액세스를 위한 프로토콜이며 암호화된 통신에 포트 22를 사용합니다.
  • 25(SMTP): 단순 메일 전송 프로토콜은 서버 간에 이메일을 보내는 데 포트 25를 사용합니다.
  • 80(HTTP): 하이퍼텍스트 전송 프로토콜은 웹 통신의 기초이며 암호화되지 않은 데이터 교환에 포트 80을 사용합니다.
  • 443(HTTPS): Hypertext Transfer Protocol Secure는 암호화된 포트 443을 사용하여 웹 통신을 보호합니다.

 

동적 Port vs 정적 Port

  • 동적 Port : 운영 체제에서 일시적으로 응용 프로그램에 할당합니다. 이를 통해 여러 애플리케이션이 포트 풀을 동적으로 공유할 수 있습니다.
  • 정적 Port : 사전 정의되어 있으며 특정 서비스나 애플리케이션용으로 예약되어 있는 경우가 많습니다. 잘 알려진 포트가 이 범주에 속합니다.

 

TCP vs UDP

  • TCP : 전송 제어 프로토콜은 안정적이고 질서 있는 데이터 전송을 보장하므로 웹 브라우징 및 파일 전송과 같이 정확성이 가장 중요한 애플리케이션에 적합합니다.
  • UDP : 반면에 UDP는 더 빠르지만 덜 안정적인 통신을 제공합니다. 비디오 스트리밍 및 온라인 게임과 같은 실시간 애플리케이션에서 선호됩니다.

 

Port 포워딩

포트 포워딩은 라우터의 특정 포트에서 내부 네트워크의 장치로 연결하는 데 사용되는 기술입니다. 하나의 IP 주소와 포트 번호 결합의 통신 요청을 다른 곳으로 넘겨주는 네트워크 주소 변환(NAT)의 응용한 방식입니다. Outside의 Public IP 하나와 Port를 다르게 하여 각각 내부의 서버와 연결함으로써 여러 개의 web서버를 운영할 수 있습니다. 공유기에 이정표를 달아주는 방법이라고 해서 Port forwarding이라고 합니다. 이는 온라인 게임이나 웹 서버 호스팅과 같은 서비스에 일반적으로 사용됩니다. 

 

 

마무리

이번 글에서 포트(port)에 대해 알아보았습니다. 포트는 IP에서 하나의 접속 통로같은 역할을 합니다. 포트를 열고 닫고에 따라 접속할 수 있는 통로를 제한하는 것이죠. 특정 프로그램이나 서비스에 대해 정의된 포트만 사용하게 하는 방식으로 접속을 관리하고 보안을 유지할 수 있습니다. 지금까지 포트 정의와 유형, 용도 및 보안 영향에 대한 이야기를 해 보았습니다. 여러분도 이제는 네트워크에서 포트를 사용할 때 접속 환경에서 어떤 포트를 사용할지, 그리고 내가 접속할 포트는 무엇인지를 확실히 아셨을 거라 생각합니다.