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

cwd*_*cwd 118 permissions python webserver

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

python -m SimpleHTTPServer
Run Code Online (Sandbox Code Playgroud)

jrg*_*jrg 201

sudo python -m SimpleHTTPServer 80

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

sudo python -m http.server 80

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

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

然而,它回答了这个问题。

  • 我还可以补充一点,以 root 身份运行此命令**不是**一个好主意 - 它会打开各种安全漏洞。 (7认同)
  • @cwd 如果要在端口 <1024 上运行服务器,请使用 iptables 将传入连接路由到端口 ≥1024。要进行测试,请执行类似 `sudo nc -l 80` ([netcat](http://en.wikipedia.org/wiki/Netcat)) 的操作。并参阅 [为什么前 1024 个端口仅限于 root 用户?](http://unix.stackexchange.com/q/16564) (4认同)
  • 这是一个相关的 [问题](http://stackoverflow.com/q/2699907/183066),关于打开端口 80 后如何删除权限。 (3认同)
  • @cwd :) 低于 1024 的 TCP/IP 端口号是特殊的,因为不允许普通用户在其上运行服务器。这是一项安全功能,因为如果您连接到这些端口之一上的服务,您可以相当确定您拥有真实的东西,而不是某些黑客为您提供的伪造品。 (2认同)

小智 6

做类似的事情:

\n\n
python\xc2\xa0-m\xc2\xa0SimpleHTTPServer 50505\n
Run Code Online (Sandbox Code Playgroud)\n\n

50505端口号在哪里。

\n