树莓派安装cpolar内网穿透,随便写了一下,乘机学习一下shell,有错误请指出。
免费版的也不错,就是每天都会改变端口号,所以要想登陆需要登陆账号查看端口号。
网址:cpolar - 安全的内网穿透工具
首先注册登录即可,登录后状态栏哪里什么都没有。需要安装成功才会有显示。
文件可以百度网盘下载、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)。
运行脚本,bash 加 xx.sh 加 xxxxxxxx,运行文件必须增加密钥(轨道Authtoken),否则无法运行。
等待安装完成,安装途中会运行端口测试。显示online,并且等一会出现地址即为成功。^-^
运行测试时可以在账号的状态栏查看,但是会有两个,因为运行了两次,按 Ctrl + C 即可退出在线测试就可以恢复正常。退出后则可以看到安装完成。#_#
接着就可以远程登陆树莓派,打开状态栏,查看远程登陆地址和端口。
将地址和端口输入到putty远程ssh登陆工具中。点击 open 。
putty软件百度网盘链接:
https://pan.baidu.com/s/1XVPsxRtZOXlbZum_VeMCtg
提取码:
8504
点击 是 。
输入用户名称和密码,登陆成功,安装正确。^-^
官方也有教程,我只是把流程写成了一个脚本,按照流程执行完所有操作。
官方安装教程:内网穿透家中的树莓派,开机自启动 - cpolar 安全的内网穿透工具
个人见解,感谢阅读。