Security
Azure 入站安全規則疑難解答
我有一個在 Ubuntu 伺服器上執行的 node.js 應用程序。我能夠進入
-X SSH
並檢查它是否在 localhost:4000 上使用 Firefox 正常執行。然後,我從 Azure 門戶添加新的入站安全規則。
仍然無法從伺服器外部訪問該站點。我從桌面執行以下命令:
telnet 104.99.99.99 4000
我得到連接超時。
結果來自
sudo iptables -L
:Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- anywhere anywhere udp dpt:bootpc Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
安全規則:
我想到了3件事:
- 您的應用程序在 localhost:4000 上偵聽,這不是您的網路介面 IP,因此儘管 Azure 防火牆設置正確,但仍無法從伺服器本身以外的任何地方訪問。檢查
netstat -anep | grep -w 4000
並確保它正在偵聽您使用的網路介面的 0.0.0.0 或 IP(無論是 eth0 還是其他任何東西)。如果它在 127.0.0.1 上監聽,那麼外部世界將無法訪問它- 來自伺服器的傳出流量:4000 被 Azure 防火牆阻止。不太可能,但嘗試創建另一個防火牆規則,以允許您的伺服器從埠 4000 的傳出流量 100% 確保它不是阻止程序
- 額外的 iptables 過濾器在
iptables -L
. 要全部顯示它們,請使用:iptables -vL -t filter
,iptables -vL -t nat
,iptables -vL -t mangle
,iptables -vL -t raw
,iptables -vL -t security