我在 Ubuntu 22.4.4 LTS 上遇到了一个奇怪的问题。
使用联邦快递防火墙,我允许 SSH/端口 22、HTTP 和 HTTPS。我可以通过 SSH 成功登录到我的服务器。但是,当我登录到服务器并想从他们的服务器通过 SSH 连接到另一台服务器时,它会以某种方式被阻止并且挂起。但是当我想从第二台服务器通过 SSH 连接到第一台服务器时,使用 SSH 代理和 SSH 转发就可以了。两台服务器都使用默认端口 22。
当我使用禁用服务器 1 上的防火墙时sudo ufw disable
,我可以从服务器 1 通过 SSH 连接到服务器 2。当再次启用防火墙时,它就挂起了。
因此,为了使其更简单一些:
- 工作正常:MacBook -> SSH -> 服务器 1
- 不工作:服务器 1 -> SSH -> 服务器 2
- 工作正常:服务器 2 -> SSH -> 服务器 1
我在服务器 1 上的防火墙配置如下:
> sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 9418/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW OUT Anywhere (out)
[ 3] 80/tcp ALLOW IN Anywhere
[ 4] 443 ALLOW OUT Anywhere (out)
[ 5] 443 ALLOW IN Anywhere
[ 6] 53 ALLOW OUT Anywhere (out)
[ 7] 22/tcp ALLOW IN Anywhere
[ 8] 123 ALLOW IN Anywhere
[ 9] 22 ALLOW IN Anywhere
[10] 9418/tcp (v6) ALLOW IN Anywhere (v6)
[11] 80/tcp (v6) ALLOW OUT Anywhere (v6) (out)
[12] 80/tcp (v6) ALLOW IN Anywhere (v6)
[13] 443 (v6) ALLOW OUT Anywhere (v6) (out)
[14] 443 (v6) ALLOW IN Anywhere (v6)
[15] 53 (v6) ALLOW OUT Anywhere (v6) (out)
[16] 22/tcp (v6) ALLOW IN Anywhere (v6)
[17] 123 (v6) ALLOW IN Anywhere (v6)
[18] 22 (v6) ALLOW IN Anywhere (v6)
状态详细:
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), deny (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
9418/tcp ALLOW IN Anywhere
80/tcp ALLOW IN Anywhere
443 ALLOW IN Anywhere
22/tcp ALLOW IN Anywhere
123 ALLOW IN Anywhere
22 ALLOW IN Anywhere
9418/tcp (v6) ALLOW IN Anywhere (v6)
80/tcp (v6) ALLOW IN Anywhere (v6)
443 (v6) ALLOW IN Anywhere (v6)
22/tcp (v6) ALLOW IN Anywhere (v6)
123 (v6) ALLOW IN Anywhere (v6)
22 (v6) ALLOW IN Anywhere (v6)
80/tcp ALLOW OUT Anywhere
443 ALLOW OUT Anywhere
53 ALLOW OUT Anywhere
80/tcp (v6) ALLOW OUT Anywhere (v6)
443 (v6) ALLOW OUT Anywhere (v6)
53 (v6) ALLOW OUT Anywhere (v6)
我是否需要打开另一个端口,以便在从服务器 1 通过 SSH 连接到另一台服务器时使用?或者允许 UDP 或类似的东西?
答案1
这不是一个奇怪的问题;您只是实际上没有允许端口 22 出站的规则 - 您的列表只有一条ALLOW IN
规则,但没有ALLOW OUT
一条,并且由于它是默认设置的deny
,因此到远程端口 22 的出站连接被阻止。