CentOS7自带firewall防火墙管理命令和添加端口命令

CentOS 7自带的防火墙是firewall,我在一台机子上装了小飞机后飞不起来,最开始以为是ip被墙了,后来发现原来是防火墙没关。firewall和iptables的命令不一样,所以这类记录下。

首先,关闭firewall的命令

systemctl stop firewalld

关闭后看看firewall的状态

systemctl status firewalld

然后试试你的服务是否可以用了,如果可以,那么就是防火墙的问题了。

接下来添加firewall开放端口的命令

firewall-cmd --zone=public --add-port=80/tcp --permanent

批量添加firewall的端口命令

firewall-cmd --permanent --zone=public --add-port=100-500/tcp
firewall-cmd --permanent --zone=public --add-port=100-500/udp

添加后重新加载一次防火墙规则,不然不起作用。

firewall-cmd --reload

如果没有启用的话加载不了新规则,所以需要先启动firewall防护墙,命令如下

systemctl start firewalld

下面是另外的一些firewall的资料。

1、firewalld的基本使用
启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
启动一个服务:systemctl start firewalld.service
关闭一个服务:systemctl stop firewalld.service
重启一个服务:systemctl restart firewalld.service
显示一个服务的状态:systemctl status firewalld.service
在开机时启用一个服务:systemctl enable firewalld.service
在开机时禁用一个服务:systemctl disable firewalld.service
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

Centos 7 安装Apache教程、常用命令和防火墙配置

前言

默认到情况,很多Linux VPS选择Centos 7系统后会自动安装Apache组件,如果你到VPS没有安装,则可以自己根据下面的方法安装Apache,同时通常VPS还自带了iptables防火墙,也需要设置才能正常访问网站。

Centos7安装Apache的具体方法参见下面。

Apache 安装

Apache的安装非常地简单,你只需要输入一行代码回车就可以了

  1. # yum install httpd

同样的在安装过程中会提示“is this ok [y/d/N]”,输入y,回车即可。

这样就完成了Apache 的安装。

Apache 配置

安装完之后,这个服务是还没开启的,所以接下来我们可以通过一段命令代码来开启 Apache 服务

  1. # systemctl start httpd.service

你还可以通过下面这一行命令代码查看Apache 服务的运行状态

  1. # systemctl status httpd.service

还有一行命令代码你需要运行下的,它可以让你在重启服务器时自动启动Apache 服务,这样就不怕重启服务后,手动开启Apache 服务了。

  1. # systemctl enable httpd.service

如果有需要(如:更改站点根目录),你还可以打开Apache的配置文件进行编辑

  1. # vim /etc/httpd/conf/httpd.conf

安装完这后,你在浏览器中输入IP时,你还不能访问站点。这是因为防火墙里没设置端口规则,下面我们可以对防火墙进行相应的配置,打开防火墙(默认时firewalld防火墙是关闭的,iptables是开启的,所以我们在这里对 iptables 进行修改)的配置文件

  1. # vi /etc/sysconfig/iptables

i键进入编辑模式,在文件里追加如下一行代码

  1. -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

编辑完成后,按 Esc 键退出编辑模式,然后按:wq,保存退出。

重启下 iptables 服务就可以了

  1. # systemctl restart iptables.service

Apache 服务到此已经配置完成,现在你就可以通过IP来访问站点了,此时你会看到一个 Apache 的测试页面,如果没有显示 Apache 的测试页面说明配置还没成功。重复上面的步骤即可,这个测试页面也不是没用的,至少它在页面的右下角告诉了你它的默认站点目录 /var/www/html。如果你不满意它给你设定好的站点根目录,你也可以自定义站点目录。

如果你觉得 Apache 的测试页面不能说明什么问题,那么你可以执行下面一行命令代码,在站点目录下新建一个 index.html 文件进行测试。

  1. # echo "我是一个新站点!" >> /var/www/html/index.html

刷新下页面后,如果页面显示内容为:“我是一个新站点!”,则说明 Apache 配置成功了。

自定义站点目录

改变 Apache 默认的站点根目录,我们先通过下面的命令代码创建新站点目录,这例子中我们直接在 Apache 站点根目录下直接创建一个目录,至于这个站点目录其实放到哪都没问题。作为例子,就怎么简单怎么来就好,能把问题说清楚就够了。

