firewalld中,关于sources的困惑

openEuler 24.03 LTS 版本,

firewalld 默认设置的基础上,自己安装了一个HTTP服务,端口为 3000.
本机使用回环地址和网卡地址都可以访问了。

同子网的手机不能访问, 192.168.1.0/24 。 好理解,firewalld 没有设置,端口被屏蔽了。

firewall-cmd --zone=public --add-port=3000/tcp

不能访问。但各种检查,被表明已经被设置成功了。

上网查到一个帖子,两个需求示例,一、开放HTTP端口;二、仅给某个主机开放SSH端口。方法:在某个zone内仅 add-port ,在另一个zone内,同时 add-port, add-source

仿照,增加一个命令 firewall-cmd --zone=public --add-source=192.168.1.0/24 现在可以访问了。

那就有问题了啊,为什么单独命令 --add-port 不是面向这个zone 内的所有主机开放吗?
另外,如果在一个zone内,有两个服务,其一,面向所有主机,另一个面向小范围的主机,就无法设置吗?

或者,使用 rich-rule ?

我记得默认add-port,不添加add-source参数,相当于不限制来源 ip。所以这个现象很奇怪。

看过一些资料,我的理解也是,仅 --add-port--add-source 为空,应该是任何源地址都可以。

有没有哪里还有什么隐藏设置?