[英]VPS NodeJS server not accessible on public IP Oracle Compute Cloud
我正在嘗試使用 Ubuntu 18.04 在 Oracle 雲計算 VPS(永遠免費)上啟動我的 nodejs 網站。 (在這種情況下,它是 Oracle 服務器似乎非常重要)。 我可以 curl 本地主機(然后它返回 HTML),但我無法通過我的電腦上的公共 ip 訪問它。
為了解決端口 80 的 sudo 問題,我申請了:
sudo apt-get install libcap2-bin
sudo setcap 'cap_net_bind_service=+ep' `which node`
它確實在內部運行:
pm2 start bin/www
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ www │ fork │ 496 │ online │ 0% │ 15.5mb |
pm2 log
沒有返回錯誤。
sudo netstat -tulpn | grep 80
sudo netstat -tulpn | grep 80
返回:
tcp6 0 0 :::80 :::* LISTEN 26444/node /opt/por
如果你在想“哦,不,它在 ipv6 上運行,你應該在 nodejs 中添加listen(port, "0.0.0.0")”,我試過了,然后它在下面返回這個,但仍然有同樣的問題:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 26487/node /opt/por
curl localhost
返回我的主頁 html。 通過我的計算機瀏覽器中的公共 ip 訪問它是問題所在,因此問題出在 Oracle 制作的防火牆中。
我發現 Oracle 已經設置了一些 iptables 規則。 有些人只是說:禁用所有這些,但我發現這對安全性有點冒險。 因此,我只想打開我需要的端口(端口 80)。 所以我嘗試了幾乎所有我能找到的命令(下面的命令以及更多我不記得的命令)。
sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo netfilter-persistent save
我當前的 iptables 可見於:sudo iptables -L -n -v https://pastebin.com/ibqWUqjA
NAT iptables 可見於:sudo iptables -t nat -L -n -v https://pastebin.com/QGxdTsJ1
我必須說,我不是網絡專家。 我只知道如何在非 Oracle 雲服務器(我在家的樹莓派,在我的調制解調器中配置)上設置基本的 NodeJs 服務器。 所以我還沒有處理到這種程度的 iptables 和高級雲環境。 I tried to read in on the iptables topic by watching videos, and the oracle environment on: https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingpublicIPs.htm However, I must say it是相當的信息過載。 在鏈接上它說:
我發現有完全相同的問題的一篇 stackoverflow 帖子說:“我正在使用 oracle 雲。我將查看服務器外部的防火牆設置......謝謝。問題是 oracle 服務器本身的防火牆設置。問題已解決”( linux 上的 Nodejs 無法在服務器外部訪問)但他沒有說在哪里:(。我搜索了很多,但找不到選項。
有人可以指出我正確的方向嗎?
確實還有一個地方需要在終端外打開防火牆。
嘗試在您的網站運行時再次瀏覽您的公共 IP,它可以正常工作!
要閱讀有關此內容的更多信息,並查看我在哪里找到它,請參閱:
https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm#Default
https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securityrules.htm#stateful
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.