2017年12月08日 14:13:57 李爽11 閱讀數:8491html
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/u013028876/article/details/78750561linux
用iptables開啓防火牆報錯: Failed to start IPv4 firewall with iptables.vim
錯誤緣由:由於centos7.0默認不是使用iptables方式管理,而是firewalld方式。CentOS6.0防火牆用iptables管理。centos
解決辦法有兩個:使用firewalld方式。或者關閉firewalld,而後安裝iptables。tcp
1、關閉firewalld,安裝iptables過程:centos7
中止並屏蔽firewalld:spa
systemctl stop firewalld
.net
systemctl mask firewalld
rest
安裝iptables-services:code
yum install iptables-services
設置開機啓動:
systemctl enable iptables
中止/啓動/重啓 防火牆:
systemctl [stop|start|restart] iptables
#or
service iptables [stop|start|restart]
保存防火牆配置:
service iptables save
#or
/usr/libexec/iptables/iptables.init save
按照上述命令配置後的界面:
2、從iptables切換回firewalld
一、先看firewalld的狀態:inactive
二、安裝firewalld
三、切換到firewalld,切換過程與切換iptables同樣
/************下面是iptables的一些命令*******************************/
查詢防火牆狀態:
[root@localhost ~]# service iptables status
中止防火牆:
[root@localhost ~]# service iptables stop
啓動防火牆:
[root@localhost ~]# service iptables start
重啓防火牆:
[root@localhost ~]# service iptables restart
永久關閉防火牆:
[root@localhost ~]# chkconfig iptables off
永久關閉後啓用:
[root@localhost ~]# chkconfig iptables on
開啓端口:
[root@localhost ~]# vim/etc/sysconfig/iptables
/**********下面是firewalld的一些命令*****************************/
#systemctl statusfirewalld //查看狀態,看電腦上是否已經安裝firewalld
#yum installfirewalld //安裝firewalld防火牆
#systemctl startfirewalld.service //開啓防火牆
#systemctl stop firewalld.service //關閉防火牆
#systemctl enable firewalld.service //設置開機自動啓動
#systemctl disable firewalld.service //設置關閉開機制動啓動
#firewall-cmd--reload //在不改變狀態的條件下從新加載防火牆
啓用某個服務
#firewall-cmd --zone=public --add-service=https //臨時
#firewall-cmd --permanent --zone=public --add-service=https //永久
開啓某個端口
#firewall-cmd--permanent --zone=public --add-port=8080-8081/tcp //永久
#firewall-cmd --zone=public --add-port=8080-8081/tcp //臨時
查看開啓的端口和服務
#firewall-cmd--permanent --zone=public --list-services //服務空格隔開 例如 dhcpv6-client https ss
#firewall-cmd--permanent --zone=public --list-ports //端口空格隔開 例如 8080-8081/tcp 8388/tcp 80/tcp
#systemctl restartfirewalld.service //修改配置後須要重啓服務使其生效
#firewall-cmd--zone=public --query-port=8080/tcp //查看服務是否生效(例:添加的端口爲8080)
/**********下面是systemctl的一些命令*******************************/
觀察iptables和firewalld使用的兩組命令,發現三個經常使用的命令:service、chkconfig、systemctl。那麼它們分別是作什麼的呢?(去網上搜索了一下給出了答案)
systemctl命令是系統服務管理器指令,它實際上將 service 和 chkconfig 這兩個命令組合到一塊兒。
任務 |
舊指令 |
新指令 |
使某服務自動啓動 |
chkconfig --level 3 httpd on |
systemctl enable httpd.service |
使某服務不自動啓動 |
chkconfig --level 3 httpd off |
systemctl disable httpd.service |
檢查服務狀態 |
service httpd status |
systemctl status httpd.service(服務詳細信息) systemctl is-active httpd.service(僅顯示是否 Active) |
顯示全部已啓動的服務 |
chkconfig --list |
systemctl list-units --type=service |
啓動某服務 |
service httpd start |
systemctl start httpd.service |
中止某服務 |
service httpd stop |
systemctl stop httpd.service |
重啓某服務 |
service httpd restart |
systemctl restart httpd.service |
總結:
記是記不住的,實操才能夠,熟能生巧。
抓住一個問題,深刻去挖,每每能挖出一片,從而掃清一片盲點。深挖能出清泉。
參考文章:
https://www.vkilo.com/rhel-7-iptables-service.html
http://blog.csdn.net/Joe68227597/article/details/75207859