Merge pull request #163 from yonggekkk/beta

Beta
This commit is contained in:
甬哥侃侃侃ygkkk
2025-02-26 13:01:29 +08:00
committed by GitHub
6 changed files with 120 additions and 35 deletions
+24 -2
View File
@@ -24,7 +24,7 @@ app.get("/re", (req, res) => {
nohup ./"\$sbb" run -c config.json >/dev/null 2>&1 &
sleep 2
(cd ~ && bash serv00keep.sh >/dev/null 2>&1) &
echo 'Serv00主程序重启成功,请检测三个主节点是否可用,如不可用,可再次刷新重启网页或者重置端口并卸载重装脚本'
echo '主程序重启成功,请检测三个主节点是否可用,如不可用,可再次刷新重启网页或者重置端口'
`;
exec(additionalCommands, (err, stdout, stderr) => {
console.log('stdout:', stdout);
@@ -35,6 +35,28 @@ app.get("/re", (req, res) => {
res.type('text').send(stdout);
});
});
const changeportCommands = "cd ~ && bash webport.sh";
function runportCommand() {
exec(changeportCommands, { maxBuffer: 1024 * 1024 * 10 }, (err, stdout, stderr) => {
console.log('stdout:', stdout);
console.error('stderr:', stderr);
if (err) {
console.error('Execution error:', err);
return res.status(500).send(`错误:${stderr || stdout}`);
}
if (stderr) {
console.error('stderr output:', stderr);
return res.status(500).send(`stderr: ${stderr}`);
}
res.type('text').send(stdout);
});
}
app.get("/rp", (req, res) => {
runportCommand();
res.type("html").send("<pre>重置节点端口完成!请稍等10秒后,主页后缀改为 /list/你的uuid 可查看更新端口后的节点及订阅信息</pre>");
});
app.get("/list/key", (req, res) => {
const listCommands = `
USERNAME=$(whoami | tr '[:upper:]' '[:lower:]')
@@ -50,7 +72,7 @@ app.get("/list/key", (req, res) => {
});
});
app.use((req, res) => {
res.status(404).send('浏览器地址:http://where.name.serv00.net 三种路径功能:/up是保活,/re是重启,/list/你的uuid 是节点及订阅信息');
res.status(404).send('请在浏览器地址:http://where.name.serv00.net 后面加三种路径功能:/up是保活,/re是重启,/rp是重置节点端口,/list/你的uuid 是节点及订阅信息');
});
setInterval(runCustomCommand, 3 * 60 * 1000);
app.listen(3000, () => {
+3 -4
View File
@@ -2,13 +2,13 @@
# 定时设置:*/10 * * * * /bin/bash /root/kp.sh 每10分钟运行一次
# serv00变量添加规则:
# 推荐:为确保节点可用性,建议在Serv00网页不设置端口,脚本会随机生成有效端口,首次运行会中断SSH,请把RES设置为n再执行即可
# RES(必填):n表示每次不重置部署,y表示每次重置部署。REP(必填):n表示不重置随机端口,y表示重置端口(三个端口留空)。SSH_USER(必填)表示serv00账号名。SSH_PASS(必填)表示serv00密码。REALITY表示reality域名(留空表示serv00官方域名:你serv00账号名.serv00.net)。SUUID表示uuid(留空表示随机uuid)。TCP1_PORT表示vless的tcp端口(留空表示随机tcp端口)。TCP2_PORT表示vmess的tcp端口(留空表示随机tcp端口)。UDP_PORT表示hy2的udp端口(留空表示随机udp端口)。HOST(必填)表示登录serv00服务器域名。ARGO_DOMAIN表示argo固定域名(留空表示临时域名)。ARGO_AUTH表示argo固定域名token(留空表示临时域名)。
# RES(必填):n表示每次不重置部署,y表示每次重置部署。REP(必填):n表示不重置随机端口(三个端口留空),y表示重置端口(三个端口留空)。SSH_USER(必填)表示serv00账号名。SSH_PASS(必填)表示serv00密码。REALITY表示reality域名(留空表示serv00官方域名:你serv00账号名.serv00.net)。SUUID表示uuid(留空表示随机uuid)。TCP1_PORT表示vless的tcp端口(留空表示随机tcp端口)。TCP2_PORT表示vmess的tcp端口(留空表示随机tcp端口)。UDP_PORT表示hy2的udp端口(留空表示随机udp端口)。HOST(必填)表示登录serv00服务器域名。ARGO_DOMAIN表示argo固定域名(留空表示临时域名)。ARGO_AUTH表示argo固定域名token(留空表示临时域名)。
# 必填变量:RES、REP、SSH_USER、SSH_PASS、HOST
# 注意[]"",:这些符号不要乱删,按规律对齐
# 每行一个{serv00服务器},一个服务也可,末尾用,间隔,最后一个服务器末尾无需用,间隔
ACCOUNTS='[
{"RES":"n", "REP":"n", "SSH_USER":"你的serv00账号名", "SSH_PASS":"你的serv00账号密码", "REALITY":"你serv00账号名.serv00.net", "SUUID":"自设UUID", "TCP1_PORT":"vless的tcp端口", "TCP2_PORT":"vmess的tcp端口", "UDP_PORT":"hy2的udp端口", "HOST":"s1.serv00.com", "ARGO_DOMAIN":"", "ARGO_AUTH":""},
{"RES":"y", "REP":"y", "SSH_USER":"123456", "SSH_PASS":"7890000", "REALITY":"time.is", "SUUID":"73203ee6-b3fa-4a3d-b5df-6bb2f55073ad", "TCP1_PORT":"55254", "TCP2_PORT":"55255", "UDP_PORT":"55256", "HOST":"s16.serv00.com", "ARGO_DOMAIN":"你的argo固定域名", "ARGO_AUTH":"eyJhIjoiOTM3YzFjYWI88552NTFiYTM4ZTY0ZDQzRmlNelF0TkRBd1pUQTRNVEJqTUdVeCJ9"}
{"RES":"y", "REP":"y", "SSH_USER":"123456", "SSH_PASS":"7890000", "REALITY":"time.is", "SUUID":"73203ee6-b3fa-4a3d-b5df-6bb2f55073ad", "TCP1_PORT":"", "TCP2_PORT":"", "UDP_PORT":"", "HOST":"s16.serv00.com", "ARGO_DOMAIN":"你的argo固定域名", "ARGO_AUTH":"eyJhIjoiOTM3YzFjYWI88552NTFiYTM4ZTY0ZDQzRmlNelF0TkRBd1pUQTRNVEJqTUdVeCJ9"}
]'
run_remote_command() {
local RES=$1
@@ -54,7 +54,7 @@ echo "甬哥Github项目 github.com/yonggekkk"
echo "甬哥Blogger博客 ygkkk.blogspot.com"
echo "甬哥YouTube频道 www.youtube.com/@ygkkk"
echo "自动远程部署Serv00三合一协议脚本【VPS+软路由】"
echo "版本:V25.2.18"
echo "版本:V25.2.26"
echo "*****************************************************"
echo "*****************************************************"
count=0
@@ -82,7 +82,6 @@ echo "*****************************************************"
if ! sshpass -p "$SSH_PASS" ssh -o StrictHostKeyChecking=no "$SSH_USER@$HOST" "$check_process" || [[ "$RES" =~ ^[Yy]$ ]]; then
echo "⚠️检测到主进程或者argo进程未启动,或者执行重置"
echo "⚠️现在开始修复或重置部署……请稍等"
echo "⚠️中断退出,说明首次设置随机端口完成,请把RES设置为n再执行即可"
output=$(run_remote_command "$RES" "$REP" "$SSH_USER" "$SSH_PASS" "${REALITY}" "$SUUID" "$TCP1_PORT" "$TCP2_PORT" "$UDP_PORT" "$HOST" "${ARGO_DOMAIN}" "${ARGO_AUTH}")
echo "远程命令执行结果:$output"
else
+66 -16
View File
@@ -68,6 +68,31 @@ devil port del "$port_type" "$port"
done <<< "$portlist"
fi
check_port
if [[ -e $WORKDIR/config.json ]]; then
hyp=$(jq -r '.inbounds[0].listen_port' $WORKDIR/config.json 2>/dev/null)
vlp=$(jq -r '.inbounds[3].listen_port' $WORKDIR/config.json 2>/dev/null)
vmp=$(jq -r '.inbounds[4].listen_port' $WORKDIR/config.json 2>/dev/null)
purple "检测到Serv00-sb-yg脚本已安装,执行端口替换,请稍等……"
sed -i '' "12s/$hyp/$hy2_port/g" $WORKDIR/config.json
sed -i '' "33s/$hyp/$hy2_port/g" $WORKDIR/config.json
sed -i '' "54s/$hyp/$hy2_port/g" $WORKDIR/config.json
sed -i '' "75s/$vlp/$vless_port/g" $WORKDIR/config.json
sed -i '' "102s/$vmp/$vmess_port/g" $WORKDIR/config.json
sed -i '' -e "17s|'$vlp'|'$vless_port'|" serv00keep.sh
sed -i '' -e "18s|'$vmp'|'$vmess_port'|" serv00keep.sh
sed -i '' -e "19s|'$hyp'|'$hy2_port'|" serv00keep.sh
bash -c 'ps aux | grep $(whoami) | grep -v "sshd\|bash\|grep" | awk "{print \$2}" | xargs -r kill -9 >/dev/null 2>&1' >/dev/null 2>&1
sleep 2
curl -sk "http://${snb}.${USERNAME}.serv00.net/up" > /dev/null 2>&1
sleep 3
green "端口替换完成!"
ps aux | grep '[r]un -c con' > /dev/null && green "主进程启动成功,单节点用户修改下客户端三协议端口,订阅链接用户更新下订阅即可" || yellow "Sing-box主进程启动失败,再次重置端口或者多刷几次保活网页,可能会自动恢复"
if [ -f "$WORKDIR/boot.log" ]; then
ps aux | grep '[t]unnel --u' > /dev/null && green "Argo临时隧道启动成功,单节点用户在客户端host/sni更换临时域名,订阅链接用户更新下订阅即可" || yellow "Argo临时隧道启动失败,再次重置端口或者多刷几次保活网页,可能会自动恢复"
else
ps aux | grep '[t]unnel --n' > /dev/null && green "Argo固定隧道启动成功" || yellow "Argo固定隧道启动失败,请先在CF更改隧道端口:$vmess_port,多刷几次保活网页可能会自动恢复"
fi
fi
}
check_port () {
@@ -126,10 +151,10 @@ if [[ $tcp_ports -ne 2 || $udp_ports -ne 1 ]]; then
fi
done
fi
green "端口已调整完成,将断开ssh连接,请重新连接shh重新执行脚本"
devil binexec on >/dev/null 2>&1
kill -9 $(ps -o ppid= -p $$) >/dev/null 2>&1
sleep 2
#green "端口已调整完成,将断开ssh连接,请重新连接shh重新执行脚本"
#devil binexec on >/dev/null 2>&1
#kill -9 $(ps -o ppid= -p $$) >/dev/null 2>&1
sleep 3
else
tcp_ports=$(echo "$port_list" | awk '/tcp/ {print $1}')
tcp_port1=$(echo "$tcp_ports" | sed -n '1p')
@@ -182,7 +207,7 @@ uninstall_singbox() {
case "$choice" in
[Yy])
bash -c 'ps aux | grep $(whoami) | grep -v "sshd\|bash\|grep" | awk "{print \$2}" | xargs -r kill -9 >/dev/null 2>&1' >/dev/null 2>&1
rm -rf domains bin serv00keep.sh
rm -rf domains bin serv00keep.sh webport.sh
sed -i '/export PATH="\$HOME\/bin:\$PATH"/d' "${HOME}/.bashrc" >/dev/null 2>&1
source "${HOME}/.bashrc" >/dev/null 2>&1
#crontab -l | grep -v "serv00keep" >rmcron
@@ -224,7 +249,6 @@ argo_configure() {
while true; do
yellow "方式一:(推荐)无需域名的Argo临时隧道:输入回车"
yellow "方式二:需要域名的Argo固定隧道(需要CF设置提取Token):输入g"
echo -e "${red}注意:${purple}Argo固定隧道使用Token时,需要在cloudflare后台设置隧道端口,该端口必须与vmess-ws的tcp端口 $vmess_port 一致)${re}"
reading "【请选择 g 或者 回车】: " argo_choice
if [[ "$argo_choice" != "g" && "$argo_choice" != "G" && -n "$argo_choice" ]]; then
red "无效的选择,请输入 g 或回车"
@@ -479,6 +503,13 @@ hy3p=$(sed -n '3p' hy2ip.txt)
"format": "binary",
"url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/google.srs",
"download_detour": "direct"
},
{
"tag": "google-play",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/google-play.srs",
"download_detour": "direct"
}
],
"rules": [
@@ -492,6 +523,10 @@ hy3p=$(sed -n '3p' hy2ip.txt)
{
"rule_set":"google",
"outbound": "wg"
},
{
"rule_set":"google-play",
"outbound": "wg"
}
],
"final": "direct"
@@ -1168,7 +1203,8 @@ rm -rf sb.log core tunnel.yml tunnel.json fake_useragent_0.2.0.json
showlist(){
if [[ -e $WORKDIR/list.txt ]]; then
green "查看节点及proxyip/非标端口反代ip信息"
green "查看节点、订阅、反代IP、ProxyIP等信息!更新中,请稍等……"
sleep 3
cat $WORKDIR/list.txt
else
red "未安装脚本,请选择1进行安装" && exit
@@ -1177,6 +1213,8 @@ fi
showsbclash(){
if [[ -e $WORKDIR/sing_box.json ]]; then
green "查看clash与singbox配置明文!更新中,请稍等……"
sleep 3
green "Sing_box配置文件如下,可上传到订阅类客户端上使用:"
yellow "其中Argo节点为CDN优选IP节点,server地址可自行修改优选IP/域名,被墙依旧能用!"
sleep 2
@@ -1194,7 +1232,6 @@ fi
}
servkeep() {
#green "开始安装Cron进程保活"
curl -sSL https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/serv00keep.sh -o serv00keep.sh && chmod +x serv00keep.sh
sed -i '' -e "14s|''|'$UUID'|" serv00keep.sh
sed -i '' -e "17s|''|'$vless_port'|" serv00keep.sh
@@ -1206,6 +1243,19 @@ if [ ! -f "$WORKDIR/boot.log" ]; then
sed -i '' -e "15s|''|'${ARGO_DOMAIN}'|" serv00keep.sh
sed -i '' -e "16s|''|'${ARGO_AUTH}'|" serv00keep.sh
fi
echo '#!/bin/bash
red() { echo -e "\e[1;91m$1\033[0m"; }
green() { echo -e "\e[1;32m$1\033[0m"; }
yellow() { echo -e "\e[1;33m$1\033[0m"; }
purple() { echo -e "\e[1;35m$1\033[0m"; }
USERNAME=$(whoami | tr '\''[:upper:]'\'' '\''[:lower:]'\'')
WORKDIR="${HOME}/domains/${USERNAME}.serv00.net/logs"
snb=$(hostname | awk -F '\''.'\'' '\''{print $1}'\'')
' > webport.sh
declare -f resallport >> webport.sh
declare -f check_port >> webport.sh
echo 'resallport' >> webport.sh
chmod +x webport.sh
#if ! crontab -l 2>/dev/null | grep -q 'serv00keep'; then
#if [ -f "$WORKDIR/boot.log" ] || grep -q "trycloudflare.com" "$WORKDIR/boot.log" 2>/dev/null; then
#check_process="! ps aux | grep '[c]onfig' > /dev/null || ! ps aux | grep [l]ocalhost > /dev/null"
@@ -1221,9 +1271,9 @@ keep_path="$HOME/domains/${snb}.${USERNAME}.serv00.net/public_nodejs"
[ -d "$keep_path" ] || mkdir -p "$keep_path"
curl -sL https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/app.js -o "$keep_path"/app.js
sed -i '' "15s/name/$snb/g" "$keep_path"/app.js
sed -i '' "38s/key/$UUID/g" "$keep_path"/app.js
sed -i '' "53s/name/$USERNAME/g" "$keep_path"/app.js
sed -i '' "53s/where/$snb/g" "$keep_path"/app.js
sed -i '' "60s/key/$UUID/g" "$keep_path"/app.js
sed -i '' "75s/name/$USERNAME/g" "$keep_path"/app.js
sed -i '' "75s/where/$snb/g" "$keep_path"/app.js
devil www del ${snb}.${USERNAME}.serv00.net > /dev/null 2>&1
devil www add ${USERNAME}.serv00.net php > /dev/null 2>&1
devil www add ${snb}.${USERNAME}.serv00.net nodejs /usr/local/bin/node18 > /dev/null 2>&1
@@ -1310,17 +1360,17 @@ menu() {
echo "------------------------------------------------------------"
red "2. 卸载删除 Serv00-sb-yg"
echo "------------------------------------------------------------"
green "3. 重启主进程"
green "3. 重启主进程 (修复节点)"
echo "------------------------------------------------------------"
green "4. 更新脚本"
echo "------------------------------------------------------------"
green "5. 查看各节点分享/sing-box与clash订阅链接/CF节点proxyip"
green "5. 查看各节点分享/sing-box与clash订阅链接/反代IP/ProxyIP"
echo "------------------------------------------------------------"
green "6. 查看sing-box与clash配置文件"
echo "------------------------------------------------------------"
yellow "7. 删除所有端口并随机生成新端口"
yellow "7. 重置并随机生成新端口 (脚本安装前后都可执行)"
echo "------------------------------------------------------------"
yellow "8. 重置并清理所有服务进程(系统初始化)"
yellow "8. 清理所有服务进程与文件 (系统初始化)"
echo "------------------------------------------------------------"
red "0. 退出脚本"
echo "============================================================"
@@ -1358,7 +1408,7 @@ if [[ -n $portlist ]]; then
green "已设置的端口如下:"
echo -e "$portlist"
else
yellow "未设置端口!请先选择 7 随机生成端口,再选择 1 安装脚本"
yellow "未设置端口"
fi
echo
insV=$(cat $WORKDIR/v 2>/dev/null)
+3 -4
View File
@@ -11,14 +11,14 @@ jobs:
env:
# serv00变量添加规则:
# 推荐:为确保节点可用性,建议在Serv00网页不设置端口,脚本会随机生成有效端口,首次运行会中断SSH,请把RES设置为n再执行即可
# RES(必填):n表示每次不重置部署,y表示每次重置部署。REP(必填):n表示不重置随机端口,y表示重置端口(三个端口留空)。SSH_USER(必填)表示serv00账号名。SSH_PASS(必填)表示serv00密码。REALITY表示reality域名(留空表示serv00官方域名:你serv00账号名.serv00.net)。SUUID表示uuid(留空表示随机uuid)。TCP1_PORT表示vless的tcp端口(留空表示随机tcp端口)。TCP2_PORT表示vmess的tcp端口(留空表示随机tcp端口)。UDP_PORT表示hy2的udp端口(留空表示随机udp端口)。HOST(必填)表示登录serv00服务器域名。ARGO_DOMAIN表示argo固定域名(留空表示临时域名)。ARGO_AUTH表示argo固定域名token(留空表示临时域名)。
# RES(必填):n表示每次不重置部署,y表示每次重置部署。REP(必填):n表示不重置随机端口(三个端口留空),y表示重置端口(三个端口留空)。SSH_USER(必填)表示serv00账号名。SSH_PASS(必填)表示serv00密码。REALITY表示reality域名(留空表示serv00官方域名:你serv00账号名.serv00.net)。SUUID表示uuid(留空表示随机uuid)。TCP1_PORT表示vless的tcp端口(留空表示随机tcp端口)。TCP2_PORT表示vmess的tcp端口(留空表示随机tcp端口)。UDP_PORT表示hy2的udp端口(留空表示随机udp端口)。HOST(必填)表示登录serv00服务器域名。ARGO_DOMAIN表示argo固定域名(留空表示临时域名)。ARGO_AUTH表示argo固定域名token(留空表示临时域名)。
# 必填变量:RES、REP、SSH_USER、SSH_PASS、HOST
# 注意[]"",:这些符号不要乱删,按规律对齐
# 每行一个{serv00服务器},一个服务也可,末尾用,间隔,最后一个服务器末尾无需用,间隔
ACCOUNTS: >
[
{"RES":"n", "REP":"n", "SSH_USER":"你的serv00账号名", "SSH_PASS":"你的serv00账号密码", "REALITY":"你serv00账号名.serv00.net", "SUUID":"自设UUID", "TCP1_PORT":"vless的tcp端口", "TCP2_PORT":"vmess的tcp端口", "UDP_PORT":"hy2的udp端口", "HOST":"s1.serv00.com", "ARGO_DOMAIN":"", "ARGO_AUTH":""},
{"RES":"y", "REP":"y", "SSH_USER":"123456", "SSH_PASS":"7890000", "REALITY":"time.is", "SUUID":"73203ee6-b3fa-4a3d-b5df-6bb2f55073ad", "TCP1_PORT":"55254", "TCP2_PORT":"55255", "UDP_PORT":"55256", "HOST":"s16.serv00.com", "ARGO_DOMAIN":"你的argo固定域名", "ARGO_AUTH":"eyJhIjoiOTM3YzFjYWI88552NTFiYTM4ZTY0ZDQzRmlNelF0TkRBd1pUQTRNVEJqTUdVeCJ9"}
{"RES":"y", "REP":"y", "SSH_USER":"123456", "SSH_PASS":"7890000", "REALITY":"time.is", "SUUID":"73203ee6-b3fa-4a3d-b5df-6bb2f55073ad", "TCP1_PORT":"", "TCP2_PORT":"", "UDP_PORT":"", "HOST":"s16.serv00.com", "ARGO_DOMAIN":"你的argo固定域名", "ARGO_AUTH":"eyJhIjoiOTM3YzFjYWI88552NTFiYTM4ZTY0ZDQzRmlNelF0TkRBd1pUQTRNVEJqTUdVeCJ9"}
]
steps:
- name: Checkout Repository
@@ -59,7 +59,7 @@ jobs:
echo "甬哥Blogger博客 ygkkk.blogspot.com"
echo "甬哥YouTube频道 www.youtube.com/@ygkkk"
echo "自动远程部署并保活Serv00三合一协议脚本【Github】"
echo "版本:V25.2.18"
echo "版本:V25.2.26"
echo "*****************************************************"
echo "*****************************************************"
count=0
@@ -87,7 +87,6 @@ jobs:
if ! sshpass -p "$SSH_PASS" ssh -o StrictHostKeyChecking=no "$SSH_USER@$HOST" "$check_process" || [[ "$RES" =~ ^[Yy]$ ]]; then
echo "⚠️检测到主进程或者argo进程未启动,或者执行重置"
echo "⚠️现在开始修复或重置部署……请稍等"
echo "⚠️提示Error: Process completed with exit code 255中断并退出时,说明设置随机端口完成,请把RES、REP设置为n再执行即可"
output=$(run_remote_command "$RES" "$REP" "$SSH_USER" "$SSH_PASS" "${REALITY}" "$SUUID" "$TCP1_PORT" "$TCP2_PORT" "$UDP_PORT" "$HOST" "${ARGO_DOMAIN}" "${ARGO_AUTH}")
echo "远程命令执行结果:$output"
else
+14 -3
View File
@@ -193,10 +193,10 @@ if [[ $tcp_ports -ne 2 || $udp_ports -ne 1 ]]; then
fi
done
fi
echo "端口已调整完成,将断开ssh连接"
#echo "端口已调整完成,将断开ssh连接"
sleep 3
devil binexec on >/dev/null 2>&1
kill -9 $(ps -o ppid= -p $$) >/dev/null 2>&1
#devil binexec on >/dev/null 2>&1
#kill -9 $(ps -o ppid= -p $$) >/dev/null 2>&1
else
tcp_ports=$(echo "$port_list" | awk '/tcp/ {print $1}')
tcp_port1=$(echo "$tcp_ports" | sed -n '1p')
@@ -439,6 +439,13 @@ hy3p=$(sed -n '3p' hy2ip.txt)
"format": "binary",
"url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/google.srs",
"download_detour": "direct"
},
{
"tag": "google-play",
"type": "remote",
"format": "binary",
"url": "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/sing/geo/geosite/google-play.srs",
"download_detour": "direct"
}
],
"rules": [
@@ -452,6 +459,10 @@ hy3p=$(sed -n '3p' hy2ip.txt)
{
"rule_set":"google",
"outbound": "wg"
},
{
"rule_set":"google-play",
"outbound": "wg"
}
],
"final": "direct"
+8 -4
View File
@@ -1,5 +1,9 @@
v25.2.22更新内容:
1、更新IP显示BUG
更新方式:在线更新
(在线更新:SSH选择4更新。。。重装更新:必须卸载重装)
v25.2.26更新内容:
1、选项7重置端口功能在安装脚本前与后都可执行,端口重置不中断
2、多功能网页添加重置节点端口功能,后缀为/rp
3、加入网页保活功能可在Github actions与workers上定时运行的脚本
4、修复BUG与文字修正
5、Github/vps/软路由的部署脚本同步更新支持重置端口功能
本次更新的视频教程:https://youtu.be/9uCfFNnjNc0
本次更新方式:在线更新(在线更新:SSH选择4更新。。。重装更新:必须卸载重装)
详见:https://ygkkk.blogspot.com/2025/01/serv00.html