如何在端口80上启动python SimpleHTTPServer?


96

我在Ubuntu上使用此命令,但它在端口8080上启动,并且我没有在运行其他服务器,因此我希望它在端口80上启动。我看到了可以设置bash脚本执行类似操作的方法这个,但是没有命令行标志或更简单的方法来指定端口吗?

python -m SimpleHTTPServer

3
您是否以root用户身份运行?除非您具有root特权,否则您不能在<1024端口上侦听-我强烈建议您不要这样做。
内森·奥斯曼

Answers:


163

sudo python -m SimpleHTTPServer 80

对于python 3.x版本,您可能需要:

sudo python -m http.server 80

低于1024的端口需要root特权。

正如George在评论中所添加的那样,以root用户身份运行此命令不是一个好主意- 它打开了各种安全漏洞。

但是,它回答了这个问题。


6
我还可以补充一点,以root用户身份运行此命令不是一个好主意-它会打开各种安全漏洞。
内森·奥斯曼

2
@cwd :)低于1024的TCP / IP端口号是特殊的,因为不允许普通用户在其上运行服务器。这是一项安全措施,因为如果您在这些端口之一上连接到服务,则可以确定您拥有真实的东西,而不是某些黑客为您提供的伪造品。
jrg 2011年

4
@cwd如果要在<1024端口上运行服务器,请使用iptables将传入的连接路由到≥1024端口。对于测试,请执行类似sudo nc -l 80netcat)的操作。并查看为什么前1024个端口仅限于root用户?
吉尔斯

1
@jrg <1024端口仅在您信任服务器上的sysadmin而不信任其他用户时才有意义。如今,在一些本地网络之外几乎没有用户:大多数服务器不是多用户计算机。
吉尔斯

3
这是一个相关的问题有关,一旦你开了80端口如何放弃特权
jcollado

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.