如何为NGROK生成的TCP URL指定特定端口?
如何为Ngrok TCP隧道指定固定远程端口?
你遇到的这个问题,核心原因是Ngrok免费版不支持自定义固定远程TCP端口,所以你写的remote_port配置才会不生效,系统依然分配了随机端口。下面给你详细拆解解决方案:
为什么你的配置没生效?
Ngrok的免费套餐仅支持随机分配TCP远程端口,remote_port这个配置项只有在Pro或Business付费套餐中才能正常使用。而且就算是付费用户,也需要先在Ngrok控制台中提前预留你想要的端口,否则配置依然不会生效。
付费用户的正确配置步骤
如果你已经升级到了Pro/Business套餐,按照下面的步骤操作就能指定固定端口:
- 登录Ngrok官方控制台,找到「Reserved TCP Addresses」(预留TCP地址)页面
- 在这里预留你想要的端口(比如5666),完成后会得到一个完整的预留地址,格式类似
0.tcp.ngrok.io:5666 - 修改你的
config.yml,可以用两种方式配置:- 方式一:直接指定完整的预留远程地址
tunnels: blueiris: remote_addr: 0.tcp.ngrok.io:5666 proto: tcp addr: 123 - 方式二:仅指定预留的端口(前提是你已经在控制台预留了该端口)
tunnels: blueiris: remote_port: 5666 proto: tcp addr: 123
- 方式一:直接指定完整的预留远程地址
- 重启Ngrok服务,此时就能得到你想要的
0.tcp.ngrok.io:5666转发地址了
免费用户的替代方案
如果暂时不想升级套餐,免费用户没有办法指定固定的TCP远程端口,只能接受系统随机分配的端口。不过你可以通过Ngrok的API或者命令行参数,在每次启动时获取当前分配的端口并记录下来,方便后续使用。
内容的提问来源于stack exchange,提问作者marshall mathers
相关产品推荐
相关产品推荐

