我遇到的情况是,我需要将笔记本电脑上的一个端口(位于本地网络,防火墙后面)暂时开放给一般互联网,以进行测试。我们称这台机器为“LocalLaptop”
我有一台面向互联网的服务器,我可以完全控制它,并且可以通过 SSH 访问。我们把这台机器称为“远程服务器”。
我原本想使用 来解决这个问题ssh -L
,但这似乎不起作用。
我正在寻找的是:
Internet ---> RemoteServer:8888 ---(ssh-tunnel)---> LocalLaptop:80
我可以用 来做吗ssh
?我尝试了-L
和-R
选项,但无法让它们工作(要么打开方式错误,要么仅限于127.0.0.1
在 RemoteServer 上)。
答案1
-L
您需要将监听地址明确指定为或选项的可选第 0 个子参数-R
(无论哪一个适合您进行 SSH 的方向):
ssh -R \*:8888:localhost:80 RemoteServer
请参阅man ssh_config
“LocalForward”或“RemoteForward”下的文档。
请注意,对于远程监听 ( -R
) 隧道,必须首先通过服务器的配置 ( /etc/ssh/sshd_config
) 允许此操作:
GatewayPorts clientspecified