输入下面命令行,在 Apache 默认的站点根目录新建一个目录 yunkus.com

  1. # mkdir /var/www/html/yunkus.com

这一步做完之后,我们还得修改下 Apache 的配置文件

输入下面的命令行

  1. # vi /etc/httpd/conf/httpd.conf

定位到下面这一行代码

  1. DocumentRoot "/var/www/html"

修改成

  1. DocumentRoot "/var/www/html/yunkus.com"

这样Apache 的站点根目录就更改成了/var/www/html/yunkus.com,当你在地址栏中输入服务器的IP时默认就会访问yunkus.com目录了。

但在这里不说说另一种情况是不行的,因为如果你完完全全地更改了站点的根目录后,你不仅要修改 DocumentRoot “/var/www/html” ,你还得修改其它地方,下面我再举一个例子。

如:我们想把站点的根目录改成/home/wwwroot/yunkus.com 目录下。

我们首先要做的就是创建这个目录

  1. # mkdir -p /home/wwwroot/yunkus.com

进入配置文件

  1. # vi /etc/httpd/conf/httpd.conf

定位到 DocumentRoot “/var/www/html/” 把

  1. DocumentRoot "/var/www/html"

修改成

  1. DocumentRoot "/home/wwwroot/yunkus.com"

除了修改这里外,我们还得多修改一个地方,定位到

  1. # Further relax access to the default document root:
  2. <Directory "/var/www/html">

按下i键进入编辑模式,把上面的代码改成

  1. # Further relax access to the default document root:
  2. <Directory "/home/wwwroot/yunkus.com">

为了方便你定位,我把它上一行注释的代码也复制过来了。你只需要关心第二行代码就行。改完后,按 Esc 键退出编辑模式,再按:wq退出保存。

 注意:记得重启 Apach 服务!

  1. # systemctl restart httpd.service

现在你就可以访问站点试试了。如果你站点目录下没有任何文章,那么当你访问时就会出现 Apache 测试页面,这是再正常不过了,但如果你想访问这个站点目录下的其它文件如:index.html (默认的访问文件格式)时,不管你怎么刷新,浏览器还是显示 Apache 测试页面,这又是为什么呢?原来,我们还没给这个站点目录相应的权限(默认是750),所以给目录修改权限势在必行。

执行下下命令行

  1. # chmod -R 755 /home/wwwroot/yunkus.com

 注意:R 要大写。

现在你再刷新试试,现在访问 index.html 应该没什么问题了。

相关命令

在这里为了方便你学习Linux的相关命令,我把本文中所涉及到的命令重新整理出来,这样可以让你对Linux的命令行有一个更加全面的了解。

Apache 服务安装

  1. # yum install httpd

开启 Apache 服务

  1. # systemctl start httpd.service

重启 Apache 服务

  1. # systemctl restart httpd.service

停用Apache 服务

  1. # systemctl stop httpd.service

查看Apache 服务状态

  1. # systemctl status httpd.service

重启服务器自动启动Apache 服务

  1. # systemctl enable httpd.service

打开Apache 配置文件

  1. # vim /etc/httpd/conf/httpd.conf

iptables 防火墙

系统默认情况下iptables 防火墙服务是开启的。

编辑 iptables 防火墙配置文件

  1. # vi /etc/sysconfig/iptables

查看 iptables 防火墙服务

  1. # systemctl status iptables.service

重启服务器自动启动 iptables 服务

  1. # systemctl enable iptables.service

开启 iptables 防火墙服务

  1. # systemctl start iptables.service

重启 iptables 防火墙服务

  1. # systemctl restart iptables.service

关闭 iptables 防火墙服务

  1. # systemctl stop iptables.service

firewalld 防火墙

系统默认情况下firewalld防火墙是关闭的。

编辑防火墙配置文件

  1. # vi /etc/sysconfig/iptables

查看 firewalld 防火墙服务

  1. # systemctl status firewalld.service

重启服务器自动启动 firewalld 服务

  1. # systemctl enable firewalld.service

开启 firewalld 防火墙服务

  1. # systemctl start firewalld.service

重启 firewalld 防火墙服务

  1. # systemctl restart firewalld.service

关闭 firewalld 防火墙服务

  1. # systemctl stop firewalld.service

相关资料

视频教程:安装与配置 Apache 服务

文章转至云库网