add1
This commit is contained in:
BIN
bird-lgproxy-go
BIN
bird-lgproxy-go
Binary file not shown.
35
config.yml
Normal file
35
config.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# BIRD 核心配置
|
||||||
|
# BIRD 控制套接字路径。OpenWrt 默认通常在 /var/run/bird.ctl 或 /var/run/bird/bird.ctl
|
||||||
|
bird_socket: "/var/run/bird.ctl"
|
||||||
|
|
||||||
|
# 是否限制 BIRD 命令。开启后只允许 "show protocols" 和 "show route",增强安全性。
|
||||||
|
bird_restrict_cmds: true
|
||||||
|
|
||||||
|
# 代理服务监听配置
|
||||||
|
# 格式为 "IP:端口","0.0.0.0:8000" 表示监听所有网卡的 8000 端口
|
||||||
|
listen: "0.0.0.0:8000"
|
||||||
|
|
||||||
|
# 访问控制 (白名单)
|
||||||
|
# 允许访问此代理的 IP 或网段,用逗号分隔。
|
||||||
|
# 如果不设置,则任何 IP 都能访问该 Proxy。
|
||||||
|
# 建议只填写 Frontend (前端网页端) 所在的服务器 IP。
|
||||||
|
allowed_ips: "10.188.0.0/16"
|
||||||
|
|
||||||
|
# Traceroute 工具配置
|
||||||
|
# 自动寻找系统中的 traceroute 命令路径
|
||||||
|
traceroute_bin: "/etc/birdlg/nexttrace/traceroute"
|
||||||
|
|
||||||
|
# Traceroute 运行参数 (例如使用 ICMP 而非 UDP,或者指定探测次数)
|
||||||
|
# 如果不确定,可以保持为空 ""
|
||||||
|
traceroute_flags: "-q 1 -w 2"
|
||||||
|
|
||||||
|
# 是否显示原始输出
|
||||||
|
# 设置为 false 则会经过格式化,更美观
|
||||||
|
traceroute_raw: false
|
||||||
|
|
||||||
|
# 最大并发 traceroute 请求数,防止路由器 CPU 被瞬间撑爆
|
||||||
|
traceroute_max_concurrent: 5
|
||||||
|
|
||||||
|
# VRF 配置 (仅限 Linux)
|
||||||
|
# 如果你的 BIRD 运行在特定的 VRF 实例中,请填写 VRF 接口名
|
||||||
|
# vrf: "mgmt"
|
||||||
81
indtall.sh
81
indtall.sh
@@ -1,20 +1,77 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# 克隆仓库
|
# --- 1. 环境准备 ---
|
||||||
|
# 检查是否为 root 用户
|
||||||
|
if [ "$EUID" -ne 0 ]; then
|
||||||
|
echo "请以 root 权限运行此脚本"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 提示用户选择系统类型
|
||||||
|
echo "请选择服务引导类型:"
|
||||||
|
echo "1) Systemd (Ubuntu, Debian, CentOS, etc.)"
|
||||||
|
echo "2) OpenWrt / iStoreOS (Procd)"
|
||||||
|
echo "3) Alpine Linux (OpenRC)"
|
||||||
|
read -p "请输入选项 [1-3]: " TYPE
|
||||||
|
|
||||||
|
# --- 2. 源码下载与基础安装 ---
|
||||||
|
echo "正在克隆仓库并准备目录..."
|
||||||
|
# 如果目录已存在,先删除(可选)或跳过
|
||||||
|
rm -rf birdlgp
|
||||||
git clone https://git.nia.ink/unet/birdlgp
|
git clone https://git.nia.ink/unet/birdlgp
|
||||||
|
|
||||||
# 创建目录
|
mkdir -p /etc/birdlg
|
||||||
sudo mkdir -p /etc/birdlg
|
|
||||||
|
|
||||||
# 移动文件
|
# 移动程序和配置
|
||||||
sudo mv birdlgp/bird-lgproxy-go /etc/birdlg/bird-lgproxy-go
|
if [ -f "birdlgp/bird-lgproxy-go" ]; then
|
||||||
sudo mv birdlgp/birdlgp.service /etc/systemd/system/birdlgp.service
|
mv birdlgp/bird-lgproxy-go /etc/birdlg/bird-lgproxy-go
|
||||||
|
mv birdlgp/config.yml /etc/birdlg/config.yml
|
||||||
|
else
|
||||||
|
echo "错误:仓库中未找到 bird-lgproxy-go,请检查仓库内容。"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# 赋予权限
|
# 赋予合理权限 (程序 755, 配置 644)
|
||||||
sudo chmod 777 /etc/birdlg/*
|
chmod 755 /etc/birdlg/bird-lgproxy-go
|
||||||
|
chmod 644 /etc/birdlg/config.yml
|
||||||
|
|
||||||
# 启动服务并设置开机自启
|
# --- 3. 根据类型配置引导 ---
|
||||||
sudo systemctl start birdlgp.service
|
case $TYPE in
|
||||||
sudo systemctl enable birdlgp.service
|
1)
|
||||||
|
echo "配置 Systemd 服务..."
|
||||||
|
mv birdlgp/service/birdlgp.service /etc/systemd/system/birdlgp.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable birdlgp.service
|
||||||
|
systemctl start birdlgp.service
|
||||||
|
;;
|
||||||
|
|
||||||
|
2)
|
||||||
|
echo "配置 OpenWrt 服务..."
|
||||||
|
mv birdlgp/service/bird-lgp-openwrt /etc/init.d/bird-lg-proxy
|
||||||
|
chmod +x /etc/init.d/bird-lg-proxy
|
||||||
|
/etc/init.d/bird-lg-proxy enable
|
||||||
|
/etc/init.d/bird-lg-proxy start
|
||||||
|
;;
|
||||||
|
|
||||||
|
3)
|
||||||
|
echo "配置 Alpine 服务..."
|
||||||
|
mv birdlgp/service/bird-lgp-alpine /etc/init.d/bird-lg-proxy
|
||||||
|
chmod +x /etc/init.d/bird-lg-proxy
|
||||||
|
rc-update add bird-lg-proxy default
|
||||||
|
rc-service bird-lg-proxy start
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "无效选项,脚本退出。"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
echo "Birdlgp服务已成功安装并启动。"
|
# --- 4. 善后 ---
|
||||||
|
rm install.sh
|
||||||
|
rm -rf birdlgp
|
||||||
|
echo "------------------------------------------------"
|
||||||
|
echo "Birdlgp 服务已成功安装并启动!"
|
||||||
|
echo "配置文件路径: /etc/birdlg/config.yml"
|
||||||
|
echo "程序路径: /etc/birdlg/bird-lgproxy-go"
|
||||||
|
echo "------------------------------------------------"
|
||||||
BIN
nexttrace/nexttrace
Normal file
BIN
nexttrace/nexttrace
Normal file
Binary file not shown.
30
service/bird-lgp-alpine
Normal file
30
service/bird-lgp-alpine
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
# 服务名称
|
||||||
|
name="bird-lgproxy"
|
||||||
|
description="Bird Looking Glass Proxy (Go)"
|
||||||
|
|
||||||
|
# 程序路径和参数
|
||||||
|
command="/etc/birdlg/bird-lgproxy-go"
|
||||||
|
command_args="-config /etc/birdlg/config.yml"
|
||||||
|
|
||||||
|
pidfile="/run/${RC_SVCNAME}.pid"
|
||||||
|
command_background="yes"
|
||||||
|
|
||||||
|
# 自动重启配置(如果程序崩溃)
|
||||||
|
respawn_delay=5
|
||||||
|
respawn_max=10
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
# 确保在网络和 bird 启动后再启动
|
||||||
|
need net
|
||||||
|
after bird
|
||||||
|
}
|
||||||
|
|
||||||
|
start_pre() {
|
||||||
|
# 启动前的检查:确保配置文件存在
|
||||||
|
if [ ! -f "/etc/bird-lg/bird-lgproxy.yaml" ]; then
|
||||||
|
eerror "Configuration file /etc/bird-lg/bird-lgproxy.yaml not found!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
34
service/bird-lgp-openwrt
Normal file
34
service/bird-lgp-openwrt
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
|
# 启动优先级,通常在网络启动后
|
||||||
|
START=99
|
||||||
|
USE_PROCD=1
|
||||||
|
|
||||||
|
# 程序路径和配置文件路径(根据你的实际情况修改)
|
||||||
|
PROG="/etc/birdlg/bird-lgproxy-go"
|
||||||
|
CONF="/etc/birdlg/config.yml"
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
# 检查程序是否存在
|
||||||
|
[ -f "$PROG" ] || return 1
|
||||||
|
|
||||||
|
procd_open_instance "bird-lgproxy"
|
||||||
|
|
||||||
|
# 执行程序命令,-c 指定配置文件(请根据 bird-lg-go 的实际参数调整)
|
||||||
|
# 如果 bird-lgproxy-go 默认在当前目录找 config.yml,可以用 procd_set_param chdir
|
||||||
|
procd_set_param command "$PROG" -config "$CONF"
|
||||||
|
|
||||||
|
# 自动重启设置:如果程序崩溃,5秒后重启
|
||||||
|
procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
|
||||||
|
|
||||||
|
# 错误日志和标准输出重定向到系统日志
|
||||||
|
procd_set_param stderr 1
|
||||||
|
procd_set_param stdout 1
|
||||||
|
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
|
stop_service() {
|
||||||
|
# 停止时的操作,procd 会自动处理信号
|
||||||
|
return 0
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user