Port Binding(포트 바인딩), Port Forwarding(포트 포워딩), Port Mapping(포트 매핑)

gunny·2025년 3월 14일
1

[CS] OS, Network

목록 보기
9/10

GPU H100이 장착된 서버에서 Docker 컨테이너로 띄운 원격에서 접속할 수 있는 특정 호스트와 포트를 할당 받았다. 이 컨테이너에 원격으로 접근해야 하는데 그와 관련된 네트워크 지식이 좀 짧아서, 이참에 필요한 개념을 정리했다.

Port Binding (포트 바인딩)

  • 포트 바인딩은 애플리케이션 또는 서버가 특정 포트에서 네트워크 트래픽을 수신하도록 설정하는 과정이다. 즉, 서버가 특정 포트에서 "리스닝" 해서 클라이언트가 해당 포트로 보낸 요청을 받을 수 있게 만드는 작업이다.

  • 예를 들어서, 웹 서버가 80번 포트에서 요청을 받으려면, 해당 서버는 80번 포트를 바인딩해야 한다.
    포트 바인딩은 서버에서 직접 포트를 열고, 특정 애플리케이션이 그 포트에서 통신을 하도록 설정 하는 것이다.

  • 서버가 요청을 받을 수 있도록 특정 포트에 대해 리스팅 상태를 유지할 때 사용된다.

-> 쉬운 말로 풀어쓰면 웹 서버가 80번 포트에서 요청을 받으려면,
서버는 80번 포트에 '열려 있는 상태'가 되어 있어야 한다.
즉, 웹 서버가 80번 포트를 사용해서 외부에서 오는 요청을 받을 준비를 해야 한다는 의미이다. 해당 포트에서 요청을 받기 위한 준비 과정

Port Forwarding (포트 포워딩)

  • 포트 포워딩은 네트워크의 라우터나 방화벽을 사용하여 외부에서 들어오는 네트워크 트래픽을 내부 네트워크의 특정 장비와 포트로 전달하는 작업이다.
    이 작업을 통해 외부에서 특정 포트로 들어오는 요청이 내부 서버나 장비로 전달되도록 설정 할 수 있다.

  • 예를 들어, 외부에서 8080번 포트로 들어오는 트래픽을 내부 서버의 80번 포트로 전달하는 경우, 8080번 포트로 들어온 요청이 자동으로 내부 서버의 80번 포트로 전송된다.
    보통 라우터나 방화벽에서 설정되고, 외부 네트워크에서 외부 네트워크의 특정 서비스에 접근할 수 있게 한다.


사진 출처 : https://blog.1nfra.kr/220

  • 외부에서 내부 네트워크의 서비스에 접근할 수 있도록 허용할 때 사용된다.

-> 즉, 쉽게 풀어쓰자면 외부에서 들어오는 요청을 집안에 있는 특정 방으로 보내는 과정이다. 예를들어서 외부에 집 앞에 있는 문(특정 포트)로 들어오는 사람이 있다고 가정할 때, 이 살마이 집 안에 있는 방(서버)에 들어가려면, 집의 관리자가 이 사람을 맞는 방으로 안내해줘야 한다. 집의 관리자는 여기서 들어온 사람은 이방으로 보내라. 라고 설정하는 것과 같다.
포트 포워딩은 외부에서 온 요청을 내부의 특정 서버나 컴퓨터로 전달해주는 설정이다!!

Port Mapping (포트 매핑)

  • 포트 매핑은 포트 포워딩과 매우 유사한 개념인데, 외부에서 들어오는 요청을 내부 네트워크의 특정 포트로 매핑하는 작업이다.

  • NAT(Network Address Translation) 환경에서 사용되는 용어로, 외부 포트와 내부 포트를 연결하는 설정이다.

  • 예를 들어서, 외부에서 8080번 포트로 들어오는 요청을 내부 192.168.0.2 따위의 서버의 80번 포트로 매핑하는 경우이다.
    포트 매핑은 종종 NAT 라우터나 방화벽에서 내부 IP와 포트를 외부 포트에 맞게 변환하여 외부 접속을 허용하는 작업에 사용된다.

  • NAT 환경에서 외부 요청을 내부 서버의 적절한 포트로 리디렉션할 때 사용된다.

-> 이것도 쉽게 풀어 쓰자면 외부에서 들어오는 요청이 집의 특정 방에 맞는 번호로 가도록 설정 하는 것이다. 예를 들어 집 앞에 있는 문으로 사람들이 들어오면, 관리자가 이 문으로 들어온 사람은 1번 방으로 가세요. 다른 문으로 들어온 사람은 2번 방으로 가세요. 라고 안내하는 것이다. 각 요청이 정확한 방(서버의 포트)로 가도록 매핑하는 작업이다.
그래서 외부에서 들어오는 요청을 내부 네트워크에서 정확한 위치(서버와 포트)로 연결하는 과정 이다.

포트 바인딩, 포트 포워딩, 포트 매핑의 차이점

  • Port binding (포트 바인딩) : 서버가 특정 포트에서 요청을 받을 수 있도록 리스닝 하는 설정 (서버 측 설정)
  • Port Forwarding (포트 포워딩) : 외부에서 들어오는 요청을 내부 서버나 장비로 전달하는 설정 (라우터나 방화벽에서 설정)
  • Port Mapping (포트 매핑) : 외부 포트를 내부 포트로 매핑하여 요청을 전달하는 설정 (NAT에서 사용되는 개념)

결론

  • 즉, 포트 바인딩은 서버가 포트에서 요청을 받을 수 있도록 설정하는 것. 포트 포워딩은 외부에서 내부로 들어오는 트래픽을 전달하는 것. 포트 매핑은 NAT 환경에서 외부 포트와 내부 포트를 연결하여 요청을 전달하는 것이다.
    각각의 용어는 네트워크 환경에서 사용되는 방식에 따라 다르다.

여담으로, 직접 서버 담당자에게 내가 받았던 호스트와 포트가 내가 원한 내부 포트 8000이나 8080 따위로 열었을 때 외부에서 접속이 가능하느냐 에 대해서 메일을 보내야 했는데, 그냥 풀어서 메일을 보내도 되지만.. 꾼끼리(?) 는 정확한 워딩을 써서 요청을 드려야 하기 때문에 이와 관련해서 어떤 용어로 메일을 드려야 하나 개큰 고민을 하다가 찾게 되었다. 그리고 그 과정에서 포트 포워딩이냐.. 매핑이냐.. 바인딩 요청드립니다? 라고 했을 때 포워딩이 맞는거 같아서 포트 포워딩 요청의 건으로 메일을 드렸다. 휴.. 업무 메일 보내기도 힘들다. 하지만 이번 기회로 포트 포워딩, 포트 바인딩, 포트 매핑에 대해 알게됐다. 아주 굿

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글