![同じ共有 Wi-Fi 経由でモバイルから node.js ローカル サーバーにアクセスする](https://rvso.com/image/1331452/%E5%90%8C%E3%81%98%E5%85%B1%E6%9C%89%20Wi-Fi%20%E7%B5%8C%E7%94%B1%E3%81%A7%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%89%20node.js%20%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%20%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%AB%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%99%E3%82%8B.png)
編集: 以前もこの状況に陥ったことがありますが、そのときはApache関連でした。しかし今回はノードJSしたがって、古い答えは役に立ちません。
私はWindows 7 で NodeJS Web サーバー (ポート 80) のApacheを実行しています。ローカルで PC と Wi-Fi ルーターを共有しているモバイルから Web サーバーにアクセスしたいと考えています。
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から携帯電話の(内部)IPアドレス[192.168.1.5]にpingを実行でき、逆に携帯電話からPCの[192.168.1.4]にpingを実行できます。
http://192.168.1.4
では、なぜ携帯電話(またはPC)からアクセスできないのでしょうか?
ファイアウォールはオフになっています。
答え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 です)