@@ -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, () => {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user