
Ubuntu/Linux を使い始めたばかりですが、着信接続用にポート 80 を開くのに問題があります。
コマンドを実行するsudo ufw allow 80/tcp
と、実行sudo ufw status
結果は次のようになります。
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
80/tcp ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
ただし、cURL を使用してポートに接続しようとすると、このエラーが引き続き発生します。
MY_IP_ADDRESS ポート 80 への接続に失敗しました: 接続が拒否されました
このコマンドを実行してnetstat -ntlp | grep LISTEN
開いているポートを確認すると、次の結果が得られます。
(No info could be read for "-p": geteuid()=1000 but you should be root.)
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
あまり期待できそうにありません。
着信接続用にポート 80 を開くにはどうすればよいですか?
答え1
ポート 80 をリッスンしているプログラムがないため、ポートは閉じられており、接続できません。
使用できます
sudo python -m SimpleHTTPServer 80
Python-3の場合:
sudo python3 -m http.server 80
ポート 80 でリッスンする単純な Web サーバーを起動するか、apache2
本格的な Web サーバーが必要な場合は Apache (パッケージ) などをインストールします。
答え2
UFWそれはシンプルなファイアウォール. コンピュータ上のどのポートをアプリケーションがリッスンするために開くことができるかを管理しますsudo ufw allow 80/tcp
。TCP接続ポート80。
しかし、ポートの背後で実際にリッスンしているものは何もありません。curl
ポートに対して、応答を送信するアプリケーションが必要です。これは通常、サーバーと呼ばれます。@Florianが指摘しているように、パイソンそれをテストすることですSimpleHTTPServer
。
答え3
使用:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
次に、再起動時に iptables 構成が失われないようにするには、次を使用します。
sudo apt-get install iptables-persistent
答え4
これを使用するsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
と、ポートを設定するときにポートを受け入れることができ、このターミナル行のコードが失われるのを防ぐことができます。sudo apt-get install iptables-persistent
コマンドの先頭に sudo を使用する理由は、スーパーユーザーとして実行できるようにするためです。persistant は、指定されたポートへの永続的な接続として使用します。また、Python を使用してテストすることもできますSimpleHTTPServer
。これは素晴らしい質問でした。ありがとうございます。