我想在 CentOS 7 防火墙中打开以下端口:
UDP 137 (NetBIOS Name Service)
UDP 138 (NetBIOS Datagram Service)
TCP 139 (NetBIOS Session Service)
TCP 445 (SMB)
我可以猜测服务名称包括samba
TCP 445,但我不知道其他端口是否预先配置了服务名称。
我可以列出支持的服务:
$ firewall-cmd --get-services
但这并没有告诉我哪些端口配置了服务。
有没有一种方法可以列出哪些端口属于这些服务,以便我可以 grep 找到我需要的端口?
答案1
您可以找到存储此信息的 xml 文件/usr/lib/firewalld/services/
(对于发行版管理的服务)和/或/etc/firewalld/services/
您自己的用户定义的服务。
例如,samba.xml
读取(在我的centos7上):
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Samba</short>
<description>This option allows you to access and participate in Windows file and printer sharing networks. You need the samba package installed for this option to be useful.</description>
<port protocol="udp" port="137"/>
<port protocol="udp" port="138"/>
<port protocol="tcp" port="139"/>
<port protocol="tcp" port="445"/>
<module name="nf_conntrack_netbios_ns"/>
</service>
因此很容易发现该服务启用了哪些端口。