ฉันจะเริ่ม python SimpleHTTPServer บนพอร์ต 80 ได้อย่างไร


96

ฉันใช้คำสั่งนี้บน Ubuntu แต่มันเริ่มต้นที่พอร์ต 8080 และฉันไม่มีเซิร์ฟเวอร์อื่นที่ใช้งานได้ดังนั้นฉันต้องการให้มันเริ่มที่พอร์ต 80 ฉันเห็นวิธีที่คุณสามารถตั้งค่าสคริปต์ทุบตีเพื่อทำอะไรบางอย่างเช่น สิ่งนี้ แต่ไม่มีแฟล็กบรรทัดคำสั่งหรือสิ่งที่ง่ายกว่าในการระบุพอร์ต

python -m SimpleHTTPServer

3
คุณทำงานเหมือนรูทหรือไม่? คุณไม่สามารถฟังพอร์ต <1024 ยกเว้นว่าคุณมีสิทธิ์ใช้งานรูท - และฉันขอแนะนำอย่างยิ่งให้ทำเช่นนั้น
Nathan Osman

คำตอบ:


163

sudo python -m SimpleHTTPServer 80

สำหรับpythonเวอร์ชั่น3.xคุณอาจต้อง:

sudo python -m http.server 80

พอร์ตที่ต่ำกว่า 1024 ต้องใช้สิทธิ์พิเศษ

ในขณะที่จอร์จเพิ่มความคิดเห็นการเรียกใช้คำสั่งนี้เนื่องจากรูทไม่ใช่ความคิดที่ดีมันเปิดช่องโหว่ด้านความปลอดภัยทุกประเภท

อย่างไรก็ตามมันตอบคำถาม


6
ฉันอาจเพิ่มที่ใช้คำสั่งนี้เป็นรากไม่เป็นความคิดที่ดี - มันเปิดช่องโหว่ความปลอดภัยทุกชนิด
Nathan Osman

2
@cwd :) หมายเลขพอร์ต TCP / IP ต่ำกว่า 1024 เป็นพิเศษในผู้ใช้ปกติที่ไม่ได้รับอนุญาตให้เรียกใช้เซิร์ฟเวอร์บนพวกเขา นี่คือการรักษาความปลอดภัยที่ถ้าคุณเชื่อมต่อกับบริการหนึ่งในพอร์ตเหล่านี้คุณสามารถมั่นใจได้ว่าคุณมีของจริงและไม่ใช่ของปลอมที่แฮ็กเกอร์บางคนนำมาให้คุณ
jrg

4
@cwd หากคุณต้องการเรียกใช้เซิร์ฟเวอร์บนพอร์ต <1024 ให้ใช้ iptables เพื่อกำหนดเส้นทางการเชื่อมต่อขาเข้าไปยังพอร์ต≥1024 สำหรับการทดสอบให้ทำสิ่งที่ชอบsudo nc -l 80( netcat ) และดูเหตุใด 1024 พอร์ตแรก จำกัด เฉพาะผู้ใช้รูทเท่านั้น?
Gilles

1
@jrg พอร์ต <1024 จะสำคัญก็ต่อเมื่อคุณเชื่อถือ sysadmin บนเซิร์ฟเวอร์ แต่ไม่ใช่ผู้ใช้รายอื่น ทุกวันนี้ใกล้กับผู้ใช้นอกเครือข่ายท้องถิ่นไม่กี่: เซิร์ฟเวอร์ส่วนใหญ่ไม่ได้เป็นเครื่องหลายคน
Gilles

3
นี่เป็นคำถามที่เกี่ยวข้องกับการยกเลิกสิทธิ์เมื่อคุณเปิดพอร์ต 80
jcollado

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.