Shell_树莓派_cpolar内网穿透自动安装脚本

树莓派安装cpolar内网穿透,随便写了一下,乘机学习一下shell,有错误请指出。

免费版的也不错,就是每天都会改变端口号,所以要想登陆需要登陆账号查看端口号。

 网址:cpolar - 安全的内网穿透工具

首先注册登录即可,登录后状态栏哪里什么都没有。需要安装成功才会有显示。

Shell_树莓派_cpolar内网穿透自动安装脚本_第1张图片

Shell_树莓派_cpolar内网穿透自动安装脚本_第2张图片

文件可以百度网盘下载、gitee下载、直接复制。

百度网盘下载链接:

https://pan.baidu.com/s/1j0VMyWDU0hrJfhahK7Fjqw

提取码:

zh57

gitee下载链接:

复制使用,创建一个.sh结尾的文件,可以是任意名称 。*-*

 shell自动安装cpolar内网穿透脚本代码​​​​​​,复制即可使用。脚本可以多次运行。

#!/bin/bash

USER_PATH=""

CPOLAR_CONFIG_PATH=""
CPOLAR_CONFIG_FILE_PATH=""

CPOLAR_AUTHTOKEN=""

CPOALR_DOWNLOAD_PATH=""
CPOLAR_DOWNLOAD_FILE_PATH=""

clear
echo -e "\r\n// *********************************************** //"
echo -e "欢迎使用cpolar自动安装脚本\^.^/"
echo -e "// *********************************************** //\r\n"

#各个目录所在位置确定
USER_PATH=/home/pi
CPOALR_CONFIG_PATH=$USER_PATH/.cpolar
CPOLAR_CONFIG_FILE_PATH=$USER_PATH/.cpolar/cpolar.yml
CPOLAR_DOWNLOAD_PATH=$USER_PATH/cpolar_install
CPOLAR_DOWNLOAD_FILE_PATH=$CPOLAR_DOWNLOAD_PATH/cpolar


