답변:
예, 로컬 전달을 사용할 때 대상 IP 및 포트를 지정해야합니다. 보낸 사람 man ssh
:
-L [bind_address:]port:host:hostport
Specifies that the given port on the local (client) host is to be
forwarded to the given host and port on the remote side.
바인드 주소 만 선택 사항입니다.
아니요, 동적 전달을 사용할 때는 대상 호스트 또는 포트를 지정할 수 없습니다. 동적 전달에서 SSH는 SOCKS 프록시 역할을합니다. 맨 페이지 (강조 광산)에서 다시 :
-D [bind_address:]port
Specifies a local “dynamic” application-level port forwarding.
This works by allocating a socket to listen to port on the local
side, optionally bound to the specified bind_address. Whenever a
connection is made to this port, the connection is forwarded over
the secure channel, and the application protocol is then used to
determine where to connect to from the remote machine. Currently
the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
as a SOCKS server.
을 사용 -L
하면 SSH는 트래픽을 이해하려고 시도하지 않습니다. 로컬 포트에서 수신 한 모든 내용을 대상 포트로 전송하기 만하면 연결시 대상 포트를 결정합니다. 을 사용 -D
하면 SSH는 프록시 서버 역할을하므로 여러 포트의 연결을 처리 할 수 있습니다 (예 : SOCKS 프록시로 사용하도록 구성된 브라우저는 동일한 연결을 통해 HTTP, HTTPS, FTP 등에 액세스 할 수 있음). 다른 프록시 서버와 마찬가지로 트래픽을 사용하여 대상을 결정합니다.
-D
는, 이 에 순서대로 위치를 데이터를 전송하는 방법 이해하기.
이 개념을 배우는 또 다른 방법은 클라이언트가 Amazon의 EMR (Elastic Map Reduce) 클러스터에 연결하는 방법을 살펴 보는 것입니다. EMR에는 다양한 로컬 앱이 있으며 일반적으로 SSH 터널을 통해 액세스됩니다.
클라이언트에는 두 가지 옵션이 있습니다. A) 로컬 포트 전달 SSH 명령 : ssh -i key.pem -L 8157 : abcd : 8088 hadoop @ abcd
여기서 클라이언트는 로컬 호스트에서 ABCD로 전달됩니다 8157 것으로, 예를 들어 말한다 : 8088 클라이언트는 로컬 호스트에 요청하게한다 : HTTP를 : // localhost를 : 8157 기타 응용 프로그램은 8089,8090 등의 포트에서 수신하고, 수 클라이언트는 이들 각각에 대해 ssh 연결을 작성해야합니다.
B) 동적 포트 전달 여기서는 단일 SSH 명령이 사용됩니다. ssh -i key.pem -D 8157 hadoop @ abcd
포트 8157로 들어오는 모든 트래픽은 ssh 터널을 통해 라우팅됩니다. 트래픽의 대상은 URL의 대상이됩니다. 예를 들어, 웹 서버에서 프록시 클라이언트를 사용하고 프록시를 사용하도록 일부 http URI를 리디렉션 할 수 있습니다. 단일 명령을 통해 8089,8090의 모든 응용 프로그램에 액세스 할 수 있습니다.
자세한 내용은 다음 문서를 참조하십시오 : https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html