端口 6000 有什么特别之处?
What's special about port 6000?
开始你的 Mac。从 quickstart page 中获取基础 Flask 应用程序并将端口更改为 6000,这将为您提供以下内容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.debug = True
app.run(port=6000)
将其保存在名为例如test.py
。然后创建一个virtualenv,运行 pip install flask
,并调用test.py
。这是您将在终端上看到的内容:
* Running on http://0.0.0.0:6000/ (Press CTRL+C to quit)
* Restarting with stat
因此 Flask 声称已绑定到端口 6000。现在启动浏览器并导航至 localhost:6000
。我原以为会看到愚蠢的消息 Hello World
,当我省略 run
的 port
参数并导航到 localhost:5000
时就是这种情况。但这是我看到的:
现在在终端上执行 Ctrl-C
,并停止 运行ning 进程。将端口更改为 6001,重新运行 命令。 Hello World
回来了!怎么会这样?没有其他进程连接到6000端口; lsof -i | grep 6000
returns 0 个结果,如果有任何进程,Flask 将首先无法绑定到该端口。防火墙已关闭。
有什么想法吗?
好的,找到答案了。浏览器会屏蔽某些端口,尽管它们不在系统端口范围内,但其中一些端口在广泛用于本地 Web 开发的范围内。 The links in this answer 指出来自浏览器供应商的理由和详尽的列表。正如德国人所说,"Wieder was gelernt"。
感谢@glyphobet 给出正确答案的评论。
开始你的 Mac。从 quickstart page 中获取基础 Flask 应用程序并将端口更改为 6000,这将为您提供以下内容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.debug = True
app.run(port=6000)
将其保存在名为例如test.py
。然后创建一个virtualenv,运行 pip install flask
,并调用test.py
。这是您将在终端上看到的内容:
* Running on http://0.0.0.0:6000/ (Press CTRL+C to quit)
* Restarting with stat
因此 Flask 声称已绑定到端口 6000。现在启动浏览器并导航至 localhost:6000
。我原以为会看到愚蠢的消息 Hello World
,当我省略 run
的 port
参数并导航到 localhost:5000
时就是这种情况。但这是我看到的:
现在在终端上执行 Ctrl-C
,并停止 运行ning 进程。将端口更改为 6001,重新运行 命令。 Hello World
回来了!怎么会这样?没有其他进程连接到6000端口; lsof -i | grep 6000
returns 0 个结果,如果有任何进程,Flask 将首先无法绑定到该端口。防火墙已关闭。
有什么想法吗?
好的,找到答案了。浏览器会屏蔽某些端口,尽管它们不在系统端口范围内,但其中一些端口在广泛用于本地 Web 开发的范围内。 The links in this answer 指出来自浏览器供应商的理由和详尽的列表。正如德国人所说,"Wieder was gelernt"。
感谢@glyphobet 给出正确答案的评论。