#必须携带参数才可以运行
if [ "$1" = "" ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "未携带参数!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
fi



#如果主文件路径错误则退出
cd $USER_PATH
if [ "$?" -ne 0 ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "主文件目录/home/pi不存在!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
fi
CPOLAR_AUTHTOKEN="authtoken: ""$1"



#安装前置驱动
echo -e "\r\n// *********************************************** //"
echo -e "正在安装环境支持文件....."
echo -e "// *********************************************** //\r\n"
sudo apt-get install vim wget git gcc g++



#创建保存压缩包的文件夹
if [ ! -e $CPOLAR_DOWNLOAD_PATH ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "准备创建保存安装压缩包的文件夹....."
				echo -e "// *********************************************** //\r\n"
else
				echo -e "\r\n// *********************************************** //"
				echo -e "保存安装压缩包的文件夹已存在,删除后重新创建文件夹....."
				echo -e "// *********************************************** //\r\n"
				sudo rm -r $CPOLAR_DOWNLOAD_PATH
fi
sudo mkdir $CPOLAR_DOWNLOAD_PATH &>/dev/null 
if [ $? -ne 0 ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "创建文件失败!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
fi


#切换目录下载安装压缩包
cd $CPOLAR_DOWNLOAD_PATH
echo -e "\r\n// *********************************************** //"
echo -e "准备下载安装包....."
echo -e "// *********************************************** //"
sudo wget https://www.cpolar.com/static/downloads/cpolar-stable-linux-arm.zip
if [ $? -ne 0 ];then
				echo "下载失败,正在重试....."
				echo -e "// *********************************************** //\r\n"

				sudo wget https://www.cpolar.com/static/downloads/cpolar-stable-linux-arm.zip
				if [ $? -ne 0 ];then
								echo "下载失败,退出!!!XXXXX"
								echo -e "// *********************************************** //\r\n"
								exit 1
				fi
fi



#解压压缩包
echo -e "\r\n// *********************************************** //"
echo -e "准备解压安装包....."
echo -e "// *********************************************** //\r\n"
sudo unzip cpolar-stable-linux-arm.zip &>/dev/null
if [ $? -ne 0 ] || [ ! -f $CPOLAR_DOWNLOAD_FILE_PATH ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "解压文件失败,退出安装!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
fi



#转移文件
echo -e "\r\n// *********************************************** //"
echo -e "准备转移解压后的文件....."
echo -e "// *********************************************** //\r\n"
sudo mv cpolar /usr/local/bin
if [ $? -ne 0 ] || [ ! -f /usr/local/bin/cpolar ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "移动文件错误,退出安装!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
fi



#准备配置文件,将轨道的Authtoken写入到配置文件中
echo -e "\r\n// *********************************************** //"
echo -e "准备配置cpolar的Authtoken文件....."
echo -e "// *********************************************** //\r\n"
cpolar authtoken $1 &>/dev/null
if [ ! -f "$CPOLAR_CONFIG_FILE_PATH" ];then
				echo -e "\r\n// *********************************************** //"
				echo -e "配置文件 ~/.cpolar/cpolar.yml 不存在!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
else
				cd $CPOLAR_CONFIG_PATH
fi



#修改cpoalr参数信息
echo -e "\r\n// *********************************************** //"
echo -e "修改cpolar的参数信息....."
echo -e "// *********************************************** //"
CPOLAR_CONFIG_LINE=`cat $CPOLAR_CONFIG_FILE_PATH | grep -n "addr: 22"`
if [[ $CPOLAR_CONFIG_LINE == "" ]];then
				echo -e "未修改过端口配置信息,准备增加TCP轨道"
				echo -e "// *********************************************** //\r\n"
				echo -e "\n\n\n" >> $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "4i\tunnels:" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "5i\  web:" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "6i\    addr: 8080 " $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "7i\    proto: http" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "8i\    region: cn_vip" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "9i\  ssh:" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "10i\    addr: 22" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "11i\    proto: tcp" $CPOLAR_CONFIG_FILE_PATH
				sudo sed -i "12i\    region: cn_vip" $CPOLAR_CONFIG_FILE_PATH
				cat $CPOLAR_CONFIG_FILE_PATH
else
				echo -e "已经修改过端口配置信息"
				echo -e "// *********************************************** //\r\n"
				cat $CPOLAR_CONFIG_FILE_PATH
fi
#sudo sed -i '1d' $CPOLAR_CONFIG_FILE_PATH
#echo -e "\r\n\r\n删除文件的结果"
#cat $CPOLAR_CONFIG_FILE_PATH
#sudo sed -i "1i $CPOLAR_AUTHTOKEN" $CPOLAR_CONFIG_FILE_PATH
#echo -e "\r\n\r\n添加文件的结果"



#echo -e "\r\n// *********************************************** //"
#echo -e "5秒后,测试cpolar对于8080端口运行情况"
#echo -e "// *********************************************** //\r\n"
#sleep 5
#if [[ `cpolar http 8080` =~ "Failed" ]];then
#				echo -e "\r\n// *********************************************** //"
#				echo -e "测试结果错误!!!XXXXX"
#				echo -e "// *********************************************** //\r\n"
#				exit 1
#fi



#启动后台运行cpolar
echo -e "\r\n// *********************************************** //"
echo -e "启动cpolar后台运行....."
echo -e "// *********************************************** //"
if [[ `ps -aux | grep cpolar | grep -v grep` =~ "cpolar start-all" ]];then
				echo -e "cpolar已经开启后台运行....."
				echo -e "// *********************************************** //\r\n"
else
				nohup cpolar start-all -config=$CPOLAR_CONFIG_FILE_PATH -log=stdout &
				if [[ `ps -aux | grep cpolar | grep -v grep` =~ "cpolar start-all" ]];then
								echo -e "成功开启cpolar后台运行....."
								echo -e "// *********************************************** //\r\n"
				else
								echo -e "cpolar后台运行失败!!!XXXXX"
								echo -e "// *********************************************** //\r\n"
								exit 1
				fi
fi



#配置cpolar开机自起
echo -e "\r\n// *********************************************** /"
echo -e "配置colar开机自启动....."
echo -e "// *********************************************** //"
CPOLAR_START_LINE=`cat /etc/rc.local | grep -n "cpolar start-all " | awk -F ":" 'END{printf $1}'`
#$(( CPOLAR_START_LINE-- ))
if [[ $CPOLAR_START_LINE == "" ]];then
				echo -e "未配置过文件,将子启动命令写入文件....."
				sudo sed "$((CPOLAR_START_LINE))i nohup cpolar start-all -config=/home/pi/.cpolar/cpolar.yml -log=stdout &" /etc/rc.local
				echo -e "\r\n// *********************************************** //r\n"
else
				echo -e "已经在文件第$CPOLAR_START_LINE行配置过文件.....\r\n内容如下:"
				sudo awk "NR==$((CPOLAR_START_LINE)){printf \$0}" /etc/rc.local
				echo -e "\r\n// *********************************************** //\r\n"
fi



#运行测试
echo -e "\r\n// *********************************************** //"
echo -e "5秒后,测试cpolar对于start-all所有端口运行情况"
echo -e "// *********************************************** //\r\n"
sleep 5
if [[ `cpolar start-all` =~ "Failed" ]];then
				echo -e "\r\n// *********************************************** //"
				echo -e "测试结果错误!!!XXXXX"
				echo -e "// *********************************************** //\r\n"
				exit 1
fi




#结束
echo -e "\r\n// *********************************************** //"
echo "安装cpolar完毕,感谢使用本脚本\^.^/"
echo -e "// *********************************************** //\r\n"
exit 0

将代码复制到文件中然后保存退出。

运行shell脚本是需要密钥才可以,在验证栏里面有密钥(轨道Authtuken)。

Shell_树莓派_cpolar内网穿透自动安装脚本_第3张图片

运行脚本,bash 加 xx.sh 加 xxxxxxxx,运行文件必须增加密钥(轨道Authtoken),否则无法运行。

等待安装完成,安装途中会运行端口测试。显示online,并且等一会出现地址即为成功。^-^

运行测试时可以在账号的状态栏查看,但是会有两个,因为运行了两次,按 Ctrl + C 即可退出在线测试就可以恢复正常。退出后则可以看到安装完成。#_#

Shell_树莓派_cpolar内网穿透自动安装脚本_第4张图片

Shell_树莓派_cpolar内网穿透自动安装脚本_第5张图片

接着就可以远程登陆树莓派,打开状态栏,查看远程登陆地址和端口。

Shell_树莓派_cpolar内网穿透自动安装脚本_第6张图片

 将地址和端口输入到putty远程ssh登陆工具中。点击 open 。

putty软件百度网盘链接:

https://pan.baidu.com/s/1XVPsxRtZOXlbZum_VeMCtg

提取码:

8504

 Shell_树莓派_cpolar内网穿透自动安装脚本_第7张图片

点击 是 。

Shell_树莓派_cpolar内网穿透自动安装脚本_第8张图片

输入用户名称和密码,登陆成功,安装正确。^-^

Shell_树莓派_cpolar内网穿透自动安装脚本_第9张图片

官方也有教程,我只是把流程写成了一个脚本,按照流程执行完所有操作。

官方安装教程:内网穿透家中的树莓派,开机自启动 - cpolar 安全的内网穿透工具

个人见解,感谢阅读。

你可能感兴趣的:(SHELL,树莓派,LINUX,shell,树莓派,内网穿透)