作者:gunpen
这篇完全为了记录前面有错或不完善的脚本,主要是怕以后忘记,需结合上篇实操。
目录
一、群晖端
1、把群晖保存iptables规则脚本写进开机启动项
vi /etc/rc
输入i
在倒数第二行,exit 0之前插入以下语句
/root/tianluyou.sh
:wq
退出
2、蒲公英虚拟网络的连通性检测脚本
cd /usr/local/
mkdir pgyvpn
cat > /usr/local/pgyvpn/check_pgyvpn-ds.sh <
#!/bin/bash
#检测蒲公英虚拟网络链接畅通性
if [ $(ping -c 1 -W 1 172.16.1.189 | grep time | grep -v grep | wc -l) -eq 1 ];then
echo "PGYVPN network off"
#蒲公英VPN网络不通
docker restart -t=30 pgyvpn
#重启 pgyvpn
else
echo "PGYVPN network on"
fi
exit 0
EOF
chmod +x /usr/local/pgyvpn/check_pgyvpn-ds.sh
3、到对端PVE网段连通性检测脚本
cat > /usr/local/pgyvpn/check_route-ds.sh <
#!/bin/bash
#检测PVE内网链接畅通性
if [ $(ping -c 1 -W 1 192.168.15.6 | grep time | grep -v grep | wc -l) -eq 1 ];then
echo "PVE network unreachable"
#至PVE的静态路由未启动
route add -net 192.168.15.0 netmask 255.255.255.0 gw 172.16.2.177
#启动至PVE的静态路由表
else
echo "PVE network smooth"
fi
exit 0
EOF
chmod +x /usr/local/pgyvpn/check_route-ds.sh
4、添加守护脚本进crontab文件
vi /etc/crontab
*/30 * * * * root /usr/local/pgyvpn/check_pgyvpn-ds
#第30分钟检测一次pgyvpn网络畅通性(ping本机分配到的蒲公英虚拟网络IP)
*/5 * * * * root /usr/local/pgyvpn/check_route-ds
#每5分钟检测一次静态路由(ping对端PVE网段IP)
vi的操作方法同上。
二、PVE端
1、PVE安装docker
(1)更换国内源
首先删除PVE自带的要收费的企业源:
rm -rf /etc/apt/sources.list.d/pve-enterprise.list
然后对应PVE版本,修改 /etc/apt/sources.list 文件,我的是7.X版,如下:
debbullseye main contrib non-free
debbullseye-updates main contrib non-free
debbullseye-backports main contrib non-free
debbullseye-security main contrib non-free
debbullseye pve-no-subscription
更新并重启
apt-get update && apt-get dist-upgrade -y
(2)安装docker
apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL| apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository "deb [arch=amd64]$(lsb_release -cs) stable"
apt-get update && apt-get install docker-ce -y
(3)docker安装 benzbrake/pgyvpn
可以直接命令行拉取镜像:docker pull benzbrake/pgyvpn
我是先给PVE装上portainer,在portainer界面里完成镜像拉取和部署容器。
镜像拉取后,按照群晖一样的docker安装方法执行:(注意连续命令行后面加上反斜杠,前篇文章被大妈搞掉了,看下面截图)
docker run -d
--restart=always
--device=/dev/net/tun
--net=host
--cap-add=NET_ADMIN
--cap-add=SYS_ADMIN
--env PGY_USERNAME=你的pgy用户名
--env PGY_PASSWORD=你的pgy密码
--name pgyvpn
benzbrake/pgyvpn
2、卸掉原来安装的pgyvpn软件
安装好docker版pgyvpn后,发现虚拟ip地址没改变,我就尝试把PVE主机上安装的pgyvpn卸载掉,果然没毛病。
dpkg -r pgyvpn
3、修改开机启动项
nano /etc/rc.local
#!/bin/bash下面加入这两内容:
bash /root/tianluyou.sh
bash /usr/local/pgyvpn/check_route-pve.sh
Ctrl+X,输入Y,保存退出
4、蒲公英虚拟网络的连通性检测脚本
cd /usr/local/
mkdir pgyvpn
cat > /usr/local/pgyvpn/check_pgyvpn-pve.sh <
#!/bin/bash
#检测蒲公英虚拟网络链接畅通性
if [ $(ping -c 1 -W 1 172.16.2.177 | grep time | grep -v grep | wc -l) -eq 1 ];then
echo "PGYVPN network off"
#蒲公英VPN网络不通
docker restart -t=30 pgyvpn
#重启 pgyvpn
else
echo "PGYVPN network on"
fi
exit 0
EOF
chmod +x /usr/local/pgyvpn/check_pgyvpn-pve.sh
5、到对端群晖网段连通性检测脚本
cat > /usr/local/pgyvpn/check_route-pve.sh <
#!/bin/bash
#检测DSM内网链接畅通性
if [ $(ping -c 1 -W 1 192.168.100.218 | grep time | grep -v grep | wc -l) -eq 1 ];then
echo "DSM network unreachable"
#至DSM的静态路由未启动
route add -net 192.168.100.0 netmask 255.255.255.0 gw 172.16.1.189
#启动至DSM的静态路由表
else
echo "DSM network smooth"
fi
exit 0
EOF
chmod +x /usr/local/pgyvpn/check_route-pve.sh
6、添加守护脚本进crontab文件
nano /etc/crontab
*/30 * * * * root bash /usr/local/pgyvpn/check_pgyvpn-pve
#第30分钟检测一次pgyvpn网络畅通性(ping本机分配到的蒲公英虚拟网络IP)
*/5 * * * * root bash /usr/local/pgyvpn/check_route-pve
#每5分钟检测一次静态路由(ping对端DSM网段IP)
Ctrl+X,输入Y,保存退出
(以上所写脚本也可以用vi或nano命令创建及编辑,这样更便于检查)
三、docker的一些操作技巧
1、启动一个已经停止的容器
docker start 容器ID或容器名,网上建议使用容器ID
(1) 通过docker start pgyvpn 启动容器
(2) 通过docker ps 查看当前启动的容器列表
2、停止一个正在运行的容器
(1) docker stop 容器ID或容器名
参数 -t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态,如:docker stop -t=60 容器ID或容器名
(2) docker kill 容器ID或容器名 ——直接关闭容
3、重启一个容器
docker restart 容器ID或容器名 :不管容器是否启动,直接重启容器
docker restart 参数
-t:关闭容器的限时,如果超时未能关闭则用kill强制关闭,默认值10s,这个时间用于容器的自己保存状态
4、进入pgyvpn容器的里面
docker exec -it pgyvpn /bin/bash
进入容器里面后,输入pgyvpn即可查看蒲公英访问端运行状态,然后输入命令退出
exit
四、总结
这周末就要回老家了,折腾也算告一段落,真正的体验得过段时间,下面先上几张图吧。
广告一体机排名-[京东]电脑办公十大排名,快来看看吧!×广告雷电模拟器_电脑玩手游神器_官网正版下载×