1. 前言
今天小夥伴在群裡問服務器上服務啟動了,怎麼本地訪問不了。
我直接打開了cmd,telnet了一下,發現端口無法訪問到,大概率猜測是防火牆原因,就登上服務器使用firewalld-cmd開通端口試了下。
telnet服務的打開方法: windows在我的電腦->右鍵->管理->服務和應用程序-服務中可找到telnet服務啟動,並右鍵屬性設置為自啟動
果然如此。端口加入防火牆開通規則就好了。
2. 啟動/關閉防火牆服務:firewalld
CentOS 7 以後服務啟動從service xxx變成了 systemctl 命令。
防火牆也由iptables 改為默認是 firewalld。
<code>systemctl stop firewalld.service # 停止
systemctl start firewalld.service # 啟動
systemctl restart firewalld.service # 重啟
/<code>
3. 開啟指定端口【推薦】:firewall-cmd
注意:firewall與-cmd中間是連接在一起,沒有空格符的
<code>firewall-cmd --zone=public --add-port=12059/tcp --permanent
# 開啟指定端口
firewall-cmd --reload
# 重啟防火牆
firewall-cmd --list-ports
# 查看開放端口列表
/<code>
4. 批量開啟端口:7023-8023
批量添加跟單條添加端口命令沒什麼區別,將7023換成7023-8023,就是把從7023到8023中間這些端口都開放了。
更多命令可以查看 linuxido.com。
<code>firewall-cmd --permanent --zone=public --add-port=7023-8023/tcp
# 批量開啟TCP端口
firewall-cmd --reload
# 重啟防火牆
/<code>
5. 關閉防火牆端口:–remove
將參數add換成remove就ok。
<code>firewall-cmd --permanent --zone=public --remove-port=7023-8023/tcp
# 批量開啟TCP端口
firewall-cmd --reload
# 重啟防火牆
/<code>
6. 後記
如果用慣了iptables,不想用firewall,也可以切換回來。
<code>yum install iptables-services #安裝iptables
systemctl stop firewalld.service #停止firewalld
systemctl mask firewalld.service #禁止自動和手動啟動firewalld
systemctl start iptables.service #啟動iptables
systemctl start ip6tables.service #啟動ip6tables
systemctl enable iptables.service #設置iptables自啟動
systemctl enable ip6tables.service #設置ip6tables自啟動/<code>
更多命令可以查看 linuxido.com。
閱讀更多 姚毛毛 的文章