use*_*007 5 ssl https iptables port firewall-cmd
使用 CentOS 7,我尝试使用firewall-cmd --zone=public --add-port=443/tcp --permanent将 443 添加到我允许的端口。不幸的是,这会引发错误ALREADY_ENABLED: 443:tcp。但是当我使用firewall-cmd --list-ports它时并没有显示在列表中(“80/tcp 3000/tcp 26900/tcp 26900/udp”)。
我想这个问题是由 firewall-cmd 和 iptables 之间的冲突引起的。但我不知道如何调试它,以及这是否可能。
调用firewall-cmd --list-all结果如下表:
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: ssh dhcpv6-client
ports: 80/tcp 3000/tcp 26900/tcp 26900/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Run Code Online (Sandbox Code Playgroud)
您所说的运行的命令会影响永久配置,而不是运行配置。但您正在列出正在运行的配置。这就是为什么你看不到它们。
您可以列出永久配置以确认规则已成功添加。
firewall-cmd --list-all --permanent
Run Code Online (Sandbox Code Playgroud)
您可以将规则添加到正在运行的配置中:
firewall-cmd --zone=public --add-port=443/tcp
Run Code Online (Sandbox Code Playgroud)
或者您可以从永久配置重新加载运行配置:
firewall-cmd --reload
Run Code Online (Sandbox Code Playgroud)
另请记住,firewalld 已为常见端口定义了服务,因此通常不需要按编号打开它们。例如,您可以不打开端口 80/tcp 和 443/tcp,而是说:
firewall-cmd --zone=public --add-service=http
firewall-cmd --zone=public --add-service=https
Run Code Online (Sandbox Code Playgroud)
最后,如果可能的话,最好更改正在运行的配置中的规则,验证它们是否正常工作,然后保存配置,而不是相反。如果出现问题并且您不小心将自己锁定在系统之外,这使您可以通过一种方式进行恢复。
您可以通过运行以下命令将运行配置保存到永久配置:
firewall-cmd --runtime-to-permanent
Run Code Online (Sandbox Code Playgroud)
(但是某些操作仅适用于永久配置,例如创建新区域。对于这些操作,您必须--permanent立即使用--reload防火墙。)
| 归档时间: |
|
| 查看次数: |
5576 次 |
| 最近记录: |