#!/bin/sh export LANG=en_US.UTF-8 [ -z "${vlpt+x}" ] || vlp=yes [ -z "${vmpt+x}" ] || vmp=yes [ -z "${hypt+x}" ] || hyp=yes [ -z "${tupt+x}" ] || tup=yes [ -z "${anpt+x}" ] || anp=yes [ -z "${warp+x}" ] || wap=yes if find /proc/*/exe -type l 2>/dev/null | grep -E '/proc/[0-9]+/exe' | xargs -r readlink 2>/dev/null | grep -Eq 'agsb/s' || pgrep -f 'agsb/s' >/dev/null 2>&1; then if [ "$1" = "rep" ]; then [ "$vlp" = yes ] || [ "$vmp" = yes ] || [ "$hyp" = yes ] || [ "$tup" = yes ] || [ "$anp" = yes ] || { echo "提示:rep重置协议时,请在脚本前至少设置一个协议变量哦,再见!💣"; exit; } fi else [ "$1" = "del" ] || [ "$vlp" = yes ] || [ "$vmp" = yes ] || [ "$hyp" = yes ] || [ "$tup" = yes ] || [ "$anp" = yes ] || { echo "提示:未安装ArgoSB脚本,请在脚本前至少设置一个协议变量哦,再见!💣"; exit; } fi export uuid=${uuid:-''} export port_vl_re=${vlpt:-''} export port_vm_ws=${vmpt:-''} export port_hy2=${hypt:-''} export port_tu=${tupt:-''} export port_an=${anpt:-''} export ym_vl_re=${reym:-''} export argo=${argo:-''} export ARGO_DOMAIN=${agn:-''} export ARGO_AUTH=${agk:-''} export ipsw=${ip:-''} export warp=${warp:-''} export name=${name:-''} v46url="https://icanhazip.com" agsburl="https://raw.githubusercontent.com/xgytao/s-box/main/sb2" showmode(){ echo "显示节点信息:agsb或者脚本 list" echo "更新脚本命令:原已安装的自定义各种协议变量组 主脚本 rep" echo "双栈VPS显示IPv4节点配置:ip=4 agsb或者脚本 list" echo "双栈VPS显示IPv6节点配置:ip=6 agsb或者脚本 list" echo "重启脚本:agsb或者脚本 res" echo "卸载脚本:agsb或者脚本 del" } echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" echo "ArgoSB一键无交互小钢炮脚本💣" echo "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" hostname=$(uname -a | awk '{print $2}') op=$(cat /etc/redhat-release 2>/dev/null || cat /etc/os-release 2>/dev/null | grep -i pretty_name | cut -d \" -f2) [ -z "$(systemd-detect-virt 2>/dev/null)" ] && vi=$(virt-what 2>/dev/null) || vi=$(systemd-detect-virt 2>/dev/null) case $(uname -m) in aarch64) cpu=arm64;; x86_64) cpu=amd64;; *) echo "目前脚本不支持$(uname -m)架构" && exit esac mkdir -p "$HOME/agsb" v4v6(){ v4=$( (command -v curl >/dev/null 2>&1 && curl -s4m5 -k "$v46url") || (command -v wget >/dev/null 2>&1 && wget -4 --tries=2 -qO- "$v46url") ) v6=$( (command -v curl >/dev/null 2>&1 && curl -s6m5 -k "$v46url") || (command -v wget >/dev/null 2>&1 && wget -6 --tries=2 -qO- "$v46url") ) } warps(){ if [ -n "$name" ]; then sname=$name- echo "$sname" > "$HOME/agsb/name" echo echo "所有节点名称前缀:$name" fi v4v6 if echo "$v6" | grep -q '^2a09' || echo "$v4" | grep -q '^104.28'; then s1outtag=direct; s2outtag=direct; sip='"::/0", "0.0.0.0/0"'; wap=warpargo echo; echo "请注意:你已安装了warp" else if [ "$wap" != yes ]; then s1outtag=direct; s2outtag=direct; sip='"::/0", "0.0.0.0/0"'; wap=warpargo else case "$warp" in s ) s1outtag=warp-out; s2outtag=warp-out; sip='"::/0", "0.0.0.0/0"'; wap=warp ;; s4) s1outtag=warp-out; s2outtag=direct; sip='"0.0.0.0/0"'; wap=warp ;; s6) s1outtag=warp-out; s2outtag=direct; sip='"::/0"'; wap=warp ;; * ) s1outtag=direct; s2outtag=direct; sip='"::/0", "0.0.0.0/0"';; esac fi fi if (command -v curl >/dev/null 2>&1 && curl -s6m5 -k "$v46url" >/dev/null 2>&1) || (command -v wget >/dev/null 2>&1 && timeout 3 wget -6 --tries=2 -qO- "$v46url" >/dev/null 2>&1); then sbyx='prefer_ipv6' else case "$warp" in *s4*) sbyx='ipv4_only' ;; esac case "$warp" in *s6*) sbyx='prefer_ipv6' ;; esac [ -z "$sbyx" ] && sbyx='prefer_ipv4' fi } insuuid(){ if [ -z "$uuid" ] && [ ! -e "$HOME/agsb/uuid" ]; then if [ -e "$HOME/agsb/sing-box" ]; then uuid=$("$HOME/agsb/sing-box" generate uuid) fi echo "$uuid" > "$HOME/agsb/uuid" elif [ -n "$uuid" ]; then echo "$uuid" > "$HOME/agsb/uuid" fi uuid=$(cat "$HOME/agsb/uuid") echo "UUID密码:$uuid" } installsb(){ echo echo "=========启用Sing-box内核=========" if [ ! -e "$HOME/agsb/sing-box" ]; then SINGBOX_VER=$(curl -s https://api.github.com/repos/SagerNet/sing-box/releases/latest | grep tag_name | cut -d\" -f4) curl -L -o /tmp/singbox.tar.gz "https://github.com/SagerNet/sing-box/releases/download/${SINGBOX_VER}/sing-box-${SINGBOX_VER#v}-linux-${cpu}.tar.gz" tar -xzvf /tmp/singbox.tar.gz -C /tmp mv /tmp/sing-box-${SINGBOX_VER#v}-linux-${cpu}/sing-box "$HOME/agsb/sing-box" chmod +x "$HOME/agsb/sing-box" sbcore=$("$HOME/agsb/sing-box" version 2>/dev/null | awk '/version/{print $NF}') echo "已安装Sing-box官方正式版内核:$sbcore" rm -rf /tmp/singbox.tar.gz /tmp/sing-box-${SINGBOX_VER#v}-linux-${cpu} fi cat > "$HOME/agsb/sb.json" </dev/null 2>&1 && openssl ecparam -genkey -name prime256v1 -out "$HOME/agsb/private.key" >/dev/null 2>&1 command -v openssl >/dev/null 2>&1 && openssl req -new -x509 -days 36500 -key "$HOME/agsb/private.key" -out "$HOME/agsb/cert.pem" -subj "/CN=www.bing.com" >/dev/null 2>&1 if [ ! -f "$HOME/agsb/private.key" ]; then url="https://github.com/yonggekkk/ArgoSB/releases/download/argosbx/private.key"; out="$HOME/agsb/private.key"; (command -v curl>/dev/null 2>&1 && curl -Ls -o "$out" --retry 2 "$url") || (command -v wget>/dev/null 2>&1 && wget -q -O "$out" --tries=2 "$url") url="https://github.com/yonggekkk/ArgoSB/releases/download/argosbx/cert.pem"; out="$HOME/agsb/cert.pem"; (command -v curl>/dev/null 2>&1 && curl -Ls -o "$out" --retry 2 "$url") || (command -v wget>/dev/null 2>&1 && wget -q -O "$out" --tries=2 "$url") fi if [ -n "$hyp" ]; then hyp=hypt if [ -z "$port_hy2" ] && [ ! -e "$HOME/agsb/port_hy2" ]; then port_hy2=$(shuf -i 10000-65535 -n 1) echo "$port_hy2" > "$HOME/agsb/port_hy2" elif [ -n "$port_hy2" ]; then echo "$port_hy2" > "$HOME/agsb/port_hy2" fi port_hy2=$(cat "$HOME/agsb/port_hy2") echo "Hysteria2端口:$port_hy2" cat >> "$HOME/agsb/sb.json" < "$HOME/agsb/port_tu" elif [ -n "$port_tu" ]; then echo "$port_tu" > "$HOME/agsb/port_tu" fi port_tu=$(cat "$HOME/agsb/port_tu") echo "Tuic端口:$port_tu" cat >> "$HOME/agsb/sb.json" < "$HOME/agsb/port_an" elif [ -n "$port_an" ]; then echo "$port_an" > "$HOME/agsb/port_an" fi port_an=$(cat "$HOME/agsb/port_an") echo "Anytls端口:$port_an" cat >> "$HOME/agsb/sb.json" < "$HOME/agsb/port_vl_re" elif [ -n "$port_vl_re" ]; then echo "$port_vl_re" > "$HOME/agsb/port_vl_re" fi if [ -z "$ym_vl_re" ]; then ym_vl_re=www.yahoo.com fi echo "$ym_vl_re" > "$HOME/agsb/ym_vl_re" if [ ! -e "$HOME/agsb/private_key" ]; then key_pair=$("$HOME/agsb/sing-box" generate reality-keypair) private_key=$(echo "$key_pair" | awk '/PrivateKey/ {print $2}' | tr -d '"') public_key=$(echo "$key_pair" | awk '/PublicKey/ {print $2}' | tr -d '"') short_id=$("$HOME/agsb/sing-box" generate rand --hex 4) echo "$private_key" > "$HOME/agsb/private_key" echo "$public_key" > "$HOME/agsb/public_key" echo "$short_id" > "$HOME/agsb/short_id" fi private_key=$(cat "$HOME/agsb/private_key") public_key=$(cat "$HOME/agsb/public_key") short_id=$(cat "$HOME/agsb/short_id") echo "Vless-reality端口:$port_vl_re" echo "Reality域名:$ym_vl_re" cat >> "$HOME/agsb/sb.json" < "$HOME/agsb/port_vm_ws" elif [ -n "$port_vm_ws" ]; then echo "$port_vm_ws" > "$HOME/agsb/port_vm_ws" fi port_vm_ws=$(cat "$HOME/agsb/port_vm_ws") echo "Vmess-ws端口:$port_vm_ws" if [ -e "$HOME/agsb/sing-box" ]; then cat >> "$HOME/agsb/sb.json" <> "$HOME/agsb/sb.json" </dev/null 2>&1 & fi } killstart(){ for P in /proc/[0-9]*; do if [ -L "$P/exe" ]; then TARGET=$(readlink -f "$P/exe" 2>/dev/null); if echo "$TARGET" | grep -qE '/agsb/s|/agsb/c'; then PID=$(basename "$P"); kill "$PID" 2>/dev/null; fi; fi; done kill -15 $(pgrep -f 'agsb/s' 2>/dev/null) $(pgrep -f 'agsb/c' 2>/dev/null) >/dev/null 2>&1 nohup $HOME/agsb/sing-box run -c $HOME/agsb/sb.json >/dev/null 2>&1 & if [ -e "$HOME/agsb/sbargotoken.log" ]; then nohup $HOME/agsb/cloudflared tunnel --no-autoupdate --edge-ip-version auto --protocol http2 run --token $(cat $HOME/agsb/sbargotoken.log 2>/dev/null) >/dev/null 2>&1 & else if [ -e "$HOME/agsb/sb.json" ] && [ -e "$HOME/agsb/argo.log" ]; then nohup $HOME/agsb/cloudflared tunnel --url http://localhost:$(grep -A2 vmess-sb $HOME/agsb/sb.json | tail -1 | tr -cd 0-9) --edge-ip-version auto --no-autoupdate --protocol http2 > $HOME/agsb/argo.log 2>&1 & fi fi sleep 6 } ins(){ installsb warps sbout if [ -n "$argo" ] && [ -n "$vmp" ]; then echo echo "=========启用Cloudflared-argo内核=========" if [ ! -e "$HOME/agsb/cloudflared" ]; then argocore=$({ command -v curl >/dev/null 2>&1 && curl -Ls https://data.jsdelivr.com/v1/package/gh/cloudflare/cloudflared || wget -qO- https://data.jsdelivr.com/v1/package/gh/cloudflare/cloudflared; } | grep -Eo '"[0-9.]+"' | sed -n 1p | tr -d '",') echo "下载Cloudflared-argo最新正式版内核:$argocore" url="https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-$cpu"; out="$HOME/agsb/cloudflared"; (command -v curl>/dev/null 2>&1 && curl -Lo "$out" -# --retry 2 "$url") || (command -v wget>/dev/null 2>&1 && wget -O "$out" --tries=2 "$url") chmod +x "$HOME/agsb/cloudflared" fi if [ -n "${ARGO_DOMAIN}" ] && [ -n "${ARGO_AUTH}" ]; then name='固定' nohup "$HOME/agsb/cloudflared" tunnel --no-autoupdate --edge-ip-version auto --protocol http2 run --token "${ARGO_AUTH}" >/dev/null 2>&1 & echo "${ARGO_DOMAIN}" > "$HOME/agsb/sbargoym.log" echo "${ARGO_AUTH}" > "$HOME/agsb/sbargotoken.log" else name='临时' nohup "$HOME/agsb/cloudflared" tunnel --url http://localhost:"${port_vm_ws}" --edge-ip-version auto --no-autoupdate --protocol http2 > "$HOME/agsb/argo.log" 2>&1 & fi echo "申请Argo$name隧道中……请稍等" sleep 8 if [ -n "${ARGO_DOMAIN}" ] && [ -n "${ARGO_AUTH}" ]; then argodomain=$(cat "$HOME/agsb/sbargoym.log" 2>/dev/null) else argodomain=$(grep -a trycloudflare.com "$HOME/agsb/argo.log" 2>/dev/null | awk 'NR==2{print}' | awk -F// '{print $2}' | awk '{print $1}') fi if [ -n "${argodomain}" ]; then echo "Argo$name隧道申请成功" else echo "Argo$name隧道申请失败,请稍后再试" fi fi echo if find /proc/*/exe -type l 2>/dev/null | grep -E '/proc/[0-9]+/exe' | xargs -r readlink 2>/dev/null | grep -Eq 'agsb/s' || pgrep -f 'agsb/s' >/dev/null 2>&1 ; then [ -f ~/.bashrc ] || touch ~/.bashrc sed -i '/yonggekkk/d' ~/.bashrc echo "if ! find /proc/*/exe -type l 2>/dev/null | grep -E '/proc/[0-9]+/exe' | grep -Eq 'agsb/s' && ! pgrep -f 'agsb/s' >/dev/null 2>&1; then export name=\"${name}\"; fi" >> ~/.bashrc COMMAND="agsb" SCRIPT_PATH="$HOME/bin/$COMMAND" mkdir -p "$HOME/bin" (command -v curl >/dev/null 2>&1 && curl -sL "$agsburl" -o "$SCRIPT_PATH") || (command -v wget >/dev/null 2>&1 && wget -qO "$SCRIPT_PATH" "$agsburl") chmod +x "$SCRIPT_PATH" sed -i '/export PATH="\$HOME\/bin:\$PATH"/d' ~/.bashrc echo 'export PATH="$HOME/bin:$PATH"' >> "$HOME/.bashrc" grep -qxF 'source ~/.bashrc' ~/.bash_profile 2>/dev/null || echo 'source ~/.bashrc' >> ~/.bash_profile . ~/.bashrc 2>/dev/null crontab -l > /tmp/crontab.tmp 2>/dev/null sed -i '/agsb\/sing-box/d' /tmp/crontab.tmp if find /proc/*/exe -type l 2>/dev/null | grep -E '/proc/[0-9]+/exe' | xargs -r readlink 2>/dev/null | grep -Eq 'agsb/s' || pgrep -f 'agsb/s' >/dev/null 2>&1 ; then echo '@reboot /bin/sh -c "nohup $HOME/agsb/sing-box run -c $HOME/agsb/sb.json >/dev/null 2>&1 &"' >> /tmp/crontab.tmp fi sed -i '/agsb\/cloudflared/d' /tmp/crontab.tmp if [ -n "$argo" ] && [ -n "$vmp" ]; then if [ -n "${ARGO_DOMAIN}" ] && [ -n "${ARGO_AUTH}" ]; then echo '@reboot /bin/sh -c "nohup $HOME/agsb/cloudflared tunnel --no-autoupdate --edge-ip-version auto --protocol http2 run --token $(cat $HOME/agsb/sbargotoken.log 2>/dev/null) >/dev/null 2>&1 &"' >> /tmp/crontab.tmp else if [ -e "$HOME/agsb/sing-box" ]; then echo '@reboot /bin/sh -c "nohup $HOME/agsb/cloudflared tunnel --url http://localhost:$(grep -A2 vmess-sb $HOME/agsb/sb.json | tail -1 | tr -cd 0-9) --edge-ip-version auto --no-autoupdate --protocol http2 > $HOME/agsb/argo.log 2>&1 &"' >> /tmp/crontab.tmp fi fi fi crontab /tmp/crontab.tmp 2>/dev/null rm /tmp/crontab.tmp echo "ArgoSB脚本进程启动成功,安装完毕" && sleep 2 else echo "ArgoSB脚本进程未启动,安装失败" && exit fi } cip(){ ipbest(){ serip=$(curl -s4m5 icanhazip.com -k || curl -s6m5 icanhazip.com -k) if echo "$serip" | grep -q ':'; then server_ip="[$serip]" echo "$server_ip" > "$HOME/agsb/server_ip.log" else server_ip="$serip" echo "$server_ip" > "$HOME/agsb/server_ip.log" fi } ipchange(){ v4v6 if [ -z "$v4" ]; then vps_ipv4='无IPV4' vps_ipv6="$v6" elif [ -n "$v4" ] && [ -n "$v6" ]; then vps_ipv4="$v4" vps_ipv6="$v6" else vps_ipv4="$v4" vps_ipv6='无IPV6' fi if echo "$v6" | grep -q '^2a09'; then w6="【WARP】" fi if echo "$v4" | grep -q '^104.28'; then w4="【WARP】" fi echo echo "=========当前服务器本地IP情况=========" echo "本地IPV4地址:$vps_ipv4 $w4" echo "本地IPV6地址:$vps_ipv6 $w6" echo sleep 2 if [ "$ipsw" = "4" ]; then if [ -z "$v4" ]; then ipbest else server_ip="$v4" echo "$server_ip" > "$HOME/agsb/server_ip.log" fi elif [ "$ipsw" = "6" ]; then if [ -z "$v6" ]; then ipbest else server_ip="[$v6]" echo "$server_ip" > "$HOME/agsb/server_ip.log" fi else ipbest fi } ipchange rm -rf "$HOME/agsb/jh.txt" uuid=$(cat "$HOME/agsb/uuid") server_ip=$(cat "$HOME/agsb/server_ip.log") echo "ArgoSB脚本输出节点配置如下:" echo case "$server_ip" in 104.28*|\[2a09*) echo "检测到有WARP的IP作为客户端地址 (104.28或者2a09开头的IP),请把客户端地址上的WARP的IP手动更换为VPS本地IPV4或者IPV6地址" && sleep 3 ;; esac if [ -e "$HOME/agsb/sing-box" ]; then ym_vl_re=$(cat "$HOME/agsb/ym_vl_re" 2>/dev/null) private_key=$(cat "$HOME/agsb/private_key" 2>/dev/null) public_key=$(cat "$HOME/agsb/public_key" 2>/dev/null) short_id=$(cat "$HOME/agsb/short_id" 2>/dev/null) fi if grep hy2-sb "$HOME/agsb/sb.json" >/dev/null 2>&1; then echo "💣【 Hysteria2 】节点信息如下:" port_hy2=$(cat "$HOME/agsb/port_hy2") hy2_link="hysteria2://$uuid@$server_ip:$port_hy2?security=tls&alpn=h3&insecure=1&sni=www.bing.com#hysteria2-$hostname" echo "$hy2_link" >> "$HOME/agsb/jh.txt" echo "$hy2_link" echo echo " - name: hysteria2-$hostname type: hysteria2 server: $server_ip port: $port_hy2 password: $uuid sni: www.bing.com skip-cert-verify: true " >> "$HOME/agsb/jh.txt" fi if grep tuic5-sb "$HOME/agsb/sb.json" >/dev/null 2>&1; then echo "💣【 Tuic 】节点信息如下:" port_tu=$(cat "$HOME/agsb/port_tu") tuic5_link="tuic://$uuid:$uuid@$server_ip:$port_tu?congestion_control=bbr&udp_relay_mode=native&alpn=h3&sni=www.bing.com&allow_insecure=1#tuic-$hostname" echo "$tuic5_link" >> "$HOME/agsb/jh.txt" echo "$tuic5_link" echo echo " - name: tuic-$hostname type: tuic server: $server_ip port: $port_tu uuid: $uuid password: $uuid alpn: - h3 udp: true skip-cert-verify: true " >> "$HOME/agsb/jh.txt" fi if grep anytls-sb "$HOME/agsb/sb.json" >/dev/null 2>&1; then echo "💣【 AnyTLS 】节点信息如下:" port_an=$(cat "$HOME/agsb/port_an") an_link="anytls://$uuid@$server_ip:$port_an?insecure=1#anytls-$hostname" echo "$an_link" >> "$HOME/agsb/jh.txt" echo "$an_link" echo echo " - name: anytls-$hostname type: anytls server: $server_ip port: $port_an password: $uuid sni: $hostname skip-cert-verify: true " >> "$HOME/agsb/jh.txt" fi if grep vless-sb "$HOME/agsb/sb.json" >/dev/null 2>&1; then echo "💣【 vless-reality-vision 】节点信息如下:" port_vl_re=$(cat "$HOME/agsb/port_vl_re") vl_link="vless://$uuid@$server_ip:$port_vl_re?encryption=none&flow=xtls-rprx-vision&security=reality&sni=$ym_vl_re&fp=chrome&pbk=$public_key&sid=$short_id&type=tcp&headerType=none#vl-reality-$hostname" echo "$vl_link" >> "$HOME/agsb/jh.txt" echo "$vl_link" echo echo " - name: vless-reality-$hostname type: vless server: $server_ip port: $port_vl_re uuid: $uuid network: tcp tls: true udp: true flow: xtls-rprx-vision servername: $ym_vl_re reality-opts: public-key: $public_key short-id: $short_id client-fingerprint: chrome " >> "$HOME/agsb/jh.txt" fi if grep vmess-sb "$HOME/agsb/sb.json" >/dev/null 2>&1; then echo "💣【 vmess-ws 】节点信息如下:" port_vm_ws=$(cat "$HOME/agsb/port_vm_ws") vm_link="vmess://$(echo "{ \"v\": \"2\", \"ps\": \"vm-ws-$hostname\", \"add\": \"$server_ip\", \"port\": \"$port_vm_ws\", \"id\": \"$uuid\", \"aid\": \"0\", \"scy\": \"auto\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"www.bing.com\", \"path\": \"$uuid-vm\", \"tls\": \"\"}" | base64 -w0)" echo "$vm_link" >> "$HOME/agsb/jh.txt" echo "$vm_link" echo argodomain=$(cat "$HOME/agsb/sbargoym.log" 2>/dev/null) [ -z "$argodomain" ] && argodomain=$(grep -a trycloudflare.com "$HOME/agsb/argo.log" 2>/dev/null | awk 'NR==2{print}' | awk -F// '{print $2}' | awk '{print $1}') if [ -n "$argodomain" ]; then vmatls_link="vmess://$(echo "{ \"v\": \"2\", \"ps\": \"vmess-ws-tls-argo-$hostname\", \"add\": \"$argodomain\", \"port\": \"8443\", \"id\": \"$uuid\", \"aid\": \"0\", \"scy\": \"auto\", \"net\": \"ws\", \"type\": \"none\", \"host\": \"$argodomain\", \"path\": \"$uuid-vm\", \"tls\": \"tls\", \"sni\": \"$argodomain\", \"alpn\": \"\", \"fp\": \"\"}" | base64 -w0)" echo "$vmatls_link" >> "$HOME/agsb/jh.txt" echo "$vmatls_link" echo echo " - name: vmess-argo-$hostname type: vmess server: $argodomain port: 443 uuid: $uuid alterId: 0 cipher: auto udp: true tls: true network: ws ws-opts: path: $uuid-vm headers: Host: $argodomain " >> "$HOME/agsb/jh.txt" fi sbtk=$(cat "$HOME/agsb/sbargotoken.log" 2>/dev/null) if [ -n "$sbtk" ]; then nametn="当前Argo固定隧道token:$sbtk" fi argoshow=$(echo -e "Vmess主协议端口(Argo固定隧道端口):$port_vm_ws\n当前Argo$name域名:$argodomain\n") fi echo "---------------------------------------------------------" echo "$argoshow" echo "---------------------------------------------------------" echo "聚合节点信息,请查看$HOME/agsb/jh.txt文件或者运行cat $HOME/agsb/jh.txt进行复制" echo "---------------------------------------------------------" echo "相关快捷方式如下:(首次安装成功后需重连SSH,agsb快捷方式才可生效)" showmode } cleandel(){ for P in /proc/[0-9]*; do if [ -L "$P/exe" ]; then TARGET=$(readlink -f "$P/exe" 2>/dev/null); if echo "$TARGET" | grep -qE '/agsb/c|/agsb/s'; then PID=$(basename "$P"); kill "$PID" 2>/dev/null && echo "Killed $PID ($TARGET)" || echo "Could not kill $PID ($TARGET)"; fi; fi; done kill -15 $(pgrep -f 'agsb/s' 2>/dev/null) $(pgrep -f 'agsb/c' 2>/dev/null) >/dev/null 2>&1 sed -i '/yonggekkk/d' ~/.bashrc sed -i '/export PATH="\$HOME\/bin:\$PATH"/d' ~/.bashrc . ~/.bashrc 2>/dev/null crontab -l > /tmp/crontab.tmp 2>/dev/null sed -i '/agsb\/sing-box/d' /tmp/crontab.tmp sed -i '/agsb\/cloudflared/d' /tmp/crontab.tmp crontab /tmp/crontab.tmp 2>/dev/null rm /tmp/crontab.tmp rm -rf "$HOME/bin/agsb" } if [ "$1" = "del" ]; then cleandel rm -rf "$HOME/agsb" echo "卸载完成" echo showmode exit elif [ "$1" = "rep" ]; then cleandel rm -rf "$HOME/agsb"/{sb.json,sbargoym.log,sbargotoken.log,argo.log,cdnym} echo "重置协议完成,开始更新相关协议变量……" && sleep 3 echo elif [ "$1" = "list" ]; then cip exit elif [ "$1" = "res" ]; then killstart sleep 5 echo "重启完成" exit fi if ! find /proc/*/exe -type l 2>/dev/null | grep -E '/proc/[0-9]+/exe' | grep -Eq 'agsb/s' && ! pgrep -f 'agsb/s' >/dev/null 2>&1; then for P in /proc/[0-9]*; do if [ -L "$P/exe" ]; then TARGET=$(readlink -f "$P/exe" 2>/dev/null); if echo "$TARGET" | grep -qE '/agsb/s'; then PID=$(basename "$P"); kill "$PID" 2>/dev/null; fi; fi; done kill -15 $(pgrep -f 'agsb/s' 2>/dev/null) $(pgrep -f 'agsb/c' 2>/dev/null) >/dev/null 2>&1 v4orv6(){ if [ -z "$( (command -v curl >/dev/null 2>&1 && curl -s4m5 -k "$v46url") || (command -v wget >/dev/null 2>&1 && wget -4 -qO- --tries=2 "$v46url") )" ]; then echo -e "nameserver 2a00:1098:2b::1\nnameserver 2a00:1098:2c::1" > /etc/resolv.conf fi if [ -n "$( (command -v curl >/dev/null 2>&1 && curl -s6m5 -k "$v46url") || (command -v wget >/dev/null 2>&1 && wget -6 -qO- --tries=2 "$v46url") )" ]; then sendip="2606:4700:d0::a29f:c001" sdns="[2001:4860:4860::8888]" else sendip="162.159.192.1" sdns="8.8.8.8" fi } v4orv6 echo "VPS系统:$op" echo "CPU架构:$cpu" echo "ArgoSB脚本未安装,开始安装…………" && sleep 2 setenforce 0 >/dev/null 2>&1 iptables -P INPUT ACCEPT >/dev/null 2>&1 iptables -P FORWARD ACCEPT >/dev/null 2>&1 iptables -P OUTPUT ACCEPT >/dev/null 2>&1 iptables -F >/dev/null 2>&1 netfilter-persistent save >/dev/null 2>&1 ins cip echo else echo "ArgoSB脚本已安装" echo "相关快捷方式如下:" showmode exit fi