3개 머신 간 포트 포워딩

3개 머신 간 포트 포워딩

A, B, C라는 체인으로 연결된 3개의 컴퓨터가 있습니다.

 A-->B-->C

A는 내 컴퓨터이고, B는 서버이고, C는 일부 서비스와 웹 서버가 있는 다른 컴퓨터입니다. 몇 가지 문제로 인해 A에서 C(포트 80)의 웹 서버에 액세스해야 하며 ssh를 사용하여 A에서 B로, 그런 다음 B에서 C로 로그인할 수 있지만 지금은 콘솔이 너무 적습니다. 웹 브라우저가 필요하고 옵션과 함께 ssh를 사용하면 -X작동하지 않습니다(Firefox 시작 시 dbus 관련 일부 문제).

SSH용 22 포트를 전달하기 위해 클래식 명령을 사용하여 B에서 포트 전달을 수행합니다.

ssh -L 2222:localhostB:22 user@ipC

그러나 포트 80을 전달하기 위해 동일한 것을 사용하면 작동하지 않았습니다.

ssh -L 8888:localhostB:80 user@ipC

나는 그것을 작동시키기 위한 다른 전달 방법이 있다는 것을 알고 있지만 그 방법과 내용을 이해하지 못했습니다.

다음과 같은 것이 필요합니다.

A --> B (frd from B:8888 to C:80) --> C (port 80 web server)

따라서 ipB:8888을 입력하면 C:80으로 전달됩니다.

수행해야 할 작업을 설명하는 데 도움이 되거나 명령이 포함된 스크립트를 제공해 주시면 감사하겠습니다. 한 블로그에서 전달 완료를 두 번 수행해야 한다는 것을 알았지 ssh -L만 그 이유를 이해하지 못했습니다.

답변1

당신은 올바른 길을 가고 있습니다.

A에:

ssh -L 8888:ipC:80 user@ipB -N

A의 localhost:8888을 통해 C의 웹 서버에 액세스할 수 있게 됩니다.

OP 요청에 대한 좀 더 자세한 내용은 다음과 같습니다.

나는 귀하의 질문에서 귀하가 A에 있는 C의 웹 서버에 액세스하기를 원한다고 가정했습니다(A에 웹 브라우저를 사용하여 GUI 환경이 있다고 추측합니다).

어떤 이유로든 C에 직접 액세스할 수는 없지만 B에 액세스할 수 있으며 B는 다시 C에 액세스할 수 있습니다. 따라서 A와 B 사이에 터널을 만들고 B에게 터널 끝을 C의 웹 서버에 연결하도록 요청합니다.

관련 정보