我家中有一台运行SSH服务器的服务器,我想将流量从其隐藏端口之一传输到本地计算机上的端口。我已在服务器上启用GatewayPorts yes
并重新启动sshd。我已经成功使用SSH服务器一段时间了:
ssh blue-house
其中blue-house
是在我的.ssh/config
中定义的。当我跑步时
ssh -N -L 40192:localhost:8888 blue-house
终端的行为符合预期,并且在不打印任何提示或错误消息的情况下停止运行,但是本地计算机上对curl
的任何wget
,localhost:40192
或浏览器请求-vvv
都只是挂起,显然是无限期的。正在远程计算机上侦听8888的服务器的日志确认SSH服务器首先没有将请求转发到该端口。当我通过其他方式访问该端口时,确实看到请求被记录。
我尝试用debug1: Local connections to LOCALHOST:40192 forwarded to remote address localhost:8888
debug3: channel_setup_fwd_listener_tcpip: type 2 wildcard 0 addr NULL
debug3: sock_set_v6only: set socket 5 IPV6_V6ONLY
debug1: Local forwarding listening on ::1 port 40192.
debug2: fd 5 setting O_NONBLOCK
debug3: fd 5 is O_NONBLOCK
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 40192.
debug2: fd 6 setting O_NONBLOCK
debug3: fd 6 is O_NONBLOCK
debug1: channel 1: new [port listener]
debug2: fd 3 setting TCP_NODELAY
debug3: ssh_packet_set_tos: set IP_TOS 0x10
debug1: Requesting no-more-sessions@openssh.com
debug3: send packet: type 80
debug1: Entering interactive session.
debug1: pledge: network
debug3: receive packet: type 80
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
运行它。它会在进行身份验证时打印出通常的消息,然后
debug1: Connection to port 40192 forwarding to localhost port 8888 requested.
debug2: fd 7 setting TCP_NODELAY
debug2: fd 7 setting O_NONBLOCK
debug3: fd 7 is O_NONBLOCK
debug1: channel 2: new [direct-tcpip]
debug3: send packet: type 90
debug3: receive packet: type 91
debug2: channel 2: open confirm rwindow 2097152 rmax 32768
它停止的地方。然后,当我向本地端口40192发出请求时,它将输出以下内容:
wget localhost:8888
那里对我来说没有多大意义。如果我位于服务器本身上,就可以icmasterid icdescription
WAD110795 WM KIWI-KLIP 3 BEND
WAD110796 WM KIWI-KLIP 3 BEND (MZ3,4,&6)
WAD118806-50 STROLLER VALENCE BACKDRP HINGE
WAD118808 IK STROL B DROP MOUNTING HDW
WAD118942 1" S-HOOK BAG 100
;如果我和服务器位于同一网络上,则还可以远程访问服务器的端口8888。在两种情况下,它都能提供预期的内容。
关于我可能会缺少的任何想法吗?
编辑:是否可以使用服务器端日志来查看请求是否甚至到达端口22?我仍然不确定SSH隧道是问题还是服务器端端口转发。