今天在虛擬機的Linux系統(centos7)里安裝Redis,准備學習一下布隆過濾器呢,安裝完后使用Windows本機訪問不了虛擬機里的Redis,telnet不通能夠ping通。於是就去看防火牆,是否關閉或是否把6379端口放開了。
於是就往這方面查問題,發現沒有iptables文件,然后我啟動iptables服務,報錯。
Centos 7
在啟動iptables(防火牆)時報錯:Failed to start IPv4 firewall with iptables.
原因:因為centos7.0
默認不是使用iptables
方式管理,而是firewalld
方式。Centos6.0
防火牆用iptables
管理。(原來是這樣,centos7默認防火牆時firewalld啊[笑哭]。:-D)
解決辦法有兩個:一是繼續使用默認的firewalld
方式。二是關閉firewalld
,然后安裝iptables
。以前都是用iptables,所以想換回來,於是找到如下切換教程。
從firewalld切換到iptables:關閉firewalld安裝iptables
1、首先執行如下命令
1#關閉
2systemctl stop firewalld
3systemctl mask firewalld
2、然后安裝iptables-services
1#安裝
2yum install iptables-services
3#設置開機啟動
4systemctl enable iptables
3、開放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
4、保存防火牆配置
1service iptables save
2#或者
3/usr/libexec/iptables/iptables.init save
5、iptables的一些命令,停止/啟動/重啟 防火牆:
1systemctl [stop|start|restart] iptables
2#或者
3service iptables [stop|start|restart]
然后啟動iptables服務,這樣就搞定了。
但是,從firewalld切換到iptables后會有這樣那樣的問題,還不如用系統默認的。
從iptables切換回firewalld
1、先看firewalld的狀態:inactivesystemctl status firewalld
2、安裝firewalldyum install firewalld
3、切換
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
如下,查看開啟的服務、端口
