mirror of
https://github.com/233boy/sing-box.git
synced 2026-05-03 06:14:41 +08:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3909d2edaf | ||
|
|
798d43ac47 | ||
|
|
09fd2df4ff | ||
|
|
596efd5659 | ||
|
|
3d942cf5c2 | ||
|
|
45b099168f |
@@ -198,6 +198,7 @@ check_status() {
|
||||
# dependent pkg install fail
|
||||
[[ ! -f $is_pkg_ok ]] && {
|
||||
msg err "安装依赖包失败"
|
||||
msg err "请尝试手动安装依赖包: $cmd update -y; $cmd install -y $pkg"
|
||||
is_fail=1
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
args=$@
|
||||
is_sh_ver=v1.0
|
||||
is_sh_ver=v1.06
|
||||
|
||||
. /etc/sing-box/sh/src/init.sh
|
||||
43
src/core.sh
43
src/core.sh
@@ -65,7 +65,7 @@ info_list=(
|
||||
"指纹 (Fingerprint)"
|
||||
"公钥 (Public key)"
|
||||
"用户名 (Username)"
|
||||
"跳过证书验证 (allowlnsecure)"
|
||||
"跳过证书验证 (allowInsecure)"
|
||||
"拥塞控制算法 (congestion_control)"
|
||||
)
|
||||
change_list=(
|
||||
@@ -116,7 +116,7 @@ get_uuid() {
|
||||
}
|
||||
|
||||
get_ip() {
|
||||
[[ $ip || $is_no_auto_tls || $is_gen ]] && return
|
||||
[[ $ip || $is_no_auto_tls || $is_gen || $is_dont_get_ip ]] && return
|
||||
export "$(_wget -4 -qO- https://one.one.one.one/cdn-cgi/trace | grep ip=)" &>/dev/null
|
||||
[[ ! $ip ]] && export "$(_wget -6 -qO- https://one.one.one.one/cdn-cgi/trace | grep ip=)" &>/dev/null
|
||||
[[ ! $ip ]] && {
|
||||
@@ -443,6 +443,7 @@ change() {
|
||||
[[ $is_auto_get_config ]] && msg "\n自动选择: $is_config_file"
|
||||
}
|
||||
is_old_net=$net
|
||||
[[ $is_tcp_http ]] && net=http
|
||||
[[ $host ]] && net=$is_protocol-$net-tls
|
||||
[[ $is_reality && $net_type =~ 'http' ]] && net=rh2
|
||||
|
||||
@@ -634,6 +635,8 @@ change() {
|
||||
|
||||
# delete config.
|
||||
del() {
|
||||
# dont get ip
|
||||
is_dont_get_ip=1
|
||||
[[ $is_conf_dir_empty ]] && return # not found any json file.
|
||||
# get a config file
|
||||
[[ ! $is_config_file ]] && get info $1
|
||||
@@ -662,6 +665,7 @@ del() {
|
||||
warn "当前配置目录为空! 因为你刚刚删除了最后一个配置文件."
|
||||
is_conf_dir_empty=1
|
||||
fi
|
||||
unset is_dont_get_ip
|
||||
[[ $is_dont_auto_exit ]] && unset is_config_file
|
||||
}
|
||||
|
||||
@@ -923,7 +927,7 @@ add() {
|
||||
fi
|
||||
|
||||
if [[ $is_use_tls ]]; then
|
||||
if [[ ! $is_no_auto_tls && ! $is_caddy && ! $is_gen ]]; then
|
||||
if [[ ! $is_no_auto_tls && ! $is_caddy && ! $is_gen && ! $is_dont_test_host ]]; then
|
||||
# test auto tls
|
||||
[[ $(is_test port_used 80) || $(is_test port_used 443) ]] && {
|
||||
get_port
|
||||
@@ -1066,9 +1070,9 @@ get() {
|
||||
is_config_name=$is_config_file
|
||||
|
||||
if [[ $is_caddy && $host && -f $is_caddy_conf/$host.conf ]]; then
|
||||
tmp_tlsport=$(egrep -o "$host:[1-9][0-9]?+" $is_caddy_conf/$host.conf | sed s/.*://)
|
||||
is_tmp_https_port=$(egrep -o "$host:[1-9][0-9]?+" $is_caddy_conf/$host.conf | sed s/.*://)
|
||||
fi
|
||||
[[ $tmp_tlsport ]] && is_https_port=$tmp_tlsport
|
||||
[[ $is_tmp_https_port ]] && is_https_port=$is_tmp_https_port
|
||||
[[ $is_client && $host ]] && port=$is_https_port
|
||||
get protocol $is_protocol-$net_type
|
||||
fi
|
||||
@@ -1090,6 +1094,8 @@ get() {
|
||||
tuic*)
|
||||
net=tuic
|
||||
is_protocol=$net
|
||||
[[ ! $password ]] && password=$uuid
|
||||
is_users="users:[{uuid:\"$uuid\",password:\"$password\"}]"
|
||||
json_str="$is_users,congestion_control:\"bbr\",$is_tls_json"
|
||||
;;
|
||||
trojan*)
|
||||
@@ -1290,6 +1296,7 @@ info() {
|
||||
[[ $net == "http" ]] && {
|
||||
net=tcp
|
||||
is_type=http
|
||||
is_tcp_http=1
|
||||
is_info_show+=(5)
|
||||
is_info_str=(${is_info_str[@]/http/tcp http})
|
||||
}
|
||||
@@ -1297,7 +1304,7 @@ info() {
|
||||
is_insecure=1
|
||||
is_info_show+=(8 9 20)
|
||||
is_info_str+=(tls h3 true)
|
||||
is_quic_add=",tls:\"tls\",alpn:\"h3\"" # cant add allowlnsecure
|
||||
is_quic_add=",tls:\"tls\",alpn:\"h3\"" # cant add allowInsecure
|
||||
}
|
||||
is_vmess_url=$(jq -c "{v:2,ps:\"233boy-${net}-$is_addr\",add:\"$is_addr\",port:\"$port\",id:\"$uuid\",aid:\"0\",net:\"$net\",type:\"$is_type\"$is_quic_add}" <<<{})
|
||||
is_url=vmess://$(echo -n $is_vmess_url | base64 -w 0)
|
||||
@@ -1313,7 +1320,7 @@ info() {
|
||||
is_insecure=1
|
||||
is_can_change=(0 1 4)
|
||||
is_info_show=(0 1 2 10 4 8 20)
|
||||
is_url="$is_protocol://$password@$is_addr:$port?type=tcp&security=tls&allowlnsecure=1#233boy-$net-$is_addr"
|
||||
is_url="$is_protocol://$password@$is_addr:$port?type=tcp&security=tls&allowInsecure=1#233boy-$net-$is_addr"
|
||||
is_info_str=($is_protocol $is_addr $port $password tcp tls true)
|
||||
;;
|
||||
hy*)
|
||||
@@ -1324,10 +1331,10 @@ info() {
|
||||
;;
|
||||
tuic)
|
||||
is_insecure=1
|
||||
is_can_change=(0 1 5)
|
||||
is_info_show=(0 1 2 3 8 9 20 21)
|
||||
is_url="$is_protocol://$uuid:@$is_addr:$port?alpn=h3&allow_insecure=1&congestion_control=bbr#233boy-$net-$is_addr"
|
||||
is_info_str=($is_protocol $is_addr $port $uuid tls h3 true bbr)
|
||||
is_can_change=(0 1 4 5)
|
||||
is_info_show=(0 1 2 3 10 8 9 20 21)
|
||||
is_url="$is_protocol://$uuid:$password@$is_addr:$port?alpn=h3&allow_insecure=1&congestion_control=bbr#233boy-$net-$is_addr"
|
||||
is_info_str=($is_protocol $is_addr $port $uuid $password tls h3 true bbr)
|
||||
;;
|
||||
reality)
|
||||
is_color=41
|
||||
@@ -1366,11 +1373,14 @@ info() {
|
||||
fi
|
||||
msg "$a $tt= \e[${is_color}m${is_info_str[$i]}\e[0m"
|
||||
done
|
||||
if [[ $is_new_install ]]; then
|
||||
warn "首次安装请查看脚本帮助文档: $(msg_ul https://233boy.com/$is_core/$is_core-script/)"
|
||||
fi
|
||||
if [[ $is_url ]]; then
|
||||
msg "------------- ${info_list[12]} -------------"
|
||||
msg "\e[4;${is_color}m${is_url}\e[0m"
|
||||
[[ $is_insecure ]] && {
|
||||
warn "某些客户端如(V2rayN 等)导入URL需手动将: 跳过证书验证(allowlnsecure) 设置为 true, 或打开: 允许不安全的连接"
|
||||
warn "某些客户端如(V2rayN 等)导入URL需手动将: 跳过证书验证(allowInsecure) 设置为 true, 或打开: 允许不安全的连接"
|
||||
}
|
||||
fi
|
||||
if [[ $is_no_auto_tls ]]; then
|
||||
@@ -1516,7 +1526,7 @@ is_main_menu() {
|
||||
show_help
|
||||
;;
|
||||
9)
|
||||
ask list is_do_other "启用BBR 查看日志 查看错误日志 测试运行 重装脚本 设置DNS"
|
||||
ask list is_do_other "启用BBR 查看日志 测试运行 重装脚本 设置DNS"
|
||||
case $REPLY in
|
||||
1)
|
||||
load bbr.sh
|
||||
@@ -1526,15 +1536,12 @@ is_main_menu() {
|
||||
get log
|
||||
;;
|
||||
3)
|
||||
get logerr
|
||||
;;
|
||||
4)
|
||||
get test-run
|
||||
;;
|
||||
5)
|
||||
4)
|
||||
get reinstall
|
||||
;;
|
||||
6)
|
||||
5)
|
||||
load dns.sh
|
||||
dns_set
|
||||
;;
|
||||
|
||||
28
src/init.sh
28
src/init.sh
@@ -47,6 +47,17 @@ warn() {
|
||||
echo -e "\n$is_warn $@\n"
|
||||
}
|
||||
|
||||
# load bash script.
|
||||
load() {
|
||||
. $is_sh_dir/src/$1
|
||||
}
|
||||
|
||||
# wget add --no-check-certificate
|
||||
_wget() {
|
||||
# [[ $proxy ]] && export https_proxy=$proxy
|
||||
wget --no-check-certificate "$@"
|
||||
}
|
||||
|
||||
# yum or apt-get
|
||||
cmd=$(type -P apt-get || type -P yum)
|
||||
|
||||
@@ -106,6 +117,12 @@ else
|
||||
fi
|
||||
if [[ -f $is_caddy_bin && -d $is_caddy_dir && $is_caddy_service ]]; then
|
||||
is_caddy=1
|
||||
# fix caddy run; ver >= 2.8.2
|
||||
[[ ! $(grep '\-\-adapter caddyfile' /lib/systemd/system/caddy.service) ]] && {
|
||||
load systemd.sh
|
||||
install_service caddy
|
||||
systemctl restart caddy &
|
||||
}
|
||||
is_caddy_ver=$($is_caddy_bin version | head -n1 | cut -d " " -f1)
|
||||
is_tmp_http_port=$(egrep '^ {2,}http_port|^http_port' $is_caddyfile | egrep -o [0-9]+)
|
||||
is_tmp_https_port=$(egrep '^ {2,}https_port|^https_port' $is_caddyfile | egrep -o [0-9]+)
|
||||
@@ -119,17 +136,6 @@ if [[ -f $is_caddy_bin && -d $is_caddy_dir && $is_caddy_service ]]; then
|
||||
fi
|
||||
fi
|
||||
|
||||
# load bash script.
|
||||
load() {
|
||||
. $is_sh_dir/src/$1
|
||||
}
|
||||
|
||||
# wget add --no-check-certificate
|
||||
_wget() {
|
||||
# [[ $proxy ]] && export https_proxy=$proxy
|
||||
wget --no-check-certificate "$@"
|
||||
}
|
||||
|
||||
load core.sh
|
||||
[[ ! $args ]] && args=main
|
||||
main $args
|
||||
|
||||
@@ -38,8 +38,8 @@ Requires=network-online.target
|
||||
Type=notify
|
||||
User=root
|
||||
Group=root
|
||||
ExecStart=$is_caddy_bin run --environ --config $is_caddyfile
|
||||
ExecReload=$is_caddy_bin reload --config $is_caddyfile
|
||||
ExecStart=$is_caddy_bin run --environ --config $is_caddyfile --adapter caddyfile
|
||||
ExecReload=$is_caddy_bin reload --config $is_caddyfile --adapter caddyfile
|
||||
TimeoutStopSec=5s
|
||||
LimitNPROC=10000
|
||||
LimitNOFILE=1048576
|
||||
|
||||
Reference in New Issue
Block a user