如何从本地网络外部访问 Flask 测试服务器?
How to access Flask test server from the outside of local network?
我正在通过 web-scraping 项目的代理进行请求实验。
为了测试请求 headers 和内容,我构建了一个简单的烧瓶服务器,如下所示:
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route("/")
def index():
ret_str = f'<- {request} ->\n' \
f'<----- HEADERS ----->\n' \
f'{request.headers}\n' \
f'<----- DATA ----->\n' \
f'{request.data}\n'
print(ret_str)
return ret_str
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
运行 如果通过 127.0.0.1:5000(使用 app.run()
)通过本地主机访问并通过请求本地地址10.214.14.222:5000(由ipconfig显示)。
但是如果我尝试通过我的 4G 连接或通过代理访问它,请求将失败。根据 https://ipchecker.io/,我的外部 IP 是 216.94.151.186,但是使用 216.94.151.186:5000 请求我的页面给出'page not found'.
如何从局域网外访问测试服务器?有人可以帮忙吗?
解决方案: 在路由器上设置端口转发并使 运行 flask 服务器 IP-address 的计算机在路由器上静态。
确保在您的路由器中打开端口 5000。
如果您可以访问 linux,您可以使用 nmap 检查哪些端口是开放的,或者去 https://portchecker.co/ 检查端口是否打开5000 已开放。
您需要做的是让您的指定端口在您的路由器上可用。这是通过端口转发完成的。此选项卡的位置可以根据您的路由器提供商进行切换,但完成后您只需访问 This link,它会显示您的 public IP。然后您可以访问:000.00.000.00:5000 <-- 将零替换为 public IP.
您可以尝试使用 ngrok
:ngrok_web_site
我正在通过 web-scraping 项目的代理进行请求实验。 为了测试请求 headers 和内容,我构建了一个简单的烧瓶服务器,如下所示:
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route("/")
def index():
ret_str = f'<- {request} ->\n' \
f'<----- HEADERS ----->\n' \
f'{request.headers}\n' \
f'<----- DATA ----->\n' \
f'{request.data}\n'
print(ret_str)
return ret_str
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5000)
运行 如果通过 127.0.0.1:5000(使用 app.run()
)通过本地主机访问并通过请求本地地址10.214.14.222:5000(由ipconfig显示)。
但是如果我尝试通过我的 4G 连接或通过代理访问它,请求将失败。根据 https://ipchecker.io/,我的外部 IP 是 216.94.151.186,但是使用 216.94.151.186:5000 请求我的页面给出'page not found'.
如何从局域网外访问测试服务器?有人可以帮忙吗?
解决方案: 在路由器上设置端口转发并使 运行 flask 服务器 IP-address 的计算机在路由器上静态。
确保在您的路由器中打开端口 5000。
如果您可以访问 linux,您可以使用 nmap 检查哪些端口是开放的,或者去 https://portchecker.co/ 检查端口是否打开5000 已开放。
您需要做的是让您的指定端口在您的路由器上可用。这是通过端口转发完成的。此选项卡的位置可以根据您的路由器提供商进行切换,但完成后您只需访问 This link,它会显示您的 public IP。然后您可以访问:000.00.000.00:5000 <-- 将零替换为 public IP.
您可以尝试使用 ngrok
:ngrok_web_site