1、更新软件包
sudo yum update
使用这条命令来安装防火墙的时候各种报错,脑袋都跟着疼,然后随便取了一条命令问了下GPT,解释如下:
看起来你正在尝试安装或使用 OpenSSH,但是系统提示与现有的 selinux-policy-3.13.1-60.el7.noarch 冲突。这个问题通常是由于系统中已经安装了另一个版本的 OpenSSH 或者存在版本冲突导致的。
以下是几个可能的解决方案:
1. 升级 selinux-policy-3.13.1-60.el7.noarch:如果你已经安装了 selinux-policy-3.13.1-60.el7.noarch,尝试升级它以解决可能存在的兼容性问题。
使用 yum 进行升级:
sudo yum update selinux-policy
2. 尝试安装不同的 OpenSSH 版本:如果可能的话,你可以尝试安装不同版本的 OpenSSH,这可能有助于解决冲突。使用以下命令查看已安装的 OpenSSH 版本:
rpm -qa | grep openssh
如果需要,可以使用 yum 工具卸载旧版本并安装新版本。
3. 手动卸载冲突的包:如果上述方法无法解决问题,你可能需要手动卸载 selinux-policy-3.13.1-60.el7.noarch 或者冲突的 OpenSSH 版本。在卸载之前,最好备份相关的数据和配置文件,以防万一。使用以下命令卸载 selinux-policy:
sudo yum remove selinux-policy
然后,根据情况手动卸载或降级 OpenSSH。
请注意,在执行任何系统级别的操作之前,最好备份重要的数据和配置文件,以防万一出现问题。
如果你提供更多关于你的系统和环境的信息,我可能能够提供更具体的解决方案。
直接卸载,然后重新:
sudo yum update
解决!
然后接着往下跑:
2、安装 firewalld
sudo yum install firewalld
3、启动
sudo systemctl start firewalld
没想到启动的时候又报错了。。。
firewalld is not running,服务并没有启动
日志如下:
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2024-06-13 19:47:52 CST; 1min 32s ago
Docs: man:firewalld(1)
Process: 64429 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
Main PID: 64429 (code=exited, status=0/SUCCESS)
Jun 13 19:47:52 yisu-666a67f218ed5 systemd[1]: Starting firewalld - dynamic firewall daemon...
Jun 13 19:47:52 yisu-666a67f218ed5 firewalld[64429]: ERROR: Exception DBusException: org.freedesktop....ile
Jun 13 19:47:52 yisu-666a67f218ed5 systemd[1]: Started firewalld - dynamic firewall daemon.
Hint: Some lines were ellipsized, use -l to show in full.
然后默默的复制报错,问了一下GPT,答案如下:
从您提供的系统日志信息来看,firewalld服务在尝试启动时遇到了一个问题,具体是 DBusException 异常。这通常意味着 firewalld 服务尝试通过 D-Bus 与另一个服务进行通信时遇到了问题。
以下是一些可能的解决方案:
1. 重启 D-Bus 服务:
有时,重启 D-Bus 服务可以解决这些问题。在大多数基于 Red Hat 的系统上,D-Bus 服务的名称是 dbus.service
。您可以使用以下命令重启 D-Bus:
sudo systemctl restart dbus.service
2. 检查 D-Bus 服务状态:
在尝试重启 D-Bus 之前,您可能想要检查它的状态,以确保它实际上是运行的:
sudo systemctl status dbus.service
3. 查看 firewalld 日志:
查看 firewalld 的详细日志可能会提供更多关于问题的信息。通常,这些日志位于 /var/log/firewalld
或 /var/log/messages
。
tail -f /var/log/firewalld/*.log
或者,如果您无法直接访问这些日志文件:
less /var/log/messages
4. 检查 firewalld 配置:
确保 firewalld 的配置文件没有问题。位于 /etc/firewalld
的配置文件应该检查一下。
5. 手动启动 firewalld:
如果服务无法自动启动,您可以尝试手动启动 firewalld:
sudo systemctl start firewalld.service
6. 查看内核消息:
内核日志可能会包含与网络相关的其他信息,有时这些信息对于解决问题很重要。可以使用以下命令查看内核日志:
dmesg
如果以上步骤都无法解决问题,可能需要更详细的系统检查,包括硬件和软件环境,以及可能的依赖性问题。在处理这些问题时,请确保遵循系统管理的最佳实践,并在可能的情况下备份重要数据。
重启服务得以解决。
4、如果你在远程位置连接你的服务器,在启用 firewalld 防火墙之前,你必须显式允许进来的 SSH 连接。否则,你将永远都无法连接到机器上。
接着执行下一条命令
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
提示成功:success
如果 SSH 运行在非标准端口,你需要将上述命令中的 22 端口替换为对应的 SSH 端口。
5、放开 1Panel 系统端口。
sudo firewall-cmd --zone=public --add-port=8090/tcp --permanent
上述命令中的 8090 端口需要替换为安装 1Panel 系统时自定义的端口。
提示成功:success
6、重新加载防火墙规则,使更改生效
sudo firewall-cmd --reload
提示成功:success
7、设置开机启动 firewalld
sudo systemctl enable firewalld
完美结束。