如果检查手册页中的ssh,则会发现read的语法为-R
:
-R [ bind_address:] 端口:主机:HOSTPORT
当bind_address
省略时(如您的示例),该端口仅绑定在回送接口上。为了使其绑定到所有接口,请使用
ssh -R \*:8080:localhost:80 -N root@example.com
要么
ssh -R 0.0.0.0:8080:localhost:80 -N root@example.com
要么
ssh -R "[::]:8080:localhost:80" -N root@example.com
第一个版本分别绑定到所有接口。第二个版本创建一个仅IPv4的常规绑定,这意味着该端口可通过IPv4在所有接口上访问。从技术上讲,第三个版本可能与第一个版本相同,但是再次创建一个唯一的绑定::
,这意味着该端口可以通过IPv6本机访问,也可以通过IPv4映射的IPv6地址通过IPv4访问(在Windows,OpenBSD上不起作用) 。(您需要使用引号,因为[::]
否则可能会被解释为一个问题。)
请注意,如果您使用OpenSSH sshd
服务器,则GatewayPorts
需要启用服务器的选项(将其设置为yes
或clientspecified
),以使其起作用(检查/etc/ssh/sshd_config
服务器上的文件)。否则(此选项的默认值为no
),服务器将始终强制端口仅在回送接口上进行绑定。