![](/img/trans.png)
[英]Can only access Express Node.js server from machine running server
[英]Running a node.js/express app on a remote server for others to access?
我從來沒有做過這樣的事情,所以如果這是一個愚蠢的問題或者應該張貼在其他地方,請原諒我。 我有一個超級簡單的 Hello World 應用程序(用於測試目的),我試圖從遠程 linux(紅帽 7.6)服務器運行它,我使用膩子連接到該服務器,然后能夠從任何機器訪問該頁面(在同一網絡上)。 linux 服務器僅是 CLI,因此它不是虛擬機類型的東西,您可以在其中轉到服務器上的網頁並查看該頁面。
當我從自己的筆記本電腦運行該應用程序並轉到localhost:3000
或(my-IP-address):3000
,它工作得很好,但是當它從完全獨立的機器。 它在服務器上運行沒有錯誤,所以我認為代碼沒有任何問題......
這是我的代碼:
var express = require("express"),
app = express(),
mongoose = require("mongoose"),
bodyParser = require("body-parser"),
methodOverride = require("method-override"),
http = require("http");
app.use(bodyParser.urlencoded({ extended: true }));
app.set("view engine", "ejs");
app.get("/", function(req, res) {
res.send("Hello World!");
});
app.listen(3000, "0.0.0.0", function() {
console.log('Server running');
});
在服務器中,我為防火牆添加了這個(也是我以前沒有使用過的)
iptables -I INPUT 1 -p tcp --dport 3000 -j ACCEPT
但它似乎仍然沒有連接。 我覺得我在某個地方遺漏了一些關鍵步驟,但目前在網上找不到任何其他有效的東西
嘗試 telnet 到該機器中的端口telnet yourIP 3000
並查看該端口是否打開,如果不是,那么您必須確保它是打開的 在 aws 中,您通常會更改我相信的規則。(我不建議這通常是因為您會將其公開)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.