我的 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 设置。