为什么开启防火墙会导致网页打不开?
防火墙的主要作用是控制进出网络流量。当我们开启防火墙后,它会根据预设的规则,允许或拒绝特定端口的流量。如果防火墙未正确配置,可能会导致无法访问网页或应用
一、防火墙配置基本概念
一般情况下,防火墙配置可以使用命令行或云服务控制台完成,以linux为例,可以使用iptables 和 firewalld 防火墙
iptables 和 firewalld 防火墙区别
配置方式
- iptables:主要通过命令行进行配置,每个单独的更改意味着清除所有旧的规则,并从 /etc/sysconfig/iptables 中读取所有新的规则
- firewalld:提供了图形界面和命令行工具,允许动态修改单条规则,而不需要重新加载整个规则集。
管理界面
- iptables:仅支持命令行界面,需要用户掌握iptables的命令行语法。
- firewalld:除了命令行工具外,还提供了一个图形界面,使得配置更加直观。
规则更新
- iptables:在修改了规则后必须得全部刷新才可以生效,这可能会导致服务中断。
- firewalld:可以在运行时改变设置而不丢失现行链接,支持动态管理。
默认策略
- iptables:默认允许所有服务通过,需要拒绝的才去限制。
- firewalld:默认是拒绝所有传入流量,需要设置后才能放行。
规则集组织
- iptables:使用基于表的规则集,分为filter、nat、mangle和raw四个表,每个表都有自己的规则链。
- firewalld:使用基于区域的规则集,分为default、public、internal、external和dmz五个区域,每个区域都有自己的规则集。
性能
- iptables:直接操作Linux内核的netfilter子系统,性能较高。
- firewalld:通过libnfnetlink库来操作netfilter,性能相对较低。
其他特性
- iptables:更适合需要静态规则的场景,对网络规则有很高的控制能力,但配置复杂。
- firewalld:更适合需要动态规则的场景,操作更加直观和灵活,提供了更广泛的网络管理功能。
还有一点重要的区别是
iptables默认情况下,所有的流量都是被允许的,除非你明确地设置了拒绝规则。这意味着,如果没有设置任何规则,所有端口都是开放的。
firewalld默认情况下,需要明确地开放端口或服务,以允许流量通过
二、应用启动成功后网页仍然打不开问题解决
1、如果你使用的是iptables防火墙,则直接在云服务器后台的安全组中开放对应端口号即可,以腾讯云为例:
下面是iptables防火墙的一些命令
#查看iptables防火墙是否启动
sudo systemctl status iptables
#启动iptables防火墙
sudo systemctl start iptables
#关闭iptables防火墙
sudo systemctl stop iptables
2、如果你使用的是firewalld防火墙,除了要在后台放通端口后,还需要在服务器上配置
#在服务器上执行
sudo systemctl start firewalld
#允许放行的配置,这里外部用到哪些端口就放行哪些
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
#重新加载防火墙配置
sudo firewall-cmd --reload
至此防火墙的配置就完成了
三、检查防火墙配置
完成防火墙配置后,需要确认防火墙是否正确开放了端口。使用以下命令检查:
#iptables防火墙
iptables -L -n
firewalld防火墙
firewall-cmd --list-ports
好了,以上就是解决开启防火墙网页打不开的解决办法了,麻烦点赞收藏关注~!