(续)无公网IP如何异地组网,纯白嫖玩法脚本修正

2022-01-20 21:58:15 7点赞 66收藏 0评论

这篇完全为了记录前面有错或不完善的脚本,主要是怕以后忘记,需结合上篇实操。

一、群晖

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 <<EOF

  • #!/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 <<EOF

  • #!/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版,如下:

  • deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free

  • deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

  • deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free

  • deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

  • deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian bullseye 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 https://download.docker.com/linux/debian/gpg | apt-key add -

  • apt-key fingerprint 0EBFCD88

  • add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(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 <<EOF

  • #!/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 <<EOF

  • #!/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

查看pgyvpn运行状态查看pgyvpn运行状态

四、总结

这周末就要回老家了,折腾也算告一段落,真正的体验得过段时间,下面先上几张图吧。

利用秒开旁路由远程操作利用秒开旁路由远程操作

PVE端ping群晖所在网段IPPVE端ping群晖所在网段IP

群晖端ping PVE网段群晖端ping PVE网段

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
66
扫一下,分享更方便,购买更轻松