[fatedier/frp]frp 私有模式,多个连接配置,若一个失败,仍旧正常启动的问题

2024-06-27 310 views
4

[common] server_addr = F1 session = 5062245541 [5062245541A] local_port=80 remote_port =8001 privilege_mode = true use_gzip = true

[5062245541B] local_port=21 remote_port =8002 privilege_mode = true use_gzip = true

比如,如上若一个remote_port 已经被占用,frpc仍旧正常运行,只是一个报错提示, 是否能立即退出? 我测试ngrok是不允许启动的。这样方便做第三方程序判断,自动再换端口。 若您不愿意改为同ngrok处理, 那建议加一个配置项,让用户决定frpc在这种情况是退出,还是部分运行。

回答

1

其实你需要解决的是端口被占用的问题,这个可以随机分配一个端口,但是这样你启动之后也不知道被分配的端口是哪个,需要查日志才能看到。可以再想想其他的解决方案。

比如 frpc 增加一个命令,用于检测指定端口是否已经被占用。

5

增加命令增加了复杂度,需要来回2次调用。方案: 1.最简单:还是上面我说的,同ngrok,只要有一个端口占用,frpc就不启动,这样人为或第三方程序判断处理 2.上面的随机方案:但分配的端口号得返回,如文件、socket、http访问、mysql存储之类

4
  1. 个人感觉没有必要因为一个失败就直接退出。
  2. 尽量不引入外部依赖,后续可以考虑绑定一个本地端口提供一些简单的 API 供状态查询和管理,这个放到之后做。