Host A ( 10.100.64.112)
我可以直接从我的访问HomePC
,但无法直接访问Host B (172.88.3.31)
。要访问Host B
,我需要先 ssh 到Host A
,然后到Host B
。
为了直接访问Host B
,我尝试使用以下命令在本地端口转发上设置 SSH 隧道Host A
Host A # ssh [email protected] -L 4420:172.88.3.31:22
现在我尝试验证隧道是否正常工作
Host A # ssh 10.100.64.112 -p 4420
[email protected]'s password:
它运行良好,并且需要我Host B
但如果我直接从我的隧道访问它HOmePC
,它不起作用
$ ssh 10.100.64.112 -p 4122
ssh: connect to host 10.100.64.112 port 4122: Connection refused
检查后netstat
,显示以下内容
$ sudo netstat -an | grep 4420
tcp 0 0 127.0.0.1:4420 0.0.0.0:* LISTEN
tcp 0 0 ::1:4420 :::* LISTEN
请提出建议以便我Host B
直接连接。
答案1
您是否知道您在示例中输入了 4122?
你应该试试
-L *:4420:172.88.3.31:22
星号表示您监听所有地址,而不是本地主机,因为其他机器无法连接到本地主机。
您也可以绑定到特定的 IP,但我猜* 就是您想要的。
答案2
马丁的回答应该管用。
-L *:4420:172.88.3.31:22
- 或者
-L 0.0.0.0:4420:172.88.3.31:22
- 或者
-L [specific IP]:4420:172.88.3.31:22
其他方式:
-L -g 4420:172.88.3.31:22
- 引用自
man ssh
-g 允许远程主机连接到本地转发端口。如果在多路复用连接上使用,则必须在主进程上指定此选项。