forked from hexianglong/o.nmgjg.com.cn
498 lines
19 KiB
Bash
Executable File
498 lines
19 KiB
Bash
Executable File
#!/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-----
|
||
|
||
|