로컬 포트 전달에서 어떤 DNS 서버가 이름을 확인합니까 internal_db.local
?
내부 SSH 서버의 DNS입니까? (이건 내 생각이다)
아니면 외부 DNS 서버가 sshgateway.com
주소를 할당하고 있습니까?
예를 들어:
ssh -L 4000:internal_db.local:3306 [email protected]
답변1
SSH의 포트 전달에는 로컬 IP, 로컬 포트, 원격 IP, 원격 포트 및 대상이 포함됩니다. 좋다:
ssh -L $LOCAL_IP:$LOCAL_PORT:$REMOTE_IP:$REMOTE_PORT $DESTINATION
$LOCAL_IP
이 예에서 및 의 DNS 이름은 $DESTINATION
명령이 실행되는 환경에 의해 확인됩니다 ssh
. DNS 이름은 $REMOTE_IP
환경에 의해 확인됩니다 $DESTINATION
.
답변2
SSH의 전체 포트 전달 순서는
-L [<local_ip>:]<local_port>:<remote_ip>:<remote_port>
local_ip이므로 생략할 수 있습니다.
(또는 DNS 이름 <local_ip>
)은 로컬 호스트에 의해 확인되고, <remote_ip>
(또는 DNS 이름)은 원격 호스트(귀하의 경우 sshgateway.com)에 의해 확인됩니다.
귀하의 의견을 바탕으로 편집하십시오.
이해가 안 되는 경우 정정해 주십시오.
귀하의 환경은 다음과 같습니다
host_1 -> host_2 -> host_3
your_PC -> sshgateway -> internal_db.local
호스트_1에서 호스트_3에 있는 데이터베이스로 연결하려고 합니다.
권장되는 로컬 포트 전달을 사용하면 호스트 1의 포트 4000을 통해 호스트 2를 통해 호스트 3의 포트 3306으로 전달할 수 있습니다.
이를 위해 연결은 ssh를 통해 호스트_1에서 호스트_2로 터널링된 다음 마치 호스트_2가 데이터베이스에 연결하는 것처럼 일반 IP 패킷으로 호스트_2에서 호스트_3으로 전송됩니다.
따라서 호스트_2(sshgateway.com)는 DNS 서버를 사용하여 호스트_3(internal_db.local)의 IP 주소를 확인해야 합니다.
이것이 귀하의 질문에 대한 답변이 되기를 바랍니다.