diff --git a/app.js b/app.js index 11285cb..d49fa64 100644 --- a/app.js +++ b/app.js @@ -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("
重置节点端口完成!请稍等10秒后,主页后缀改为 /list/你的uuid 可查看更新端口后的节点及订阅信息"); +}); + 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, () => { diff --git a/kp.sh b/kp.sh index 00445fd..5f23cbd 100644 --- a/kp.sh +++ b/kp.sh @@ -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 diff --git a/serv00.sh b/serv00.sh index b2a258e..d14a5ba 100644 --- a/serv00.sh +++ b/serv00.sh @@ -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,7 +523,11 @@ 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) diff --git a/serv00.yml b/serv00.yml index 3637cef..38a4b7c 100644 --- a/serv00.yml +++ b/serv00.yml @@ -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 diff --git a/serv00keep.sh b/serv00keep.sh index 8fd4dc2..79bc4f9 100644 --- a/serv00keep.sh +++ b/serv00keep.sh @@ -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,7 +459,11 @@ hy3p=$(sed -n '3p' hy2ip.txt) { "rule_set":"google", "outbound": "wg" - } + }, + { + "rule_set":"google-play", + "outbound": "wg" + } ], "final": "direct" } diff --git a/sversion b/sversion index 2812c8d..aa781ff 100644 --- a/sversion +++ b/sversion @@ -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