centos從7開始默認用的是firewalld,iptables的服務是沒安裝的。若是存在firewalld的基礎上又安裝了iptables。那麼須要兩個防火牆都放通端口或者關閉掉,裏面的服務才能訪問。shell
firewalld的啓停命令是:centos
systemctl stop firewalld.service && systemctl disable firewalld.service systemctl start firewalld.service && systemctl enable firewalld.service 複製代碼
若是想要改用iptables的話,則須要安裝bash
yum install iptables-services systemctl stop iptables && systemctl disable iptables systemctl start iptables && systemctl enable iptables 複製代碼
也能夠用以下命令進行啓停:tcp
service iptables start service iptables stop 複製代碼
[root@test1 ~]# firewall-cmd --state
not running
複製代碼
從centos7開始使用systemctl來管理服務和程序,包括了service和chkconfig。這些命令均可以查看狀態,只是顯示的信息不太同樣而已centos7
[root@test1 ~]# systemctl list-unit-files|grep firewalld.service
firewalld.service enabled
[root@test1 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-07-11 09:49:26 CST; 12h ago
複製代碼
firewall-cmd --version
複製代碼
firewall-cmd --help
複製代碼
firewall-cmd --zone=public --list-ports
複製代碼
重啓防火牆:firewall-cmd --reload
啓動一個服務: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
複製代碼
#添加端口
[root@test1 ~]# firewall-cmd --zone=public --add-port=8081/tcp --permanent
#關閉端口
[root@test1 ~]# firewall-cmd --zone=public --remove-port=80/tcp --permanent
[root@test1 ~]# firewall-cmd --reload #重啓防火牆
success
[root@test1 ~]# firewall-cmd --list-ports
8080/tcp 50000/tcp
[root@test1 ~]#
複製代碼
命令含義:spa
–zone #做用域rest
–add-port=80/tcp #添加端口,格式爲:端口/通信協議code
–permanent #永久生效,沒有此參數重啓後失效ip