今天配置一個nginx虛擬主機監聽了一個自定義端口8118,重啓nginx後在自己電腦瀏覽器訪問連接不上:
查看監聽端口:
netstat -lnt
返回已監聽到8118端口
考慮是防火牆原因,就去查看防火牆狀態:
/etc/init.d/iptables status
但是什麼也沒輸出,接着我停掉防火牆
/etc/init.d/iptables stop
自己電腦依然訪問不到,然後我在本機
wget 127.0.0.1:8118
返回403,說明可以訪問。奇了怪了真是。
因爲的我的賬號是非root賬號,我無意中查看防火牆時加了個sudo返回了防火牆開放的端口,而防火牆一直開着。也就是說原因就是因爲防火牆沒有開放端口。
接下來就好辦了:
vi /etc/sysconfig/iptables
看到防火牆開啓了22 3306 和80端口,添加一條新建的端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8118 -j ACCEPT
重啓防火牆:/etc/init.d/iptables restart
那爲什麼執行iptables腳本沒有任何輸出,而不像其他腳本沒權限時報錯呢,大概看了下iptables的啓動腳本其中有一行:
# only usable for root
[ $EUID = 0 ] || exit 4
說明只有root才能調用iptables啓動腳本.我真是孤陋寡聞了