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

由防火墙产生的问题

问题一:

两台PC
A:192.168.1.88 centOS
B:192.168.1.100

在PC A使用docker运行,spring cloud开发微服务的时候,运行了一个eureka服务,映射端口8761,

运行PC B 上的spring cloud 应用,注册到192.168.1.88:8761,一直注册不到eureka服务,提示

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

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

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

此时,发现PC A 中docker的docker容器启动不了了,提示:

/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.

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

问题二:

docker 无法通过宿主机ip 访问mysql docker 容器

两台PC
A:192.168.1.108 centOS
B:192.168.1.100

1、PC A 上运行着 mysql docker容器,容器ip 172.17.0.3 端口 3306->3306
2、PC B 运行 程序JAR1 可以通过 192.168.1.108:3306 连接数据库
3、PC A 在docker 运行JAR1 ,可以通过 172.17.0.3:3306连接数据库
3、PC A 在docker 运行JAR1 ,但是却无法通过 192.168.1.108:3306连接数据库

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

Caused by: java.net.NoRouteToHostException: No route to host (Host unreachable)

解决:

打开防火墙,开启指定的端口

参考:

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

关注我的公众号,轻松了解和学习更多技术
这里写图片描述

展开阅读全文

150讲轻松搞定Python网络爬虫

05-16
【为什么学爬虫?】        1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!        2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。   从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑
©️2020 CSDN 皮肤主题: 撸撸猫 设计师: 设计师小姐姐 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值