为 Firewalld 创建服务时,您会看到不同的选项卡 Ports
Protocols
Source-Port
等(见屏幕截图)。现在我的问题是如何理解“协议”选项卡的功能?在设置端口时,ports
您已经为某些端口指定了协议。我想知道这个protocols
选项卡的功能有什么不同?
我问这个问题是因为我刚遇到一个问题,在i had set tcp/udp ports
玩游戏时我仍然无法使用这些端口连接到服务器。我不得不在“作为客户端”udp
下添加protocol
端口。我以前从来没这么做过。我想知道为什么?为什么在“端口”下设置 UDP 端口不够?它有什么不同?它允许某些协议的所有端口吗?否则我真的不明白它到底有什么作用?
强调一下:在该选项卡中,您可以为某些端口指定协议。或者更准确地说,您可以为协议指定某些端口——在 IP 中,端口号是每个协议的单独属性,而不是相反。
也就是说,您有 IP,然后是 UDP,然后作为 UDP 的一部分,您有端口号 1234,它与 TCP 中的相同端口号是分开的 -而不是“可能有 TCP 或 UDP 的 IP 端口 1234”。
它为整个协议添加了一条规则,不包含任何特定端口的过滤。如果您在该规则中“允许”UDP,则表示所有UDP 协议均被允许,无论使用的端口号是什么。
可能是因为 a) 您没有为正在使用的附加 UDP 端口添加规则,或者 b) 您弄错了方向 - UDP 和 TCP 都有两个端口号,分别位于流/连接的两侧(源和目标,或本地和远程,或客户端和服务器),而防火墙规则通常只匹配一个,很少同时匹配两个。
如果防火墙有记录所有被阻止数据包的选项,请启用该选项。(通常此类日志会保存到
dmesg
。)否则,请使用数据包捕获工具(例如 Wireshark、tshark 或 tcpdump)来查看实际交换的数据包。