Samba 仅在防火墙禁用时起作用

Samba 仅在防火墙禁用时起作用

我的 Fedora Linux 机器上有一个 Samba 共享。当我使用 Fedora 30 时,我能够很好地连接到它,但升级到 Fedora 31 后它就停止工作了。

软呢帽 31

桑巴版本:4.11.2

防火墙版本:0.7.2-1.fc31

我尝试了以下每种方法来打开 Samba 的防火墙。我知道你应该只需要执行其中之一,但这两种方法都不起作用。

firewall-cmd --add-service=samba --permanent
firewall-cmd --reload

和:

firewall-cmd --permanent --add-port=139/tcp
firewall-cmd --permanent --add-port=445/tcp
firewall-cmd --permanent --add-port=137/udp
firewall-cmd --permanent --add-port=138/udp
firewall-cmd --reload

这些规则适用于默认的“公共”区域,但不知何故这不起作用。我知道这是防火墙的问题,因为如果我停止防火墙,我就可以毫无问题地浏览和使用我的 Samba 共享。

关于我的防火墙发生了什么事有什么想法吗?

答案1

默认区域实际上是 FedoraWorkstation(或服务器)。检查像

firewall-cmd --get-default-zone

当您指定上述命令时,它们将应用于该区域。但活动区域是公共的...

firewall-cmd --get-active-zone

您可以更改活动/默认区域或通过在命令后附加 来应用所做的更改--zone=public,例如

firewall-cmd --add-service=samba --zone=public --permanent

至少这是我的情况的问题。

答案2

在我的 Fedora 36 系统中,当我从“Gnome Boxes”连接时,它仅适用于--zone=nm-shared.

答案3

最后我自己解决了这个问题。感谢@stanislav-hristov。较新的 Fedora 版本有不同。我尝试从 KVM 上的 Windows 访问 Fedora 主机上的 Samba,所以我应该使用libvirt区域:

firewall-cmd --zone=libvirt --permanent --add-service=samba
firewall-cmd --reload
firewall-cmd --runtime-to-permanent #for run time

答案4

我遇到了同样的问题并采取了相同的步骤,但问题仍然存在。我检查了系统日志,发现罪魁祸首是 SELinux。因此请检查您的 SELinux 设置。

相关内容