机器 A 有一个绑定到 localhost:80 的服务(例如 Web 服务器)。机器 B 想要访问此服务,但与机器 A 没有直接连接。
我想创建从机器 B 到机器 A 的反向 ssh 隧道。
这有效:
machine A> ssh -R 888:localhost:80 root@machineB
machine B> curl localhost:888
→ success
这不起作用(192.168.10.1
我是机器 B 的 IP):
machine A> ssh -R 192.168.10.1:888:localhost:80 root@machineB
machine B> curl localhost:888
→ success
machine B> curl 192.168.10.1:888 -v
* Trying 192.168.10.2:888...
* connect to 192.168.10.2 port 888 from 192.168.10.2 port 39764 failed: Connection refused
* Failed to connect to 192.168.10.2 port 888 after 0 ms: Couldn't connect to server
* Closing connection
curl: (7) Failed to connect to 192.168.10.2 port 888 after 0 ms: Couldn't connect to server
发生的情况是localhost:888
总是成功,但在 NIC IP 上尝试相同的操作却不起作用。
我检查了机器 B 上端口仅监听的localhost
绑定:
machine B> ss -nltap | grep 888
LISTEN 0 0 127.0.0.1:888 0.0.0.0:* users:(("sshd",pid=3438633,fd=7))
LISTEN 0 0 [::1]:888 *:* users:(("sshd",pid=3438633,fd=5))
这是技术的限制,还是我遗漏了什么?
可以,但需要在服务器配置中激活该功能。服务器上有OpenSSH,需要启用
在其
sshd_config
之前服务器将允许此类请求。