제목처럼요.
호스트 A는 서버 역할을 합니다(요새 호스트, 원하는 대로 부르세요).
이제 호스트 B는 다음을 수행합니다.
ssh -R 2222:localhost:22 사용자@A
결과적으로 TCP 소켓이 A에서 생성되지만 2222@에 바인딩됩니다.루프백즉, 원격 연결을 방지합니다.
127.0.0.1을 0.0.0.0으로 변경하는 방법아니면 다른 것더 합리적인가?
답변1
bind_address
사양 의 선택적 부분이 누락되었습니다 -R
. 에서ssh
선적 서류 비치(링크된 대로마이크로소프트) 이렇게 쓴다.
기본적으로 서버의 TCP 수신 소켓은 루프백 인터페이스에만 바인딩됩니다. 이는 를 지정하여 재정의할 수 있습니다
bind_address
. 비어bind_address
있거나 address 는*
원격 소켓이 모든 인터페이스를 수신해야 함을 나타냅니다. 원격 지정은bind_address
서버GatewayPorts
옵션이 활성화된 경우에만 성공합니다(참조:sshd_config(5)).
매개변수의 3-튜플 버전을 사용하고 있지만 4-튜플 버전이 필요합니다.
-R port:host:hostport -R [bind_address]:port:host:hostport
GatewayPorts
따라서 누구나 원격 서버의 수신 포트에 연결할 수 있도록 하려면 해당 서버의 포트에서 해당 포트가 활성화되어 있는지 확인해야 합니다.sshd_config
그리고다음과 같은 명령 변형을 사용하십시오.
ssh -R :2222:localhost:22 user@A
또한 선행 콜론( :
)은 어디에서든 연결을 허용하는 선행 별표 와일드카드를 의미합니다. 개인적으로 나는 와일드카드가 포함된 이 버전을 통해 작성된 내용이 의도적인 것임을 더 명확하게 알 수 있다고 생각합니다.
ssh -R *:2222:localhost:22 user@A