跳到主要内容

将服务(端口)暴露到公网

有时候可能需要将某个端口(例如 Gradio)暴露到公网来对外提供服务,可以使用 featurize 命令行工具来完成。

例如,现在我们开一个简单的静态文件服务:

(base)  ~ python -m http.server 8000Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...

注意我们并不能在自己的浏览器中使用 0.0.0.0:8000 来访问这个服务,我们需要将 8000 端口转发到公网,再用 workspace.featurize.cn + 暴露之后的端口号来访问。

warning

注意,你所打开的服务必须要绑定在 0.0.0.0 这个 ip 上,否则服务将无法被访问。一般来说,服务启用的时候会有一些输出,如果输出中含有 127.0.0.1 或是 localhost 等字样,则这个服务可能没有正确设置绑定的 IP 地址,需要修改服务的配置文件、参数或是代码。

现在使用 featurize 命令行工具来暴露本机的 8000 端口,在服务器上的终端中运行:

(base)  ~ featurize port export 8000Local port 8000 has been exported to 60623You can visit http://workspace.featurize.cn:60623 if it's a http server

注意看上面的提示,现在我们可以在浏览器中访问 http://workspace.featurize.cn:60623 来访问服务器上的 8000 端口了。

warning

每台服务器最多只能暴露 10 个端口,如果在使用 port export 的时候发生错误,可以用 featurize port list 来查看已经暴露的端口,再使用 featurize port unexport 命令来删除不必要的端口暴露规则。

danger

暴露后的端口任何人都可以访问。即便访问地址使用 workspace.featurize.cn、*.proxy.featurize.cn 等 Featurize 域名,对外提供的内容、网站和应用均由你本人独立发布,与 Featurize 无关,相关法律责任由你自行承担。请勿传播违法内容,亦勿将平台域名用于使人误认为相关服务由 Featurize 运营。详见 用户服务协议 第 5.6 条。