openwrt添加更多frp副本

当然可以!您提供的这个 /etc/init.d/frpc 脚本是一个典型的、设计良好的 UCI 兼容初始化脚本。基于它来创建多个 FRPC 实例副本是完全可行非常合适的方法。

这个脚本的核心逻辑是:

  1. 从 UCI 配置文件 /etc/config/frpc 中读取设置
  2. 动态生成临时的 frpc 配置文件到 /var/etc/frpc.ini
  3. 使用 procd 启动 frpc 进程

我们要做的就是创建多个这样的脚本,让每个脚本去读取不同的 UCI 配置文件


具体操作步骤

假设我们要创建两个副本:frpc1frpc2

第一步:复制创建初始化脚本

  1. 创建第一个副本脚本cp /etc/init.d/frpc /etc/init.d/frpc1
  2. 创建第二个副本脚本
    bash cp /etc/init.d/frpc /etc/init.d/frpc2

第二步:修改每个副本脚本的关键变量

我们需要修改每个脚本中的 NAME 变量,让它指向不同的 UCI 配置文件名。

编辑 /etc/init.d/frpc1

vi /etc/init.d/frpc1

找到这一行:

NAME=frpc

修改为:

NAME=frpc1

保存并退出。

编辑 /etc/init.d/frpc2

vi /etc/init.d/frpc2

同样找到并修改:

NAME=frpc2

保存并退出。

这个修改的意义:现在 frpc1 服务会去读取 /etc/config/frpc1 配置文件,而 frpc2 服务会去读取 /etc/config/frpc2 配置文件。

第三步:创建对应的 UCI 配置文件

  1. 复制默认的 UCI 配置cp /etc/config/frpc /etc/config/frpc1 cp /etc/config/frpc /etc/config/frpc2
  2. 分别编辑这两个配置文件
    现在您可以用熟悉的 uci 命令或者直接编辑文件的方式来为每个实例配置不同的远程 FRP 服务器配置 /etc/config/frpc1 (连接第一个服务器)uci set frpc1.@init[0].server_addr=frps1.example.com uci set frpc1.@init[0].server_port=7000 uci commit frpc1 配置 /etc/config/frpc2 (连接第二个服务器)uci set frpc2.@init[0].server_addr=frps2.example.com uci set frpc2.@init[0].server_port=7000 uci commit frpc2 您还需要在每个配置文件中设置各自的代理规则(config conf 部分)。

第四步:设置权限并启用服务

# 设置脚本可执行权限
chmod +x /etc/init.d/frpc1
chmod +x /etc/init.d/frpc2

# 启用服务(开机自启)
service frpc1 enable
service frpc2 enable

# 启动服务
service frpc1 start
service frpc2 start

第五步:检查服务状态

# 检查进程
ps | grep frpc

# 查看日志
logread -e frpc

# 检查服务状态
service frpc1 status
service frpc2 status

额外提醒和技巧

  1. 临时配置文件路径
    原脚本中 conf_file="/var/etc/$NAME.ini" 意味着:
    • frpc1 的临时配置文件在 /var/etc/frpc1.ini
    • frpc2 的临时配置文件在 /var/etc/frpc2.ini
      这很好,避免了冲突。
  2. LuCI 界面显示
    如果您安装了 luci-app-frpc,它可能仍然只识别原始的 frpc 服务。但您现在可以通过命令行完美管理 frpc1frpc2。这是最稳定可靠的方式。
  3. 如果需要更多实例
    只需重复上述步骤:复制脚本 → 修改 NAME 变量 → 创建对应的 UCI 配置文件。

总结

您提供的这个初始化脚本是完美支持多实例的,因为它使用了 $NAME 变量来动态决定配置文件的路径。您只需要:

  1. 复制脚本并修改其中的 NAME 变量
  2. 复制 UCI 配置文件并分别配置不同的服务器地址
  3. 像管理独立服务一样管理 frpc1frpc2

这种方法结合了命令行的可靠性UCI配置的便捷性,是在OpenWrt上实现多FRP服务器代理的最佳实践之一。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注