Centos7啓動防火牆時報錯Failed to start IPv4 firewall with iptables

 

今天在虛擬機的Linux系統(centos7)裏安裝Redis,準備學習一下布隆過濾器呢,安裝完後使用Windows本機訪問不了虛擬機裏的Redis,telnet不通可以ping通。因而就去看防火牆,是否關閉或是否把6379端口放開了。php

因而就往這方面查問題,發現沒有iptables文件,而後我啓動iptables服務,報錯。html

Centos 7在啓動iptables(防火牆)時報錯:
Failed to start IPv4 firewall with iptables.nginx

緣由:由於centos7.0默認不是使用iptables方式管理,而是firewalld方式。Centos6.0防火牆用iptables管理。(原來是這樣,centos7默認防火牆時firewalld啊[笑哭]。:-D)redis

解決辦法有兩個:一是繼續使用默認的firewalld方式。二是關閉firewalld,而後安裝iptables。之前都是用iptables,因此想換回來,因而找到以下切換教程。sql

從firewalld切換到iptables:關閉firewalld安裝iptables

一、首先執行以下命令windows

1#關閉
2systemctl stop firewalld
3systemctl mask firewalld

二、而後安裝iptables-servicescentos

1#安裝
2yum install iptables-services
3#設置開機啓動
4systemctl enable iptables

三、開放443端口(HTTPS)app

iptables -A INPUT -p tcp --dport 443 -j ACCEPTtcp

四、保存防火牆配置學習

1service iptables save
2#或者
3/usr/libexec/iptables/iptables.init save

五、iptables的一些命令,中止/啓動/重啓 防火牆:

1systemctl [stop|start|restart] iptables
2#或者
3service iptables [stop|start|restart]

而後啓動iptables服務,這樣就搞定了。

可是,從firewalld切換到iptables後會有這樣那樣的問題,還不如用系統默認的。

從iptables切換回firewalld

一、先看firewalld的狀態:inactive
systemctl status firewalld

二、安裝firewalld
yum install firewalld

三、切換

1#關閉iptables
2systemctl mask iptables
3systemctl stop iptables
4#切換
5systemctl unmask friewalld
6systemctl start friewalld

總算恢復了。

饒了一大圈,最後找到這篇文章
windows本地連不上虛擬機redis服務完美解決,解決了這個問題。

附:firewalld相關命令

經常使用命令

 1#查看狀態,是否已經安裝firewalld
2systemctl status firewalld
3#開啓防火牆
4systemctl startfirewalld.service
5#關閉防火牆
6systemctl stop firewalld.service
7#設置開機自動啓動
8systemctl enable firewalld.servic
9#設置關閉開機制動啓動
10systemctl disable firewalld.service
11#在不改變狀態的條件下從新加載防火牆
12firewall-cmd --reload

啓用某個服務

1#臨時
2firewall-cmd --zone=public --add-service=https
3#永久
4firewall-cmd --permanent --zone=public --add-service=https

開啓某個端口

1#永久
2firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
3#臨時
4firewall-cmd  --zone=public --add-port=8080-8081/tcp

查看開啓的端口和服務

1#查看開啓的服務 空格隔開
2firewall-cmd --permanent --zone=public --list-services
3#查看開啓的端口 空格隔開
4firewall-cmd --permanent --zone=public --list-ports
5#修改配置後須要重啓服務使其生效
6systemctl restartfirewalld.service
7#查看服務是否生效 (例:添加的端口爲8080)
8firewall-cmd --zone=public --query-port=8080/tcp 

以下,查看開啓的服務、端口

相關文章
相關標籤/搜索