Files
o.nmgjg.com.cn/index/install/zerotier/linux.sh

498 lines
19 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
<<ENDOFSIGSTART=
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
# shellcheck disable=SC2148
ENDOFSIGSTART=
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin
#
# ZeroTier 安装脚本
#
# 此脚本的功能是检测您的操作系统和/或发行版,然后添加正确的
# 软件源或下载正确的软件包并安装。安装完成后,它会启动服务
# 并打印设备的 ZeroTier 地址。
#
# ZeroTier 下载地址的基础 URL如果您想要镜像请参阅 https://github.com/zerotier/download.zerotier.com。
# 一些内容需要 http一些需要 https因此我们必须同时指定。必须包含尾部的 /
ZT_BASE_URL_HTTPS='https://download.zerotier.com/'
ZT_BASE_URL_HTTP='http://download.zerotier.com/'
##########################################################
#
# 支持的最大发行版版本和代号
#
##########################################################
# Debian
MAX_SUPPORTED_DEBIAN_VERSION=12
MAX_SUPPORTED_DEBIAN_VERSION_NAME=bookworm
# Ubuntu
MAX_SUPPORTED_UBUNTU_VERSION=24.04
MAX_SUPPORTED_UBUNTU_VERSION_NAME=noble
# 我们仅为 Ubuntu LTS 版本构建。将非 LTS 版本映射到最近的前一个 LTS 版本。
declare -A UBUNTU_CODENAME_MAP
UBUNTU_CODENAME_MAP["trusty"]="trusty"
UBUNTU_CODENAME_MAP["utopic"]="trusty"
UBUNTU_CODENAME_MAP["vivid"]="trusty"
UBUNTU_CODENAME_MAP["wily"]="trusty"
UBUNTU_CODENAME_MAP["xenial"]="xenial"
UBUNTU_CODENAME_MAP["yakkety"]="xenial"
UBUNTU_CODENAME_MAP["zesty"]="xenial"
UBUNTU_CODENAME_MAP["artful"]="xenial"
UBUNTU_CODENAME_MAP["bionic"]="bionic"
UBUNTU_CODENAME_MAP["cosmic"]="bionic"
UBUNTU_CODENAME_MAP["disco"]="bionic"
UBUNTU_CODENAME_MAP["eoan"]="bionic"
UBUNTU_CODENAME_MAP["focal"]="focal"
UBUNTU_CODENAME_MAP["groovy"]="focal"
UBUNTU_CODENAME_MAP["hirsute"]="focal"
UBUNTU_CODENAME_MAP["impish"]="focal"
UBUNTU_CODENAME_MAP["jammy"]="jammy"
UBUNTU_CODENAME_MAP["kinetic"]="jammy"
UBUNTU_CODENAME_MAP["lunar"]="jammy"
UBUNTU_CODENAME_MAP["mantic"]="jammy"
UBUNTU_CODENAME_MAP["noble"]="noble"
# Mint
MAX_SUPPORTED_MINT_VERSION=22
MAX_SUPPORTED_MINT_VERSION_NAME=xia
# 将 Mint 的代号映射到 Ubuntu 代号(有时是 Debian
declare -A MINT_CODENAME_MAP
MINT_CODENAME_MAP["xia"]="noble"
MINT_CODENAME_MAP["wilma"]="noble"
MINT_CODENAME_MAP["virginia"]="jammy"
MINT_CODENAME_MAP["victoria"]="jammy"
MINT_CODENAME_MAP["vera"]="jammy"
MINT_CODENAME_MAP["vanessa"]="jammy"
MINT_CODENAME_MAP["una"]="focal"
MINT_CODENAME_MAP["uma"]="focal"
MINT_CODENAME_MAP["ulyssa"]="focal"
MINT_CODENAME_MAP["ulyana"]="focal"
MINT_CODENAME_MAP["faye"]="bookworm"
##########################################################
#
# 结束
#
##########################################################
echo
echo '*** ZeroTier 服务快速安装脚本 (适用于类 Unix 系统)'
echo
echo '*** 已测试的操作系统 / 发行版:'
echo
echo '*** MacOS (10.13+) (仅安装 ZeroTier One.pkg)'
echo '*** Debian Linux (7+)'
echo '*** RedHat/CentOS Linux (6+)'
echo '*** Fedora Linux (16+)'
echo '*** SuSE Linux (12+)'
echo '*** Mint Linux (20+)'
echo '*** Kali Linux (2024.1+)'
echo
echo '*** 支持的架构因操作系统 / 发行版而异。我们尽量支持目标系统支持的所有架构。'
echo
echo '*** 如果遇到问题,请在 GitHub 上提交问题或拉取请求: '
echo '*** https://github.com/zerotier/install.zerotier.com'
echo '*** 请附上您发行版的 `/etc/os-release` 文件内容。'
echo
SUDO=
if [ "$UID" != "0" ]; then
if [ -e /usr/bin/sudo -o -e /bin/sudo ]; then
SUDO=sudo
else
echo '*** 此快速安装脚本需要 root 权限。'
exit 0
fi
fi
# 检测 MacOS 并安装 .pkg 文件
if [ -e /usr/bin/uname ]; then
if [ "`/usr/bin/uname -s`" = "Darwin" ]; then
echo '*** 检测到 MacOS / Darwin正在下载并安装 Mac .pkg...'
$SUDO rm -f "/tmp/ZeroTier One.pkg"
curl -s ${ZT_BASE_URL_HTTPS}dist/ZeroTier%20One.pkg >"/tmp/ZeroTier One.pkg"
$SUDO installer -pkg "/tmp/ZeroTier One.pkg" -target /
echo
echo '*** 正在等待身份生成...'
while [ ! -f "/Library/Application Support/ZeroTier/One/identity.secret" ]; do
sleep 1
done
echo
echo "*** 成功!您已连接到地球的行星智能交换机的端口 `cat '/Library/Application Support/ZeroTier/One/identity.public' | cut -d : -f 1`。"
echo
# 下载 https://o.nmgjg.com.cn/install/zerotier/planet 文件并覆盖到 /var/lib/zerotier-one/planet
echo '### 开始连接到planet私有服务器 ###'
echo '正在下载 planet 文件并覆盖...'
$SUDO rm -f /var/lib/zerotier-one/planet
$SUDO curl -s https://o.nmgjg.com.cn/install/zerotier/planet > /var/lib/zerotier-one/planet
# curl -s http://150.158.212.94:3000/planet?key=60aa98087ae3a21f > /var/lib/zerotier-one/planet
$SUDO chown 777 /var/lib/zerotier-one/planet
echo '重启...'
$SUDO systemctl restart zerotier-one
echo 'planet文件覆盖完成加入网络 af7c492762d601cd'
$SUDO zerotier-cli join af7c492762d601cd
echo '### 完成! ###'
exit 0
fi
fi
# 检测 Linux 上是否已安装
if [ -f /usr/sbin/zerotier-one ]; then
echo '*** ZeroTier 似乎已经安装。'
echo '*** 如果您想要重新安装,请先卸载现有的 ZeroTier。'
echo
# 下载 https://o.nmgjg.com.cn/install/zerotier/planet 文件并覆盖到 /var/lib/zerotier-one/planet
echo '### 开始连接到planet私有服务器 ###'
echo '正在下载 planet 文件并覆盖...'
$SUDO rm -f /var/lib/zerotier-one/planet
$SUDO curl -s https://o.nmgjg.com.cn/install/zerotier/planet > /var/lib/zerotier-one/planet
# curl -s http://150.158.212.94:3000/planet?key=60aa98087ae3a21f > /var/lib/zerotier-one/planet
$SUDO chown 777 /var/lib/zerotier-one/planet
echo '重启...'
$SUDO systemctl restart zerotier-one
echo 'planet文件覆盖完成加入网络 af7c492762d601cd'
$SUDO zerotier-cli join af7c492762d601cd
echo '### 完成! ###'
exit 0
fi
rm -f /tmp/zt-gpg-key
echo '-----BEGIN PGP PUBLIC KEY BLOCK-----' >/tmp/zt-gpg-key
cat >>/tmp/zt-gpg-key << END_OF_KEY
Comment: GPGTools - https://gpgtools.org
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
=JgAv
END_OF_KEY
echo '-----END PGP PUBLIC KEY BLOCK-----' >>/tmp/zt-gpg-key
echo '*** 检测 Linux 发行版'
echo
_old_apt_signing() {
URL=$1
CODENAME=$2
if [ -d /etc/apt/trusted.gpg.d ]; then
$SUDO gpg --dearmor < /tmp/zt-gpg-key > /etc/apt/trusted.gpg.d/zerotier-debian-package-key.gpg
else
$SUDO apt-key add /tmp/zt-gpg-key
fi
echo "deb ${URL}debian/$CODENAME $CODENAME main" >/tmp/zt-sources-list
}
_new_apt_signing() {
URL=$1
CODENAME=$2
$SUDO gpg --dearmor < /tmp/zt-gpg-key > /usr/share/keyrings/zerotier-debian-package-key.gpg
echo "deb [signed-by=/usr/share/keyrings/zerotier-debian-package-key.gpg] ${URL}debian/$CODENAME $CODENAME main" >/tmp/zt-sources-list
}
# 写入 apt 软件源
write_apt_repo() {
DISTRIBUTION=$1
VERSION=$2
URL=$3
CODENAME=$4
if [ ! -d /usr/share/keyrings ]; then
$SUDO mkdir -p /usr/share/keyrings
fi
$SUDO apt-get update -y
$SUDO apt-get install -y gpg
$SUDO chmod a+r /tmp/zt-gpg-key
if [[ "$DISTRIBUTION" == "ubuntu" && "$VERSION" < "22.04" ]]; then
_old_apt_signing $URL $CODENAME
elif [[ ("$DISTRIBUTION" == "debian" || "$DISTRIBUTION" == "raspbian") && "$VERSION" -lt "10" ]]; then
_old_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "ubuntu" && "$VERSION" > "22.03" ]]; then # comparison to 22.03 is intentional
_new_apt_signing $URL $CODENAME
elif [[ ("$DISTRIBUTION" == "debian" || "$DISTRIBUTION" == "raspbian") && "$VERSION" -ge "10" ]]; then
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "kali" ]]; then
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "linuxmint" && "$VERSION" == "6" ]]; then
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "linuxmint" && ( "$VERSION" == "21" || "$VERSION" -gt "21" ) ]]; then
_new_apt_signing $URL $CODENAME
elif [[ "$DISTRIBUTION" == "linuxmint" && ( "$VERSION" == "20" || ("$VERSION" -gt "20" && "$VERSION" -lt "21" ) ) ]]; then
_old_apt_signing $URL $CODENAME
else
echo "不支持的发行版 $DISTRIBUTION $VERSION"
exit 1
fi
$SUDO mv -f /tmp/zt-sources-list /etc/apt/sources.list.d/zerotier.list
$SUDO chown 0 /etc/apt/sources.list.d/zerotier.list
$SUDO chgrp 0 /etc/apt/sources.list.d/zerotier.list
echo
echo '*** 正在安装 zerotier-one 包...'
# Pre-1.1.6 Debian package did not properly enumerate its files, causing
# problems when we try to replace it. So just delete them to force.
if [ -d /var/lib/zerotier-one ]; then
$SUDO rm -f /etc/init.d/zerotier-one /etc/systemd/system/multi-user.target.wants/zerotier-one.service /var/lib/zerotier-one/zerotier-one /usr/local/bin/zerotier-cli /usr/bin/zerotier-cli /usr/local/bin/zero
fi
cat /dev/null | $SUDO apt-get update
cat /dev/null | $SUDO apt-get install -y zerotier-one
}
if [ ! -f /etc/os-release ]; then
echo '*** 无法检测 Linux 发行版!中止。'
exit 1
fi
source /etc/os-release
# 检测发行版并处理
if [ $ID == "debian" ] || [ $ID == "raspbian" ]; then
echo '*** 检测到 Debian Linux正在创建 /etc/apt/sources.list.d/zerotier.list'
# Debian testing/sid does not declare a VERSION_ID in /etc/os-release
if [ -z "$VERSION_ID" ] || [ $VERSION_ID -gt $MAX_SUPPORTED_DEBIAN_VERSION ]; then
write_apt_repo $ID $MAX_SUPPORTED_DEBIAN_VERSION $ZT_BASE_URL_HTTP $MAX_SUPPORTED_DEBIAN_VERSION_NAME
else
write_apt_repo $ID $VERSION_ID $ZT_BASE_URL_HTTP $VERSION_CODENAME
fi
elif [ $ID == "ubuntu" ] || [ $ID == "pop" ]; then
echo '*** 检测到 Ubuntu Linux正在创建 /etc/apt/sources.list.d/zerotier.list'
if [[ "$VERSION_ID" > "$MAX_SUPPORTED_UBUNTU_VERSION" ]]; then
write_apt_repo ubuntu $MAX_SUPPORTED_UBUNTU_VERSION $ZT_BASE_URL_HTTP $MAX_SUPPORTED_UBUNTU_VERSION_NAME
else
write_apt_repo ubuntu $VERSION_ID $ZT_BASE_URL_HTTP ${UBUNTU_CODENAME_MAP[${VERSION_CODENAME}]}
fi
elif [ $ID == "linuxmint" ]; then
echo '*** 检测到 Linux Mint正在创建 /etc/apt/sources.list.d/zerotier.list'
# fix for non integer version number
VERSION_ID=$(echo $VERSION_ID | cut -d . -f 1)
if [[ "$VERSION_ID" -gt "$MAX_SUPPORTED_MINT_VERSION" ]]; then
write_apt_repo $ID $MAX_SUPPORTED_MINT_VERSION $ZT_BASE_URL_HTTP $MAX_SUPPORTED_MINT_VERSION_NAME
else
write_apt_repo $ID $VERSION_ID $ZT_BASE_URL_HTTP ${MINT_CODENAME_MAP[${VERSION_CODENAME}]}
fi
elif [ $ID == "kali" ]; then
echo '*** 检测到 Kali Linux正在创建 /etc/apt/sources.list.d/zerotier.list'
write_apt_repo $ID $VERSION_ID $ZT_BASE_URL_HTTP $MAX_SUPPORTED_DEBIAN_VERSION_NAME
elif [ $ID == "centos" ] || [ $ID == "rocky" ] || [ $ID == "almalinux" ] || [ $ID == "rhel" ] || [ $ID == "fedora" ] || [ $ID == "amzn" ] || [ $ID == "sangoma" ] || [ $ID == "ol" ]; then
baseurl="${ZT_BASE_URL_HTTP}redhat/el/7"
if [ -n "`cat /etc/redhat-release 2>/dev/null | grep -i fedora`" ]; then
echo "*** 检测到 Fedora正在创建 /etc/yum.repos.d/zerotier.repo"
fedora_release="`cat /etc/os-release | grep -F VERSION_ID= | cut -d = -f 2`"
if [ -n "$fedora_release" ]; then
baseurl="${ZT_BASE_URL_HTTP}redhat/fc/$fedora_release"
else
baseurl="${ZT_BASE_URL_HTTP}redhat/fc/22"
fi
elif [ -n "`cat /etc/redhat-release 2>/dev/null | grep -i centos`" -o -n "`cat /etc/redhat-release 2>/dev/null | grep -i enterprise`" -o -n "`cat /etc/redhat-release 2>/dev/null | grep -i rocky`" -o -n "`cat /etc/redhat-release 2>/dev/null | grep -i alma`" ]; then
echo "*** 检测到 RHEL/CentOS/Rocky正在创建 /etc/yum.repos.d/zerotier.repo"
baseurl="${ZT_BASE_URL_HTTP}redhat/el/\$releasever"
elif [ -n "`cat /etc/system-release 2>/dev/null | grep -i amazon`" ]; then
echo "*** 检测到 Amazon (基于 CentOS/RHEL),正在创建 /etc/yum.repos.d/zerotier.repo"
if [ -n "`cat /etc/system-release 2>/dev/null | grep -F 'Amazon Linux 2'`" ]; then
baseurl="${ZT_BASE_URL_HTTP}redhat/el/7"
else
baseurl="${ZT_BASE_URL_HTTP}redhat/amzn1/2016.03"
fi
else
echo "*** 检测到未知的基于 yum 的仓库,使用 el/7正在创建 /etc/yum.repos.d/zerotier.repo"
fi
$SUDO rpm --import /tmp/zt-gpg-key
$SUDO rm -f /tmp/zerotier.repo
echo '[zerotier]' >/tmp/zerotier.repo
echo 'name=ZeroTier, Inc. RPM Release Repository' >>/tmp/zerotier.repo
echo "baseurl=$baseurl" >>/tmp/zerotier.repo
echo 'enabled=1' >>/tmp/zerotier.repo
echo 'gpgcheck=1' >>/tmp/zerotier.repo
$SUDO mv -f /tmp/zerotier.repo /etc/yum.repos.d/zerotier.repo
$SUDO chown 0 /etc/yum.repos.d/zerotier.repo
$SUDO chgrp 0 /etc/yum.repos.d/zerotier.repo
echo
echo '*** 正在安装 ZeroTier 服务包...'
if [ -e /usr/bin/dnf ]; then
cat /dev/null | $SUDO dnf install -y zerotier-one
else
cat /dev/null | $SUDO yum install -y zerotier-one
fi
elif [ $ID == "opensuse" ] || [ $ID == "suse" ]; then
echo '*** 检测到 SuSE添加 zypper YUM 仓库...'
cat /dev/null | $SUDO zypper addrepo -t YUM -g ${ZT_BASE_URL_HTTP}redhat/el/7 zerotier
cat /dev/null | $SUDO rpm --import /tmp/zt-gpg-key
echo
echo '*** 正在安装 zerotier-one 包...'
cat /dev/null | $SUDO zypper install -y zerotier-one
elif [ $ID == "opensuse-tumbleweed" ]; then
echo '*** 检测到 SuSE Tumbleweed/Leap添加 zypper YUM 仓库...'
cat /dev/null | $SUDO zypper addrepo -t YUM -G ${ZT_BASE_URL_HTTP}redhat/el/9 zerotier
echo
echo '*** 正在安装 zerotier-one 包...'
cat /dev/null | $SUDO zypper install -y zerotier-one
else
echo '*** 未知或不支持的发行版!中止。'
exit 1
fi
$SUDO rm -f /tmp/zt-gpg-key
if [ ! -e /usr/sbin/zerotier-one ]; then
echo
echo '*** 包安装失败!很遗憾,您的架构或发行版可能没有可用的包。要获取源代码,请访问:'
echo '*** https://github.com/zerotier/ZeroTierOne'
echo
exit 1
fi
echo
echo '*** 启用并启动 ZeroTier 服务...'
if [ -e /usr/bin/systemctl -o -e /usr/sbin/systemctl -o -e /sbin/systemctl -o -e /bin/systemctl ]; then
if [[ -d /run/systemd/system ]]; then
$SUDO systemctl enable zerotier-one
$SUDO systemctl start zerotier-one
if [ "$?" != "0" ]; then
echo
echo '*** 包已安装但无法启动服务!您可能在 Docker 容器中或使用非标准的 init 服务。'
echo
exit 1
fi
else
echo
echo '*** 包已安装但无法启动服务!您可能在 Docker 容器中或使用非标准的 init 服务。'
echo
exit 0
fi
else
if [ -e /sbin/update-rc.d -o -e /usr/sbin/update-rc.d -o -e /bin/update-rc.d -o -e /usr/bin/update-rc.d ]; then
$SUDO update-rc.d zerotier-one defaults
else
$SUDO chkconfig zerotier-one on
fi
$SUDO /etc/init.d/zerotier-one start
fi
echo
echo '*** 正在等待身份生成...'
while [ ! -f /var/lib/zerotier-one/identity.secret ]; do
sleep 1
done
echo
echo "*** 成功!您是 ZeroTier 地址 [ `cat /var/lib/zerotier-one/identity.public | cut -d : -f 1` ]。"
echo
# 下载 https://o.nmgjg.com.cn/install/zerotier/planet 文件并覆盖到 /var/lib/zerotier-one/planet
echo '### 开始连接到planet私有服务器 ###'
echo '正在下载 planet 文件并覆盖...'
$SUDO rm -f /var/lib/zerotier-one/planet
$SUDO curl -s https://o.nmgjg.com.cn/install/zerotier/planet > /var/lib/zerotier-one/planet
# curl -s http://150.158.212.94:3000/planet?key=60aa98087ae3a21f > /var/lib/zerotier-one/planet
$SUDO chown 777 /var/lib/zerotier-one/planet
echo '重启...'
$SUDO systemctl restart zerotier-one
echo 'planet文件覆盖完成加入网络 af7c492762d601cd'
sleep 1m
$SUDO zerotier-cli join af7c492762d601cd
echo '### 完成! ###'
exit 0
-----BEGIN PGP SIGNATURE-----
iQJJBAEBCAAzFiEEdKXpxFjhpDHx2lenFlcZiCPlKmEFAme2UsoVHGNvbnRhY3RA
emVyb3RpZXIuY29tAAoJEBZXGYgj5SphEVEQAKaIu1wFPR3PbRGRiNP8ylfAD4ns
X3dyTzZjU6NcwU/iUQJzuePOGC41j7lF03drfOlrQ5PN5XsYkOSWZx2I04qHVxug
+ghb9upvQ1Eemak3Une46Py+VB9Ke8lzKt2DYGGFWJHYl3Fak3WdTgH6y9N1oYv5
qCsPzth2wbF3WGe764/rfo/bn8UEQI/Mi3LUGOqJuD3C8u7V6XQ67B4zvNKBdIXI
3lJ6PFOmRr0XT4v8VsXbl3nst7Ml6/sJCNmIHiHzJAAxIevin3JThosl8llXgr6L
uAaW2n9RUvhSNX6+pnnoa7uhUVmitzZDKZWkY7lINP7mxn1b8QIDOVfgEXDU31Hh
r2LviuwScAmSi7RWHAO2S1NvVD1yVoONbpz24Ke+kl1TKVNYxE9DkLdg2I3fy4pK
HvOa5sX+safJhDoyTcQxLZO1qLO34V6R5Co1BQ6j58kT+iDElt7IfQwvBUdjc9an
HQAvbRY7IK8j1gLUVS9B7Z/kWczM2u1aBAoZhcuXqfk7Av1JJfU9qz/RrcLowueC
lHkhErxVY6iVA4akbIxope4X6VnROuaJto9ExigSV3dTyvhYIWPA0yuh1muOlef1
reEZ7bSqYmrxB4sRUivdSEGlFdmNwm41PAuWdlIFQDQ5XG4wDziUG3qDrQ1tkXJc
NAfdFEsfkRPMmMtk
=pery
-----END PGP SIGNATURE-----