文章轉載自: CentOS 8的firewalld已經與iptables解綁
今天有人找上我,說以前用的一鍵安裝腳本很差使了,但願我能幫忙看看怎麼回事。後端
根據他的描述,初步判定是系統屢次安裝某個依賴致使。仔細詢問,他每次有問題都直接重建vps,不該該存在這個問題。接着猜想應該是腳本與當前系統不匹配,腳本過久沒更新因此安裝報錯。他說的腳本既不是我寫的也沒用過,讓他聯繫做者反饋估計很難也不能解決當下問題,因而幫忙找了另一個一鍵安裝腳本讓其嘗試。centos
新的腳本很快就將所需軟件安裝成功,可是出現沒法鏈接的問題。考慮到服務器有可能被屏蔽掉,因而用境外服務器鏈接,一樣不能連上。接着指導他排除服務未啓動、iptables端口和服務商防火牆未放行等因素,問題依舊。服務器
好久沒碰到這麼奇怪的情況,因而向他要了root密碼,親自登陸服務器查看問題。首先用ps aux | grep xxx
查看進程,確認軟件正常運行;接着netstat -nltp
查看端口監聽,確認端口一直且正在被監聽;iptables -nL
查看系統內置防火牆,輸出爲空,說明iptables沒有屏蔽進程監聽的端口。然而在這樣的配置下,依然沒法telnet
遠程鏈接到這臺服務器。問題到底出如今哪裏?ssh
會不會是由於進程的問題?因而測試用ssh
進程監聽端口,沒法鏈接;換一個端口,仍是連不上;改爲經常使用的80和443端口,也telnet
不過去。測試了多個進程和端口,除了ssh
的22端口,無論哪一個進程監聽的其餘端口都不行。tcp
走到這個地步,不是系統有問題即是個人水平有問題。因而用uname -a
查看系統版本,輸出以下:Linux xxx 4.18.0-80.7.1.el8_0.x86_64 #1 SMP Sat Aug 3 10:14:00 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
。信息略顯雜亂,但仍是能讓人一眼就看出問題所在:el8,系統居然是CentOS 8!測試
到此一切都明朗了:以前的一鍵安裝腳本報錯很差用了,由於腳本只適用於6和7,CentOS 8剛出來沒多久沒有測試過;我找的一鍵安裝腳本能安裝和運行,沒法鏈接是由於CentOS 8中firewalld已經與iptables解綁,後端改用nftables,這即是iptables -nL輸出爲空仍是沒法鏈接的真正緣由;要想鏈接上,只須要用nft
或者firewall-cmd
放行相應的端口便可:code
firewall-cmd --permanent --add-port=xxxx/tcp firewall-cmd --reload
向他解釋這些有點難度,因而讓他重建vps時選CentOS 7,一鍵安裝腳本好用了,也能遠程鏈接過去了。blog
CentOS 8打開了一個新世界。vps