ポート80でPython SimpleHTTPServerを起動するにはどうすればよいですか?


96

私はUbuntuでこのコマンドを使用していますが、ポート8080で開始していますが、別のサーバーを実行していないので、ポート80で開始したいと思います。bashスクリプトを設定して、これはありますが、コマンドラインフラグやポートを指定する簡単なものはありませんか?

python -m SimpleHTTPServer

3
ルートとして実行していますか?ルート権限を持っていない限り、1024未満のポートでリッスンすることはできません。それに対して強くお勧めします。
ネイサンオスマン

回答:


163

sudo python -m SimpleHTTPServer 80

以下のためのpythonの3.xバージョン、あなたが必要な場合があります

sudo python -m http.server 80

1024未満のポートにはルート権限が必要です。

Georgeがコメントで付け加えたように、このコマンドをrootとして実行するのは良い考えではありません。あらゆる種類のセキュリティ脆弱性を引き起こします。

ただし、質問には答えます。


6
また、ルートとしてこのコマンドを実行することは良い考えではないことを追加するかもしれません-それはあらゆる種類のセキュリティの脆弱性を広げます。
ネイサンオスマン

2
@cwd :) 1024未満のTCP / IPポート番号は、通常のユーザーがサーバー上でサーバーを実行することを許可されないという点で特別です。これはセキュリティ上の機能です。これらのポートのいずれかでサービスに接続すると、ハッカーが用意した偽物ではなく、本物であることをかなり確信で​​きるからです。
jrg

4
@cwd 1024未満のポートでサーバーを実行する場合は、iptablesを使用して、1024以上のポートに着信接続をルーティングします。テストのために、sudo nc -l 80netcat)のようなことをしてください。また、最初の1024ポートがrootユーザーのみに制限される理由を
ジル

1
@jrg 1024未満のポートは、サーバー上のシステム管理者を信頼しているが、他のユーザーを信頼していない場合にのみ重要です。最近では、いくつかのローカルネットワークの外ではほとんどユーザーがいません。ほとんどのサーバーはマルチユーザーマシンではありません。
ジル

3
これは、ポート80を開いた後に特権を削除する方法に関する関連質問です。
jcollado11年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.