최근에 아래 영상을 봤습니다.
ssh [email protected] -L <some_ip>:2182:127.0.0.1:2181
포트포워딩은 이미 잘 알고 있다고 생각했는데, 그 존재 자체가 <some_ip>
헷갈립니다. 저를 지도해 줄 수 있는 경험이 더 많은 사람이 있나요?정확히이 코드는 무엇을 하고 있나요?
답변1
<some_ip>:2182
이는 로컬 시스템에서 수신 대기하고 수신된 트래픽을 127.0.0.1:2181
원격 시스템 으로 전달하는 일반적인 로컬 포트 전달입니다 . 바인딩할 로컬 IP 주소는 일반적으로 지정되지 않지만(기본값은 localhost
) IP 주소를 수신하려는 경우 명시적으로 지정할 수 있습니다.특별한상호 작용.
~에서man ssh
:
-엘[바인딩 주소:]포트:주인:호스트 포트
-엘[바인딩 주소:]포트:원격 소켓
-엘 로컬 소켓:주인:호스트 포트
-엘 로컬 소켓:원격 소켓
로컬(클라이언트) 호스트의 지정된 TCP 포트 또는 Unix 소켓에 대한 연결이 원격 측의 지정된 호스트 및 포트 또는 Unix 소켓으로 전달되도록 지정합니다. 이는 TCP를 수신할 소켓을 할당함으로써 달성됩니다.포트로컬 측에서는 선택적으로 지정된 항목에 바인딩됩니다.바인딩 주소, 또는 Unix 소켓에 연결합니다. 로컬 포트나 소켓에 연결될 때마다 연결은 보안 채널을 통해 전달되고 두 포트 중 하나에 연결됩니다. 주인포트호스트 포트, 또는 유닉스 소켓원격 소켓, 원격 시스템에서.
포트 전달은 구성 파일에서도 지정할 수 있습니다. 수퍼유저만 권한 있는 포트를 전달할 수 있습니다. IPv6 주소는 주소를 대괄호로 묶어 지정할 수 있습니다.
기본적으로 로컬 포트는 다음과 같습니다.게이트웨이 포트환경. 그러나 명확한바인딩 주소특정 주소에 연결을 바인딩하는 데 사용할 수 있습니다. 이것바인딩 주소"localhost"는 수신 포트가 로컬 전용임을 나타내고, 빈 주소 또는 "*"는 포트가 모든 인터페이스에서 사용 가능해야 함을 나타냅니다.
답변2
대상 주소가 비공개, 로컬 호스트 또는 방화벽 뒤에 있기 때문에 직접 연결할 수 없는 경우 (예를 들어) SSH 포트 전달이 필요합니다.