服務器有兩種防火牆
- iptables
- firewalld
這兩個防火牆只能開一個,也可以兩個都不開,不開就是全部支持訪問的意思,我使用的是iptables
iptables
先關閉firewall防火牆
由於CenterOS7.0以上版本並沒有預裝Iptables,我們需要自行裝
# 先查看有沒有安裝
systemctl status iptables.service
# 安裝iptables:
yum install iptables
# 安裝iptables-services:
yum install iptables-services
# 開啟防火牆:
systemctl start iptables.service
# 關閉防火牆:
systemctl stop iptables.service
# 查看防火牆狀態:
systemctl status iptables.service
# 設置開機啟動:
systemctl enable iptables.service
# 禁用開機啟動:
systemctl disable iptables.service
# 查看filter表的幾條鏈規則(INPUT鏈可以看出開放了哪些端口):
iptables -L -n
# 清除防火牆所有規則:
iptables -F
iptables -X
iptables -Z
# 給INPUT鏈添加規則(開放8080端口):
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
# 查找規則所在行號:
iptables -L INPUT --line-numbers -n
# 根據行號刪除過濾規則(關閉8080端口):
iptables -D INPUT 1
firewall
先關閉iptables防火牆
# 查看防火牆狀態:
systemctl status firewalld
# 開啟防火牆:
systemctl start firewalld
# 關閉防火牆:
systemctl stop firewalld
# 設置開機啟動:
systemctl enable firewalld
# 禁用開機啟動:
systemctl disable firewalld
# 重啟防火牆(每次修改都要重啟):
firewall-cmd --reload
# 開放端口(修改后需要重啟防火牆方可生效):
firewall-cmd --add-port=80/tcp –permanent
# 關閉端口:
firewall-cmd --remove-port=8080/tcp --permanent
# 查看開放的端口:
firewall-cmd --list-ports
為了測試防火牆,我開啟了node服務器3000端口,隨便返回了一個123456,然后防火牆開啟了3000端口后,在本地訪問服務器ip地址:3000端口是沒返回123456的,我又把兩個放回牆都關了,還是不行,百度了之后才知道阿里有個安全組
安全組
可以看到自帶有80,3389,22這都是必須開啟的通信端口,因為沒有3000端口所以才訪問不到,加一下就訪問得到了,但是3000端口是沒意義的,因為訪問域名是80端口,除了80端口,其他需要被訪問的外部端口只有數據庫
貼一下我的開放端口和安全組
打臉了,下圖的3000端口和8080都是不需要打開的,只要反向代理出來就行