전달된 로컬 포트를 127.0.0.1 대신 0.0.0.0에 바인딩하려면 어떻게 해야 합니까? GatewayPorts=yes를 사용할 때 "작업이 허용되지 않습니다"

전달된 로컬 포트를 127.0.0.1 대신 0.0.0.0에 바인딩하려면 어떻게 해야 합니까? GatewayPorts=yes를 사용할 때 "작업이 허용되지 않습니다"

(원격) SSH 서버는 remote(원격) 127.0.0.1 포트 20001에서 서비스를 실행합니다. SSH 포트 전달을 통해 이 서비스를 로컬로 제공하고 싶습니다.

ssh -vvv -4 -L 20001:127.0.0.1:20001 remote

이 명령을 사용하면 포트 전달 및 서비스 액세스에 적합합니다.

그러나 터널은 내 로컬 시스템의 127.0.0.1에 바인딩되어 있으므로 SSH 명령을 실행하는 로컬 시스템에서만 원격 서비스에 액세스할 수 있습니다. 로컬 컴퓨터 포트 20001에 연결하여 로컬 LAN에서 원격 서비스를 사용할 수 있도록 터널을 0.0.0.0에 바인딩하고 싶습니다.

이 옵션에 대한 맨페이지에는 다음이 -L언급되어 있습니다.

기본적으로 로컬 포트는 GatewayPorts 설정에 따라 바인딩됩니다. 그러나 명시적인 바인딩_주소를 사용하여 특정 주소에 연결을 바인딩하는 것이 가능합니다. "localhost"의 바인딩 주소는 수신 포트가 로컬 전용임을 나타내고, 빈 주소 또는 "*"는 포트가 모든 인터페이스에서 사용 가능해야 함을 나타냅니다.

원천:https://manpages.debian.org/bookworm/openssh-client/ssh.1.en.html#L

GatewayPorts=yes그래서 설정을 추가 하고 두 가지를 모두 시도했습니다.

ssh -vvv -4 -o GatewayPorts=yes -L 20001:127.0.0.1:20001 remote

또한

ssh -vvv -4 -o GatewayPorts=yes -L *:20001:127.0.0.1:20001 remote

하지만 다음과 같은 오류가 발생합니다.

debug1: Local connections to *:20001 forwarded to remote address 127.0.0.1:20001
debug3: channel_setup_fwd_listener_tcpip: type 2 wildcard 1 addr NULL
debug1: Local forwarding listening on 0.0.0.0 port 20001.
listen: Operation not permitted
listen [0.0.0.0]:20001: Operation not permitted
channel_setup_fwd_listener_tcpip: cannot listen to port: 20001
Could not request local forwarding.

전달된 로컬 포트를 127.0.0.1 대신 0.0.0.0에 바인딩하려면 어떻게 해야 합니까? 오류는 어디에서 발생합니까?

  • 이 포트는 127.0.0.1에 바인딩할 때 사용할 수 있습니다. 그래도 netstat포트가 사용되지 않는지 다시 확인했습니다.
  • SSH 명령 실행에는 도움이 되지 않습니다 sudo.
  • 원격 측에서 원격 포트 전달 바인딩 0.0.0.0을 사용하려는 경우에만 서버에서 이 설정이 필요하다고 가정합니다 GatewayPorts=yes. sshd_config어쨌든 서버 구성을 변경하고 서버를 다시 시작했는데 예상대로 로컬 포트 ​​전달에 사용한 SSH 명령에는 아무런 영향이 없었습니다.

관련 정보