mirror of
https://github.com/bin456789/reinstall.git
synced 2025-10-05 06:24:53 +00:00
core: 添加 frpc 内网穿透
This commit is contained in:
96
get-frpc-url.sh
Normal file
96
get-frpc-url.sh
Normal file
@@ -0,0 +1,96 @@
|
||||
#!/bin/ash
|
||||
# shellcheck shell=dash
|
||||
# trans.sh/debian.cfg 共用此脚本
|
||||
|
||||
# debian 9 不支持 set -E
|
||||
set -e
|
||||
|
||||
is_in_china() {
|
||||
grep -q 1 /dev/netconf/*/is_in_china
|
||||
}
|
||||
|
||||
is_ipv6_only() {
|
||||
! grep -q 1 /dev/netconf/eth*/ipv4_has_internet
|
||||
}
|
||||
|
||||
get_frpc_url() {
|
||||
# 传入 windows 或者 linux
|
||||
local os_type=$1
|
||||
local nt_ver=$2
|
||||
|
||||
is_need_old_version() {
|
||||
[ "$nt_ver" = "6.0" ] || [ "$nt_ver" = "6.1" ]
|
||||
}
|
||||
|
||||
version=$(
|
||||
if is_need_old_version; then
|
||||
echo 0.54.0
|
||||
else
|
||||
# debian 11 initrd 没有 xargs awk
|
||||
# debian 12 initrd 没有 xargs
|
||||
# github 不支持 ipv6
|
||||
if is_in_china || is_ipv6_only; then
|
||||
wget -O- https://mirrors.nju.edu.cn/github-release/fatedier/frp/LatestRelease/frp_sha256_checksums.txt |
|
||||
grep -m1 frp_ | cut -d_ -f2
|
||||
else
|
||||
# https://api.github.com/repos/fatedier/frp/releases/latest 有请求次数限制
|
||||
|
||||
# root@localhost:~# wget --spider -S https://github.com/fatedier/frp/releases/latest 2>&1 | grep Location:
|
||||
# Location: https://github.com/fatedier/frp/releases/tag/v0.62.0
|
||||
# Location: https://github.com/fatedier/frp/releases/tag/v0.62.0 [following] # 原版 wget 多了这行
|
||||
|
||||
wget --spider -S https://github.com/fatedier/frp/releases/latest 2>&1 |
|
||||
grep -m1 '^ Location:' | sed 's,.*/tag/v,,'
|
||||
fi
|
||||
fi
|
||||
)
|
||||
|
||||
if [ -z "$version" ]; then
|
||||
echo 'cannot find version'
|
||||
return 1
|
||||
fi
|
||||
|
||||
suffix=$(
|
||||
case "$os_type" in
|
||||
linux) echo tar.gz ;;
|
||||
windows) echo zip ;;
|
||||
esac
|
||||
)
|
||||
|
||||
mirror=$(
|
||||
# nju 没有 win7 用的旧版
|
||||
# github 不支持 ipv6
|
||||
# jsdelivr 不支持 github releases 文件
|
||||
if is_ipv6_only; then
|
||||
if is_need_old_version; then
|
||||
echo 'NOT_SUPPORT'
|
||||
return 1
|
||||
else
|
||||
echo https://mirrors.nju.edu.cn/github-release/fatedier/frp
|
||||
fi
|
||||
else
|
||||
if is_in_china; then
|
||||
if is_need_old_version; then
|
||||
echo https://github.com/fatedier/frp/releases/download
|
||||
else
|
||||
echo https://mirrors.nju.edu.cn/github-release/fatedier/frp
|
||||
fi
|
||||
else
|
||||
echo https://github.com/fatedier/frp/releases/download
|
||||
fi
|
||||
fi
|
||||
)
|
||||
|
||||
arch=$(
|
||||
case "$(uname -m)" in
|
||||
x86_64) echo amd64 ;;
|
||||
aarch64) echo arm64 ;;
|
||||
esac
|
||||
)
|
||||
|
||||
filename=frp_${version}_${os_type}_${arch}.$suffix
|
||||
|
||||
echo "${mirror}/v${version}/${filename}"
|
||||
}
|
||||
|
||||
get_frpc_url "$@"
|
Reference in New Issue
Block a user