我有两台计算机位于同一个路由器后面。我们称它们为 A 和 B。
A 可以通过以下方式通过 SSH 连接到 B:ssh usr@<internal ip of computer>
B 可以通过相同的方式通过 SSH 连接到 A,但必须使用外部 IP。我已将路由器的 22 端口转发到计算机 A 的 IP,因此对我来说一切都说得通。
但是,我还想将端口 26 转发到计算机 B,并使用两者的外部 IP 从网络外部进行 SSH,但指定端口 22 或 26,以有效地选择使用哪台计算机。
我尝试过允许端口 26 通过iptables
A 上的 OUTPUT 和 B 上的 INPUT,但似乎不起作用。我还将端口 26 转发到 B 的内部 IP(通过路由器),就像我对 A 的 22 所做的那样。
当我尝试使用外部 IP 和端口 26 从 A 到 B 进行 SSH 时,我得到的结果如下:
ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.
版本:
- A = OpenSSH_5.9p1 Debian-5ubuntu1,OpenSSL 1.0.1 2012 年 3 月 14 日
- B = OpenSSH_6.0p1 Debian-4,OpenSSL 1.0.1c 2012 年 5 月 10 日
A 有 12.04 Ubuntu,B 是带有 Raspbian 的 Raspberry Pi。
编辑:我忘记输入的内容:我尝试切换 SSH 配置文件(我发现它是/etc/ssh/ssh_config
)我取消注释(删除#
)了带有的行Port
并更改22
为26
。它仍然给我拒绝连接的消息。(我重新启动但无济于事。)
答案1
如果您使用的是 Linux 系统并且想要连接到端口 26 上的 SSH 服务器,则可以使用以下命令。
ssh [email protected] -p 26
笔记:
- 将服务器 IP 替换为您服务器的 IP 地址或 DNS 名称。
- 按照您的设置更改端口号。
- 如果你使用自定义端口 SSH,那么防火墙必须允许相同的端口进行出站、入站连接,否则将无法建立连接
答案2
似乎您没有在第二台机器上的端口 26 上运行 SSH。您可以将该机器上的端口号更改为 26。
编辑并不/etc/ssh/sshd_config
要忘记重新启动 SSH ( service sshd restart
) 或将其保留在 22 上,但将路由器上的端口 26 转发到第二台机器上的端口 22。另外,不要忘记更改第二台机器上的任何防火墙设置以允许连接通过。
答案3
正如我在相关答案,ssh 客户端允许指定 URI 格式为ssh://user@host:1234
。例如:
ssh ssh://[email protected]:2222
其中 2222 是端口号。替换为您打算使用的端口号。当然,请记住,为了连接到指定端口,ssh 服务器(在您尝试连接的主机上)必须首先侦听指定端口
答案4
监听端口也可以硬链接到 IP 地址
在 /etc/ssh/sshd_config 中:
ListenAddress 10.10.10.10:22
ListenAddress 20.20.20.20:4444