我一直在尝试更改我的 Ubuntu 22.04 VPS 上 sshd 使用的端口(我认为我已经成功了),但如果将其设置为端口 22 以外的任何端口,我就无法从家里的电脑连接。我正在使用 ssh 密钥无密码登录,但我没想到这会影响到这一点。
我将远程上的 /etc/ssh/sshd_config 更改为新端口(例如 11111)并重新启动了服务。sudo systemctl status ssh
显示:
Active: active (running)
...
localhost sshd[13641]: Server listening on 0.0.0.0 port 11111
localhost sshd[13641]: Server listening on :: port 11111
localhost systemd[1]: Started OpenBSD Secure Shell server.
当我尝试使用 连接到服务器时ssh -p 11111 <myserverip>
,我收到 ssh: 连接超时。如果我对端口 22 执行相同操作,则收到ssh: Connection refused
。
我已将新端口添加到ufw
:sudo ufw allow 11111/tcp
。正在运行的sudo ufw status
节目:
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
11111/tcp ALLOW Anywhere
22/tcp(v6) ALLOW Anywhere (v6)
11111/tcp(v6) ALLOW Anywhere (v6)
如果我将 /etc/ssh/sshd_config 改回端口 22,我就可以正常连接。也许是我遗漏了另一个防火墙/过滤器?还是与我的客户端设置有关?
答案1
@davidgo 和 @harrymc 的说法是正确的 - 我的 VPS 提供商在实际 VPS 之外实施了防火墙,只暴露了端口 22。通过 VPS 提供商的 UI 添加新的“允许”规则就可以了!