You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何解决UFW防火墙阻止Ubuntu服务器SSH连接其他服务器的问题

如何解决UFW防火墙阻止Ubuntu服务器SSH连接其他服务器的问题

看起来你遇到的问题很明确——UFW防火墙限制了Server1主动发起的SSH出站连接,毕竟关掉防火墙就恢复正常,说明锅肯定在它身上。咱们一步步来排查解决:

第一步:检查UFW的默认出站策略

UFW默认是允许所有出站流量的,但如果之前你修改过默认规则,就可能导致出站被拒绝。你可以用下面的命令查看详细状态:

sudo ufw status verbose

看输出里的Default:行,如果显示Default: deny (outgoing),那就是出站默认被禁止了,这时候主动连其他服务器的SSH自然会被拦下来。

第二步:允许SSH出站流量

如果默认出站是拒绝状态,或者你需要单独放行22端口的出站请求,执行下面的命令添加规则:

sudo ufw allow out 22/tcp

添加完成后,重新加载UFW让规则生效:

sudo ufw reload

这时候再尝试从Server1 SSH到Server2,应该就能正常连接了。

额外排查:通过UFW日志定位问题

如果上面的方法没解决,你可以开启UFW日志来精准定位被拦截的流量:

  1. 先开启日志功能:
sudo ufw enable logging
  1. 尝试从Server1 SSH到Server2,等个10秒左右中断连接
  2. 查看最新的日志记录:
tail /var/log/ufw.log

找包含DENY的条目,看看是不是目标端口22的出站流量被拒绝——不过一般来说,只要放行出站22端口就能解决,因为UFW默认的状态检测会自动允许已发起连接的返回流量。

补充说明

你提到Server2能正常SSH到Server1、MacBook也能连Server1,这是因为你已经在UFW里允许了入站的22端口,和出站规则互不影响;而Server1连Server2属于出站请求,这部分规则没配置对就会被拦。

备注:内容来源于stack exchange,提问作者itinance

火山引擎 最新活动