我有一个位于 NAT 后面的远程 SOURCE 主机。我想通过 ssh 从我家庭网络中的 TARGET 主机连接到 SOURCE。因此,我在 SOURCE 上发出以下命令:
ssh -R 2222:localhost:22 TARGET -N
现在从 TARGET 我可以通过ssh -p 2222 localhost
. 美好的
在 TARGET 的同一网络中使用 TABLET 我希望这可以工作:
ssh -p 2222 TARGET
相反,TARGET 似乎只接受来自 localhost 的端口 2222 上的连接。以下是关于目标的:
user@TARGET:~/$ netstat -l | grep 2222
tcp 0 0 localhost:2222 *:* LISTEN
tcp6 0 0 localhost:2222 [::]:* LISTEN
有没有办法让远程端ssh -R
接受来自其所有接口的连接?
默认情况下,它将仅在 localhost(环回接口)上侦听。您需要
0.0.0.0
在命令中指定 bind_address:您还需要在目标主机上配置 SSH 守护程序以允许客户端指定 bind_address。默认禁止监听所有接口。因此,即使您将其指定
0.0.0.0
为 bind_address,您也会发现它一直在监听环回。您需要有如下一行
/etc/ssh/sshd_config
以允许客户端指定绑定地址。完成后,您可以
netstat -lntp
在目标机器上验证使用。