NAT port forwarding 포트 포워딩

agnusdei·2023년 7월 26일
0

Sure! 아래에 제시된 내용을 주제별로 구분하고, 반복되는 부분은 삭제하여 문장을 다듬겨드리겠습니다.

포트 포워딩 개념 설명:

포트 포워딩은 네트워크 주소 변환(Network Address Translation, NAT)의 한 형태로, 특정 IP 주소와 포트 번호의 데이터 패킷을 다른 IP 주소와 포트 번호로 리디렉션(전달)하는 과정을 말합니다. 이 기술은 방화벽, 공유기, 프록시 서버 등의 네트워크 장치에서 일반적으로 사용됩니다. 포트 포워딩을 사용하여 외부 네트워크에서 내부 네트워크의 특정 서비스나 응용 프로그램에 접근할 수 있습니다.

포트 포워딩 동작 설명:

  1. 클라이언트가 포트 포워딩이 설정된 장치의 외부 IP 주소와 포트에 접속 요청을 보냅니다.
  2. 포트 포워딩이 구성된 장치(예: 공유기)는 수신한 요청을 사용자가 설정한 규칙에 따라 대상 IP 주소와 포트로 리디렉션합니다.
  3. 내부 네트워크에 있는 대상 서버는 요청을 처리한 후 응답을 돌려줍니다.
  4. 포트 포워딩이 설정된 장치는 응답을 클라이언트에게 전달합니다.

Docker에서의 포트 포워딩:

Docker에서도 포트 포워딩을 사용할 수 있습니다. docker run 명령어를 실행할 때 -p 옵션을 사용하여 컨테이너의 내부 포트를 호스트의 포트에 바인딩할 수 있습니다. 이로 인해 외부에서 호스트의 IP와 지정된 포트로 접속하면, 요청이 Docker 컨테이너의 해당 포트로 전달됩니다.

예를 들어, 다음 명령어를 사용하면 80 포트에서 실행되는 컨테이너와 호스트의 8080 포트를 연결할 수 있습니다.

docker run -d -p 8080:80 my-image

이렇게 설정하면, 외부에서 호스트의 IP 주소와 8080 포트로 접속하면 해당 요청이 컨테이너 내의 80 포트로 전달되며 웹 서비스에 접근할 수 있게 됩니다.

포트 포워딩을 통해 로컬 머신이나 컨테이너의 내부 서비스를 외부에서 접근 가능하도록 할 수 있으며, 이는 다양한 시나리오에서 유용하게 사용됩니다. 그러나 보안 측면에서 주의가 필요하며, 권한이 없는 사용자가 내부 서비스에 접근하지 못하도록 적절한 설정을 해야합니다.

일반적인 포트 포워딩

ssh -L 8080:localhost:80 user@example.com

위 명령어는 SSH를 사용하여 로컬 포트 포워딩을 수행하는 명령어입니다. 각각의 토큰으로 분리하여 설명하겠습니다:

  1. ssh: SSH(Secure Shell) 클라이언트를 실행하는 명령어입니다. SSH는 암호화된 터미널 세션을 제공하여 원격 서버에 안전하게 접속할 수 있도록 해줍니다.

  2. -L: 로컬 포트 포워딩을 지정하는 옵션입니다. 이 옵션은 로컬 포트 포워딩을 수행하도록 SSH에 알려줍니다.

  3. 8080:localhost:80: 로컬 포트 포워딩의 구성을 나타내는 부분으로, 세 개의 파라미터로 구성됩니다.

    • 8080: 로컬 머신에서 열릴 포트 번호입니다. 로컬 머신의 8080번 포트를 엽니다.
    • localhost: 원격 서버에 접근할 대상 호스트입니다. 여기서는 로컬 머신 자체를 가리킵니다.
    • 80: 원격 서버에서 열릴 포트 번호입니다. 원격 서버의 80번 포트를 가리킵니다. 이는 웹 서버의 기본 포트인 HTTP(80)를 가리키는 것입니다.
  4. user@example.com: SSH 접속할 원격 서버의 사용자 이름과 호스트 이름(IP 주소 또는 도메인)을 지정합니다. user는 원격 서버에 접속할 사용자 이름이고, example.com은 원격 서버의 호스트 이름(IP 주소 또는 도메인)을 나타냅니다.

요약하면, 위의 명령어는 로컬 머신의 8080번 포트를 통해 SSH를 통해 원격 서버 example.com의 80번 포트(웹 서버)에 접근할 수 있도록 로컬 포트 포워딩을 설정합니다. 이를 통해 로컬 머신에서는 localhost:8080을 통해 원격 서버의 웹 서버에 접근할 수 있게 됩니다. 즉, 로컬 머신의 8080번 포트로 들어온 요청은 SSH를 통해 원격 서버의 80번 포트로 전달되어 웹 서버에 접근할 수 있게 됩니다. 이렇게 포트 포워딩을 사용하면 로컬 머신에서 원격 서버의 서비스를 이용할 수 있습니다.

0개의 댓글