Bagaimana saya bisa memulai python SimpleHTTPServer pada port 80?

96

Saya menggunakan perintah ini di Ubuntu tetapi mulai pada port 8080 dan saya tidak memiliki server lain yang berjalan sehingga saya ingin memulai pada port 80. Saya melihat cara-cara Anda dapat mengatur skrip bash untuk melakukan sesuatu seperti ini, tetapi tidak ada bendera baris perintah atau sesuatu yang lebih sederhana untuk menentukan port?

python -m SimpleHTTPServer
cwd
sumber
3
Apakah Anda menjalankan sebagai root? Anda tidak dapat mendengarkan pada port <1024 kecuali Anda memiliki hak akses root - dan saya akan sangat menyarankan itu.
Nathan Osman

Jawaban:

163

sudo python -m SimpleHTTPServer 80

untuk versi python 3.x , Anda mungkin perlu:

sudo python -m http.server 80

Port di bawah 1024 membutuhkan hak akses root.

Seperti yang ditambahkan George dalam komentar, menjalankan perintah ini sebagai root bukanlah ide yang baik - itu membuka semua jenis kerentanan keamanan.

Namun, itu menjawab pertanyaan itu.

jrg
sumber
6
Saya mungkin juga menambahkan bahwa menjalankan perintah ini sebagai root bukanlah ide yang baik - itu membuka semua jenis kerentanan keamanan.
Nathan Osman
2
@ cwd :) Nomor port TCP / IP di bawah 1024 adalah spesial karena pengguna normal tidak diizinkan menjalankan server pada mereka. Ini adalah fitur keamanan, di mana jika Anda terhubung ke layanan di salah satu port ini, Anda dapat cukup yakin bahwa Anda memiliki hal yang nyata, dan bukan palsu yang dibuat oleh beberapa peretas untuk Anda.
jrg
4
@ cwd Jika Anda ingin menjalankan server pada port <1024, gunakan iptables untuk merutekan koneksi masuk ke port ≥1024. Untuk pengujian, lakukan sesuatu seperti sudo nc -l 80( netcat ). Dan lihat Mengapa 1024 port pertama dibatasi hanya untuk pengguna root?
Gilles
1
@ jrg Port <1024 hanya penting jika Anda memercayai sysadmin di server tetapi tidak pada pengguna lain. Ini hampir tanpa pengguna di luar beberapa jaringan lokal saat ini: sebagian besar server bukan mesin multi-pengguna.
Gilles
3
Ini adalah pertanyaan terkait tentang cara melepaskan hak istimewa setelah Anda membuka port 80.
jcollado
2

Lakukan sesuatu seperti:

python -SimpleHTTPServer 50505

Di mana 50505nomor port.

Akash Yellappa
sumber