硅云帮助文档中心
搜索文档
热门搜索词:
产品简介
产品定价
入门指南
经典案例
快照
常见问题
知识拓展
名词解释
API参考
Linux/centos如何开放端口,firewall、iptables防火墙管理
CentOS 7系统默认的防火墙是Firewall,CentOS 6系统默认的防火墙是iptables。
CVM云服务器安装的Linux系统镜像默认已安装防火墙,当我们需要对外开放端口时,该如何操作?
Linux系统包括CentOS、Ubuntu、Debian等多个发行版本,本文档是针对CentOS系统的防火墙开放端口的操作方法。
因在CentOS 7中,Firewall防火墙取代了早前的iptables防火墙,防火墙的命令也不同,因此在实际操作前,我们需要先查询下到底使用的是哪种防火墙。
检查使用哪种防火墙,先尝试执行 firewall-cmd --state
[root@localhost ~]# firewall-cmd --state -bash: firewall-cmd: command not found
如上执行结果显示 command not found(译为未找到命令),说明该系统并没有安装firewall版防火墙。
同样的,如果执行命令 service iptables status
[root@localhost~]# service iptables status Redirecting to /bin/systemctl status iptables.service Unit iptables.service could not be found.
如上执行结果显示 Unit iptables.service could not be found(译为未找到iptables服务),说明系统并没有安装iptables防火墙。
为了更好的演示,我们分别在已经安装了firewall防火墙、iptables防火墙的环境中进行如下操作演示。
查看防火墙状态命令:
firewall-cmd --state
如上执行结果显示 running,即表示防火墙处于运行状态;如果显示not running,则表示已安装防火墙但处于关闭状态。(如果显示其他错误,则表示未安装firewall防火墙)
以上结果为防火墙已启用,我们就可以查看放行的端口了。
查看已开放端口命令:(示例中的zone表示信任级别,使用public即可)
firewall-cmd --zone=public --list-ports
如上执行结果,当前已开放TCP 20、TCP 21、TCP 22、TCP 80、TCP 8888、TCP 39000到40000 端口。
添加端口命令:
如果你需要新增放行一个端口,只需要执行如下命令,
firewall-cmd --zone=public --add-port=443/tcp --permanent
(以上示例为放行TCP 443端口,也就是用于https协议的端口,其中参数 permanent 表示永久生效,即重启系统后会继续生效)
移除端口命令:
如果你需要取消某个已放行的端口,输入命令:
firewall-cmd --zone=public --remove-port=443/tcp --permanent
重载服务命令:
添加/移除某个端口设置可能并不会立即生效(可以通过查看已开放端口命令核对),如果设置并未生效,我们可以执行一次重载防火墙服务(可以理解为刷新配置),输入命令:
firewall-cmd --reload
在CentOS6系中,默认安装的是iptables防火墙。
查看防火墙状态命令:
[root@localhost ~]# service iptables status iptables: Firewall is not running.
如上执行结果 Firewall is not running 表示iptables防火墙已经安装但是没有开启。
开启iptables防火墙命令:
[root@localhost ~]# service iptables start iptables: Applying firewall rules: [ OK ]
如上执行结果,iptables防火墙开启成功。
查看已开放端口命令:
iptables -L -n
开放端口命令:
以下示例为开放80端口,常用于http协议(开放某个端口即添加了一条开放该端口的规则),
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
删除端口(删除规则,即禁用端口):
首先我们需要知道对应规则的编号,每条规则都有一个编号,以下是查看已有规则编号命令:
iptables -L -n --line-number
如下为执行结果:
num target prot opt source destination 1 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 2 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 3 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
我们可以看到多了 num 这一列, 这样我们就可以看到刚才添加的规则是对应的是编号3(放行80端口入站规则)。
如果此时想要删除80端口入站规则(规则编号为3),那么我们就可以进行操作了
iptables -D INPUT 3
操作之后,务必执行保存命令:
service iptables save
注:硅云官方提供的Linux系统镜像默认已开启PING协议(ICMP协议)。
检查系统是否开启ping的命令:
ping又称作ICMP协议
cat /proc/sys/net/ipv4/icmp_echo_ignore_all
如以上执行结果为0,表示已开启ping,如为1,表示未开启ping。
开启ping的命令:
echo "0" >/proc/sys/net/ipv4/icmp_echo_ignore_all
除了系统中开启ping外,安全组也需放行ICMP/ipv4协议,这样公网IP才能ping通。
您对该文档有什么建议?
本文导航