私のFedoraシステムでは、Apache用のポート80を除いて、すべての着信接続が拒否されたように見えます。
ポート8111と1111を試しましたが、どちらも機能しません。私はハードウェアルータで転送を実行し、これらのポートへの接続を許可するようにファイアウォール(GUIを使用するiptables)を設定しました。しかし、まだ動作しません。
これらのポートの1つで小さなHTTPサーバー(node.js hello-world)を実行してカールしようとすると、ローカルホストでのみ機能し、パブリックIPアドレスでは機能しません。
パブリックアドレスを使用するとすぐに知ることができますcurl: (7) couldn't connect to host
。
ポート転送やファイアウォール例外がなければ、これは時間がかかり、すぐには発生しないので問題にならないと思います。また、カールの代わりにWebブラウザを試してみましたが、違いはありませんでした。
私はというツールを使ってみましたが、tcptrack
公開アドレスを使用してカールしようとするたびに、次のように表示されます(ここで公開アドレスを変更しましたが、192.168.0.2はローカルアドレスです)。
215.17.123.60:52014 192.168.0.2:1111 RESET 16s 0 B/s
192.168.0.2:52014 215.17.123.60:1111 RESET 16s 0 B/s
それでパッケージを受け取りましたが、なぜか拒否されました(リセットが何を意味するのかわかりません)。他のファイアウォールや何かがありますか?私が言ったように、ポート80は正常に動作します。
ベストアンサー1
このWebサーバーをどのように実行しますか?実際のIPアドレスではなく、ローカルホストでのみリッスンしているようです。したがって、localhost(127.0.0.1)の接続のみを許可します。
localhostの代わりに192.168.0.2(または0.0.0.0)にバインドしてみてください。
したがって、次のように起動すると:
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
127.0.0.1
に変更192.168.0.2