https://zaiste.net/ssh_port_forwarding/#remote-port-forwarding
-R 매개변수를 사용하여 원격 포트 전달이 생성됩니다.
ssh -R source_port:forward_to_host:destination_port via_host
이 명령은 via_host에 연결됩니다. via_host는 SSH 서버를 실행합니다. 그런 다음 모든 연결 시도를 원격 via_host 시스템의 source_port로 전달합니다.로컬 머신(ssh 명령이 실행되는 머신)의 Destination_port 포트. 전달_to_host 컴퓨터는 로컬 컴퓨터에서 액세스할 수 있어야 합니다. 전달은 Unix 소켓을 통해서도 수행될 수 있습니다.
"유닉스 소켓을 통해서도 전달이 가능하다"는 것은 무슨 뜻입니까? 당신은 그렇게 않았다 방법?
SSH 원격 포트 전달은 Unix 소켓이 아닌 인터넷 소켓을 통해 수행됩니까?
감사해요.
답변1
ssh(1)
해당 웹 페이지 대신 실제 매뉴얼 페이지를 살펴보겠습니다 .
-R [bind_address:]port:host:hostport
-R [bind_address:]port:local_socket
-R remote_socket:host:hostport
-R remote_socket:local_socket
이 옵션은 네 가지 형태로 제공되며 -R
, 귀하가 인용한 것이 첫 번째입니다. SSH 연결의 원격 측을 사용하여 시스템의 TCP 포트를 지정된 호스트로 전달하고 연결의 로컬 측에 있는 TCP 포트 번호를 전달합니다.
두 번째 형식은 원격 TCP 포트를 로컬 Unix 소켓으로 전달하는 방법을 설명합니다.
ssh -R 1234:/tmp/local_socket user@remote_host
즉, 무언가가 TCP 포트 1234에 연결되면 remote_host
해당 연결은 /tmp/local_socket
localhost의 Unix 소켓으로 전달됩니다.
세 번째 형식은 이를 반대 방법으로 수행하는 방법, 즉 로컬 측 TCP 포트에 대한 원격 소켓을 설명합니다.
ssh -R /tmp/remote_socket:1234:somehost user@remote_host
여기에서 Remote_host의 프로세스는 Unix 소켓을 사용할 수 /tmp/remote_socket
있으며 연결은 SSH 연결을 통해 로컬 측으로 전달된 다음 일반 TCP 연결을 통해 TCP 포트 1234로 전달됩니다 somehost
.
네 번째 형식은 원격 Unix 소켓에서 로컬 소켓으로의 전달을 설명합니다.
ssh -R /tmp/remote_socket:/tmp/local_socket user@remote_host
여기서 프로세스는 로컬 호스트 에 연결하기 위해 remote_host
Unix 소켓을 열 수 있습니다 ./tmp/remote_socket
/tmp/local_socket