CentOS 7 防火墙

文章主要介绍防火墙的使用,和遇到的一些问题

CentOS 防火墙 命令

  • CentOS 6 系列使用 iptables
  • Centos 7使用firewalld代替了原来的iptables。

查看防火墙的状态:

Centos 7 firewall 命令:

  • firewall-cmd --zone=public --add-port=80/tcp --permanent ##开启端口

    • zone #作用域

    • add-port=80/tcp #添加端口,格式为:端口/通讯协议

    • permanent #永久生效,没有此参数重启后失效

firewall-cmd --state                           ##查看防火墙状态,(关闭后显示notrunning,开启后显示running)
firewall-cmd --reload                          ##重启firewall,重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --list-ports                      ##查看已经开放的端口
firewall-cmd --get-zones                       ##列出支持的zone
firewall-cmd --get-services                    ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp               ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp                 ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent     ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent  ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent     ##永久添加80端口 
iptables -L -n                                 ##查看规则,这个命令是和iptables的相同的
man firewall-cmd                               ##查看帮助

systemctl 命令操作防火墙

启动一个服务: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;echo $?
查看已启动的服务列表:systemctl list-unit-files|grep enabled

由防火墙产生的问题

两台电脑
A:192.168.1.88
B:192.168.1.100

在同一台电脑A使用docker运行,spring cloud开发微服务的时候,运行了一个eureka服务A,映射端口8761,然后运行服务B,注册到192.168.1.88:8761,一直注册不到eureka服务,提示

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

但是B可以成功连接A的8761

当时为了方便,关闭防火墙,发现服务B可以正常注册。(难道是防火墙屏蔽了,端口的出方向)

紧接着又出现,服务B连接公网上的数据库连接超时,提示如下:

这里写代码片

此时,发现docker中的mysql也启动不了了,提示:

/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint xxxx (4509dc5c1fe2ad23848f6098edb0f6df694c001179ea4c8fa866335eb5f4f11f): iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 3247 -j DNAT --to-destination 172.17.0.2:3306 ! -i docker0: iptables: No chain/target/match by that name.

按照这篇文章,打开防火墙,就OK了。

为了能正常注册服务,正常连接公网的服务,只能打开防火墙,开启指定的端口

参考:

CentOS 6和CentOS 7防火墙的关闭
CentOS 7 开放防火墙端口命令
Centos 7 firewall 命令:
docker无法启动问题

猜你喜欢

转载自blog.csdn.net/xx326664162/article/details/80312664
今日推荐