Node.js で遊ぶために、Virtual PC2007で仮想マシンとして実行されるCentOS5.6開発サーバーをセットアップしました。すべてが稼働していますが、Nodeサーバーが実行されているポートであるポート8234にアクセスできないようです。
wget localhost:8234
して、「Hello World」を含むHTMLファイルを取得できるため、サーバーが実行されていることがわかります。これは正しいです。
ポートスキャナーを使用すると、[受信を許可する]セクションに記載されているすべてのポートが開いていて、pingに応答していることがわかりますが、それ以外は何もありません。
setup
を実行し、次のように設定しました。
私の考えでは、これらの設定はファイアウォールをオフにし、eth0
(唯一の仮想ネットワークインターフェイス)に入るすべてのものを許可するはずでしたが、そうではないようです。
ファイアウォールを完全に無効にする、またはそれができない場合、ポート8234を外部からアクセスできるようにするにはどうすればよいですか?
Webサーバーはローカルホストにのみバインドされています。
Webサーバーがローカルホスト(127.0.0.1)またはリンクローカル(169.254。*。*)以外のIPアドレスでリッスンしていることを確認してください
netstat -tl
役立ちます
system-config-securitylevel-tui
アプリケーションは[〜#〜] very [〜#〜]ホストファイアウォールに対する制限された制御を提供します。ファイアウォールを完全に無効にしたい場合は、次のことを行う必要があります。
chkconfig iptables off
service iptables stop
これにより、ファイアウォールが実行レベルの変更で開始するのを停止し、現在実行中の場合はファイアウォールをシャットダウンします。
単一のポートへのアクセスを許可するには
iptables -A INPUT -p tcp -m tcp --dport 8234 -j ACCEPT
service iptables save
ファイアウォールが無効になっている場合は、ファイアウォールをカスタマイズする必要はありません。インストールが完了したら、ファイアウォールをオフにすることもできると思います。私はそれを調べるのに便利なCentOSシステムを持っていませんが、インターネットはそれをお勧めしているようです
service iptables save
service iptables stop
chkconfig iptables off
これにより、ルールが保存され、その後の起動時にファイアウォールが無効になります。おそらくグラフィカルツールもあります。これは私たちが話しているRedHatです。 ;)
ファイアウォールはまともなものです。 8234:tcpを他のポートフィールド(および/またはサービスで必要な場合はudp)に追加します。
@Lucasが提供するiptablesコマンドを実行しても機能しますが、ファイアウォールを無効にするのではなく、すべてのトラフィックを許可するだけです。その場合、ファイアウォールを実行したままにしておくことにはあまり意味がありません。
iptables -P INPUT ACCEPT
ルートとして
次のコマンドを使用して、Webサーバーがリッスンしているポートを確認します
(私はあなたがApacheを使用していると仮定しています)
netstat -an | grep httpd
ローカルループバックだけでなく、パブリックIPにバインドされていることを確認してください