![透過相同的共享wifi透過行動裝置存取node.js本地伺服器](https://rvso.com/image/1331452/%E9%80%8F%E9%81%8E%E7%9B%B8%E5%90%8C%E7%9A%84%E5%85%B1%E4%BA%ABwifi%E9%80%8F%E9%81%8E%E8%A1%8C%E5%8B%95%E8%A3%9D%E7%BD%AE%E5%AD%98%E5%8F%96node.js%E6%9C%AC%E5%9C%B0%E4%BC%BA%E6%9C%8D%E5%99%A8.png)
編輯:我以前遇到過這種情況,但後來它與 Apache 相關,但這次我使用NodeJS,所以舊的答案沒有幫助。
我在 Windows 7 上運行apache NodeJS Web 伺服器(在連接埠 80 上)。
http://localhost
在 PC 上工作。
但我無法http://192.168.1.4
透過手機甚至電腦進行存取。
ipconfig /all
在我的電腦上列出我的 IP 位址為 192.168.1.4
Wireless LAN adapter Wireless Network Connection:
IPv4 Address. . . . . . . . . . . : 192.168.1.4(Preferred)
我可以從 PC ping 手機的(內部)IP 位址 [192.168.1.5],反之亦然,我可以從手機 ping 我的 PC [192.168.1.4]。
那為什麼我無法http://192.168.1.4
透過手機存取呢? (或電腦)
防火牆已關閉。
答案1
我在伺服器上偵聽時指定了主機名稱。
server.listen(80, process.env.OPENSHIFT_NODEJS_IP || process.env.IP || '127.0.0.1')
答案2
需要添加
Listen 192.168.1.4:80
在 Apache 的 httpd.conf 中
答案3
這段程式碼為我解決了這個問題(在我的例子中使用 localhost 新增本地 IP:192.168.1.7)
var app = express();
app.listen(3000,'192.168.1.7' || 'localhost',function() {
console.log('Application worker ' + process.pid + ' started...');
}
);
這樣您就可以從以下位置存取伺服器http://本地主機:3000或者http://192.168.1.7:3000(我的本地IP是192.168.1.7)