可以在 linux 服务器上 运行 flask 网络应用程序,无需网络访问和通过隧道访问?
Possible to run flask web app on linux server without web access and access through tunnel?
我在防火墙后的 linux 集群上工作。它没有网络访问权限。
我有这个想法,我可以尝试 运行 flask 并将其定向到我知道已打开的端口(vnc 为 5901),然后隧道化该端口并在我的浏览器中查看它。
目前无法正常工作。这可能吗?
这是我正在做的事情:
helloflask.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5901)
#app.run()
我运行python helloflask.py
然后
ssh -L 5901:<inner server>:5901 <outer server>
然后我导航到 localhost:5901
。没有什么。我也尝试了 links localhost:5901
和 links <server>:5901
,但还是没有。
有没有办法做到这一点?
您可以这样做:
运行 远程服务器上任何端口上的 Flask 应用程序或笔记本。比如说端口 5000.
在您的本地机器上 运行 下面的命令建立 ssh 隧道:
ssh -D 8123 -f -C -q -N username@remotesrrver
此处的端口 8123 是任意的,它可以是您本地计算机上允许的任何端口。然后设置您的浏览器之一(可能是 Fire fox)以在端口 8123 上使用 socks 代理
确保流量也被本地主机代理。默认情况下,Firefox 禁用本地主机代理。建立这些后,您应该能够在浏览器上转到 http://localhost:5000 以点击远程计算机上的应用程序 /notebook 运行ning
你的 hellowflask.py 应该像下面这样才能正常工作
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5901)
#app.run()
我是否可以建议您尝试使用 pyngrok
之类的方法以编程方式为您管理 ngrok
隧道?完全披露,我是它的开发者。 Flask 示例 here,但它就像安装一样简单 pyngrok
:
pip install pyngrok
并使用它:
from pyngrok import ngrok
# <NgrokTunnel: "http://<public_sub>.ngrok.io" -> "http://localhost:5000">
http_url = ngrok.connect(5000)
我在防火墙后的 linux 集群上工作。它没有网络访问权限。
我有这个想法,我可以尝试 运行 flask 并将其定向到我知道已打开的端口(vnc 为 5901),然后隧道化该端口并在我的浏览器中查看它。
目前无法正常工作。这可能吗?
这是我正在做的事情:
helloflask.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5901)
#app.run()
我运行python helloflask.py
然后
ssh -L 5901:<inner server>:5901 <outer server>
然后我导航到 localhost:5901
。没有什么。我也尝试了 links localhost:5901
和 links <server>:5901
,但还是没有。
有没有办法做到这一点?
您可以这样做: 运行 远程服务器上任何端口上的 Flask 应用程序或笔记本。比如说端口 5000.
在您的本地机器上 运行 下面的命令建立 ssh 隧道:
ssh -D 8123 -f -C -q -N username@remotesrrver
此处的端口 8123 是任意的,它可以是您本地计算机上允许的任何端口。然后设置您的浏览器之一(可能是 Fire fox)以在端口 8123 上使用 socks 代理 确保流量也被本地主机代理。默认情况下,Firefox 禁用本地主机代理。建立这些后,您应该能够在浏览器上转到 http://localhost:5000 以点击远程计算机上的应用程序 /notebook 运行ning
你的 hellowflask.py 应该像下面这样才能正常工作
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=5901)
#app.run()
我是否可以建议您尝试使用 pyngrok
之类的方法以编程方式为您管理 ngrok
隧道?完全披露,我是它的开发者。 Flask 示例 here,但它就像安装一样简单 pyngrok
:
pip install pyngrok
并使用它:
from pyngrok import ngrok
# <NgrokTunnel: "http://<public_sub>.ngrok.io" -> "http://localhost:5000">
http_url = ngrok.connect(5000)