每次我尝试使用“ssh user@ip”通过 SSH 连接时,都会收到此错误:
ssh:连接到主机192.168.80.131端口22:连接被拒绝
我检查我的路由器是否设置为端口转发,我想我是这样做的:
我检查了我的服务器是否设置了端口转发:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
我还检查了我的防火墙是否已配置:
To Action From
20 ALLOW Anywhere
22 ALLOW Anywhere
80 ALLOW Anywhere
23 ALLOW Anywhere
8080 ALLOW Anywhere
20 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
23 (v6) ALLOW Anywhere (v6)
8080 (v6) ALLOW Anywhere (v6)
我的服务器上还安装了 ssh、openssh-client、openssh-server。
另外我想提一下,我连接到服务器的客户端通过 LAN 连接到路由器,服务器通过 Wi-FI 连接到路由器。
答案1
根据您的问题描述,您会收到以下错误:
ssh: connect to host 192.168.80.131 port 2222:Connection refused
这表明您正在尝试连接到端口 2222 上的服务器,例如您正在使用如下命令:
ssh -p 2222 192.168.80.131
您还发布了以下防火墙规则列表:
20 ALLOW Anywhere
22 ALLOW Anywhere
80 ALLOW Anywhere
23 ALLOW Anywhere
8080 ALLOW Anywhere
20 (v6) ALLOW Anywhere (v6)
22 (v6) ALLOW Anywhere (v6)
80 (v6) ALLOW Anywhere (v6)
23 (v6) ALLOW Anywhere (v6)
8080 (v6) ALLOW Anywhere (v6)
此列表中似乎缺少端口 2222。
您还发布了一个似乎是路由器管理 GUI 的屏幕截图,其中显示了端口转发配置页面,其中包括端口 22 和端口 2222 的 SSH 规则。您没有提供足够的信息,让我无法准确确定您的配置网络看起来像,但您似乎想通过这两个端口之一连接到主机。
我想到了两个明显的后续步骤:
尝试在端口 22 上连接,例如
ssh 198.168.80.131
,或在再次尝试连接端口 2222 之前,尝试为端口 2222 添加“允许”规则(通过路由器的管理 GUI)。
答案2
检查以下内容
编辑
/etc/ssh/sshd_config
收听Port 2222
。#
确保数字前面没有Port
(此注释/取消除默认值之外的任何内容)允许端口 2222 通过防火墙,因为对于大多数防火墙配置文件,将端口从 22 更改为 2222 不会自动更改。
当在除 22 之外的任何其他端口上使用时
ssh
,您的命令必须是这样的ssh user@host -p 2222
答案3
尝试使用:
ssh user@host -p 'port'
其中“端口”是 22 或 2222。我不知道您现在使用的实际端口是 2222 或 22。如果您不知道,请发送 sshd_config