Linux 系统如何配置防火墙软件 iptables?
注意
iptables 在 CentOS 7 之前和之后的版本,有重大的改动。
CentOS 7 之前的版本,默认使用 iptables 服务作为防火墙,使用 ![](https://qcloudimg.tencent-cloud.cn/image/document/c5c4ec4b4fcf8d69da57ead9d7d530f5.png)
service iptables stop
代码,iptables 服务会先清空规则,然后卸载 iptables 模块。重新 start 时,会从配置文件中加载规则。停止 iptables 服务可以测试是否为防火墙限制。
![](https://qcloudimg.tencent-cloud.cn/image/document/c5c4ec4b4fcf8d69da57ead9d7d530f5.png)
CentOS 7 及其之后的版本,默认使用 firewall 服务作为防火墙,为了兼容,同时加载了 iptables_filter 模块,但是没有了 iptables 服务。所以 CentOS 7 及其之后的版本, 可以使用 iptables 命令添加规则,但是 iptables 服务默认关闭。用户确认 iptable_filter 模块加载,规则即可生效。
判断防火墙,最稳妥的方法,是
iptables -nvL
查看规则。
以下列举两个示例说明如何配置: 场景一
Ubuntu 14 系统,已开放安全组,监听端口,但 telnet 不通。
安全组入站规则:
![](https://qcloudimg.tencent-cloud.cn/image/document/4c4aca006fc4796042fbfcd19d7cdf55.png)
安全组出站规则:
![](https://qcloudimg.tencent-cloud.cn/image/document/df033871d8d191bd0831adbf6df87be3.png)
telnet 不通:
![](https://qcloudimg.tencent-cloud.cn/image/document/8defea291d5778cc1d5a05244187cefe.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/4c4aca006fc4796042fbfcd19d7cdf55.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/df033871d8d191bd0831adbf6df87be3.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/8defea291d5778cc1d5a05244187cefe.png)
解决思路
1. 首先对主机进行抓包,判断包是否到了主机。
如果没到主机,则可能是安全组或者上层 tgw、运营商封堵了。
如果包到了主机,但是回包出现了问题,那么极大可能是主机内部的 iptables 策略导致。如下图,telnet 后,没有向 64.11 回 TCP 包。
![](https://qcloudimg.tencent-cloud.cn/image/document/42654c21161c1d57a58ec46b579cef42.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/42654c21161c1d57a58ec46b579cef42.png)
2. 确认是 iptables 策略问题后,通过![](https://qcloudimg.tencent-cloud.cn/image/document/381974af532ce9dc1e95b0dc536f06be.png)
iptables –nvL
确认策略是否放通了8081端口。此处没有放通这个端口。
![](https://qcloudimg.tencent-cloud.cn/image/document/381974af532ce9dc1e95b0dc536f06be.png)
3. 使用命令添加8081端口放通策略。
iptables -I INPUT 5 -p tcp --dport 8081 -j ACCEPT
4. 测试8081端口通了,问题解决。
场景二
iptables 配置来看,已经放通策略,但是目的机器还是 ping 不通。
![](https://qcloudimg.tencent-cloud.cn/image/document/f5ced391c0e9667f504bda9d36813c56.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/f5ced391c0e9667f504bda9d36813c56.png)
解决思路
若出现以下情况:
![](https://qcloudimg.tencent-cloud.cn/image/document/6894a107ac26f247a4a02f3a3ead94a6.png)
使用命令删除 output 方向的第一条规则:
![](https://qcloudimg.tencent-cloud.cn/image/document/6894a107ac26f247a4a02f3a3ead94a6.png)
iptables –D OUTPUT 1
测试,问题解决。
如何清除防火墙?
Windows 实例:
1. 登录实例后,单击开始 > 控制面板 > 防火墙设置,进入防火墙设置页面。
2. 检查是否开启防火墙以及其他安全软件(如安全狗等),若开启,关闭即可。
Linux 实例:
1. 执行命令查看客户是否开启防火墙策略。若关闭,请跳过第2步,直接执行第3步:
iptables -vnL
2. 若开启防火墙策略,则执行命令将当前防火墙策略备份:
iptables-save
3. 执行命令清理防火墙策略。
iptables -F
如何解决 Windows 防火墙无法更改某些设置错误代码0x80070422?
1. 在键盘上同时按下 Win+R 组合键,打开运行,在运行输入框输入 services.msc,单击确定,进入服务策略设置面板。
2. 进入服务策略设置面板中,在右侧服务本地里面找到 Windows Defender Firewall 选项,即电脑防火墙设置选项。
![](https://qcloudimg.tencent-cloud.cn/image/document/7765d6e2f5879813611ad4122768d15f.png)
3. 在 Windows Defender Firewall 选项,双击打开,然后将常规里面的启动类型由禁用修改为手动,最后应用并确定即可。
![](https://qcloudimg.tencent-cloud.cn/image/document/a9ab89c9698fb40337bc5a8bae7d080a.png)
使用非腾讯云 CDN 加速云服务器 CVM,是否会被防火墙拦截?
不会。若您担心会有影响,可以关闭防火墙。