Aux*_*rro 6 ssh ip ssh-tunnel loopback
我正在运行ssh -N -f -R127.0.2.3:23000:127.1.2.3:23000 user@remote
,我希望远程上的隧道已在 上打开127.0.2.3:23000
,但它只在 上打开127.0.0.1:23000
,这很不方便,因为我需要在远程上打开多个隧道,但监听相同的 tcp 端口。
在本地机器中,隧道指向正确的 IP 地址 (127.1.2.3:23000)。
我尝试在远程创建几个环回设备,但无济于事。
Linux 和 Freebsd 服务器(openbsd-ssh)也是如此
那么,为什么 ssh -R 没有绑定到远程 127.0.0.1 以外的环回 IP?
谢谢你。
(抱歉编辑不好:)
虽然本地可选绑定地址是在SSH客户端进行的控制(与指定-L
/LocalForward
或与改变的-g
/GatewayPorts
在客户端的配置),则远程客户端与指定的可选的绑定地址-R
/RemoteForward
是在SSH的控制服务器侧该服务器配置GatewayPorts
。默认情况下它是no
. 它应该设置为clientspecified
允许客户端选择绑定到哪个地址:
GatewayPorts
指定是否允许远程主机连接到为客户端转发的端口。默认情况下,sshd(8) 将远程端口转发绑定到环回地址。这可以防止其他远程主机连接到转发端口。GatewayPorts
可用于指定 sshd 应允许远程端口转发绑定到非环回地址,从而允许其他主机连接。参数可能是no
强制远程端口转发仅对本地主机可用,yes
强制远程端口转发绑定到通配符地址,或clientspecified
允许客户端选择转发绑定到的地址。默认值为no
.
此外,客户的RemoteForward
条目同样说明:
[...]
如果没有指定 bind_address,默认是只绑定到环回地址。如果 bind_address 是 '*' 或空字符串,则请求转发以侦听所有接口。 指定远程 bind_address 只有在GatewayPorts
启用服务器选项时才会成功 (请参阅 sshd_config(5))。
因此,您必须能够更改服务器上 ssh 的服务器配置(通常具有 root 访问权限),并在sshd_config
文件中添加(或编辑)此条目,因此它显示:
GatewayPorts clientspecified
Run Code Online (Sandbox Code Playgroud)
如果不能,您可以使用服务器端存在(或可本地安装)的其他可用工具来克服此(相当弱的)安全限制。例如socat
,或者ssh
通过使用LocalForward
从服务器到自身的 a(即使它无用地添加了一层加密)。
归档时间: |
|
查看次数: |
3126 次 |
最近记录: |