我正在尝试使用反向 SSH 隧道转发非常特定的端口。MachineA 是目标计算机(运行命令的计算机),MachineB 是隧道(SSH 连接的计算机和公共连接将看到的计算机)。
(端口 123 被用作其他可用端口的占位符)。
隧道使用的命令是:
[user@MachineA ~]$ ssh -gnN -R *:500:localhost:500 -R *:311:localhost:311 -R *:123:localhost:123 user@MachineB
它显示以下输出,表明某些端口无法转发:
Warning: remote port forwarding failed for listen port 500
Warning: remote port forwarding failed for listen port 311
如果我去 MachineB,我会在隧道开始之前看到这个:
[user@MachineB ~]$ netstat -na | grep 500
[user@MachineB ~]$ netstat -na | grep 311
[user@MachineB ~]$ netstat -na | grep 123
[user@MachineB ~]$
之后是这样的(其中端口 123 是我成功建立隧道的端口:
[user@MachineB ~]$ netstat -na | grep 500
[user@MachineB ~]$ netstat -na | grep 311
[user@MachineB ~]$ netstat -na | grep 123
tcp 0 0 0.0.0.0:123 0.0.0.0:* LISTEN
[user@MachineB ~]$
看起来问题不在于正在使用的端口。其他端口(如占位符 123)转发正常。那么问题是什么呢?
答案1
1024 以下的端口有多少个?
如果您只遇到低编号端口的问题,则目标计算机上的用户无权打开“安全”端口。
如果是这种情况,请以 root 身份登录目标机器。