1 - 일반적인 상황

1 - 일반적인 상황
  1. 위키피디아는 말한다

    컴퓨터 네트워크에서는포워드 포트포트 매핑은 패킷이 라우터나 방화벽과 같은 네트워크 게이트웨이를 통과할 때 하나의 주소와 포트 번호 조합에서 다른 주소와 포트 번호 조합으로 통신 요청을 리디렉션하는 NAT(네트워크 주소 변환) 응용 프로그램입니다.

    포트 전달의 정의가 "SSH 포트 전달"에 적용됩니까?

    SSH 로컬 및 원격 포트 전달에서 "포트 전달"은 무엇을 의미합니까?

  2. 특히무엇전달됨무엇통과 무엇?

    예를 들어. 존재하다https://askubuntu.com/a/50075/1471,

    로컬 시스템(localhost)에서 포트 8000의 원격 호스트로 포트 80을 전달하는 명령은 ssh -R 8000:localhost:80 oli@remote-machine입니다.

    같은 말을 하시겠습니까, 아니면 "원격 호스트의 포트 8000을 로컬 시스템의 포트 80으로 전달"이라고 말하시겠습니까?

답변1

1 - 일반적인 상황

회사 네트워크에 두 대의 서버가 있다고 가정해 보겠습니다.

로컬 서버 "L1"에서 포트 22의 SSH를 통해 원격 서버 "R1"에 액세스할 수 있습니다.

  1. 서버 R1은 웹 서비스를 호스팅하지만 방화벽/NAT 등은 포트 80에 대한 직접 액세스를 차단합니다.

  2. NAT 문제로 인해 "R1"은 "L1"에 직접 액세스할 수 없습니다.

L1에서 (두 호스트의 동일한 사용자)를 사용하여 연결

ssh -L 10080:localhost:80 -R 10022:localhost:22 R1

지금,

  • -L 10080:localhost:8010080에서의 로컬 브라우징은 포트 80의 원격 호스트(R1), 로컬 호스트(예: 원격 127.0.0.1)로 전달되므로 방화벽/NAT에 의해 차단된 상태에서 원격 호스트(R1)로 브라우징할 수 있습니다.

  • -R 10022:localhost:22포트 10022의 원격 사용은 localhost(L1) 포트 22로 전달되며 원격에서 localhost로 scp/ssh를 시작할 수 있습니다. (사용 scp -P 10022 file localhost:(위 참고 -P))

이것은 실제로 Ubuntu(14.04) 랩탑에서 프로덕션 서버에 액세스하기 위해 사용하는 명령줄입니다(Firefox를 사용하여 localhost:10080으로, scp를 서버에서 localhost:10022로 사용하여 파일을 다시 가져올 수 있습니다).

이제 귀하의 IP는

192.168.1.1 L1
172.17.17.1 R1

너는 사용한다

ssh -L 10080:172.17.17.3:80 -R 10022:192.168.1.5:22 \
     -L 192.168.1.9:8888:172.17.17.9:9999 R1

지금

  • 원격 액세스 포트 10022(모든 IP)는 로컬 192.168.1.5 ssh/scp로 전달됩니다.
  • 포트 10080(모든 IP)에 대한 로컬 액세스는 원격 호스트 172.17.17.3 포트 80으로 전달됩니다.
  • 192.168.1.9에서 포트 8888에 대한 로컬 액세스는 172.17.17.9의 포트 9999로 전달됩니다(192.168.1.9는 별칭 메커니즘을 사용하는 L1의 로컬 주소이며 방화벽 규칙이 아닙니다).

이러한 설정은 putty/bitwise 클라이언트에서 사용할 수 있습니다. Putty에서의 포트 포워딩

우분투에 대해 질문하기

무엇에 대해

 -R 8000:localhost:80

이것은 다음과 같이 읽힌다

  • -R외딴
  • 8000포트 8000(원격 포트 8000...)
  • localhost (원격 포트 8000을 로컬 호스트로..)
  • 80(원격 포트 8000은 로컬 호스트 포트 80으로 이동합니다)

관련 정보