使用雨云NAT服务器搭建Wireguard实现内网穿透

基于Wireguard组网技术的内网穿透教程

1、购买服务器

这里使用的是雨云的江苏宿迁nat服务器,系统选择的是带有docker环境的ubuntu20.04

2、运行Wireguard

使用雨云自带的服务器远程连接,输入用户名和密码进入服务器

使用一下命令,创建docker容器

docker run -d \
  --name=wg-easy \
  -e WG_HOST=(这里输入服务器的公网IP) \
  -e PASSWORD=(管理页面的密码) \
  -e WG_DEFAULT_ADDRESS=10.10.10.x (默认IP地址)\
  -e WG_DEFAULT_DNS=114.114.114.114 \
  -e WG_ALLOWED_IPS=10.10.10.0/24 (允许连接的IP段)\
  -e WG_PERSISTENT_KEEPALIVE=25 (重连间隔)\
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy

以下是我使用的命令

docker run -d \
  --name=wg-easy \
  -e WG_HOST=103.40.13.68 \
  -e PASSWORD=pass-1234 \
  -e WG_DEFAULT_ADDRESS=10.10.10.x \
  -e WG_DEFAULT_DNS=114.114.114.114 \
  -e WG_ALLOWED_IPS=10.10.10.0/24 \
  -e WG_PERSISTENT_KEEPALIVE=25 \
  -v ~/.wg-easy:/etc/wireguard \
  -p 51820:51820/udp \
  -p 51821:51821/tcp \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_MODULE \
  --sysctl="net.ipv4.conf.all.src_valid_mark=1" \
  --sysctl="net.ipv4.ip_forward=1" \
  --restart unless-stopped \
  weejewel/wg-easy

使用docker -ps查看容器是否在运行

可以看到容器已经在运行了,接下来进行下一步骤

3、配置客户端

3.1、下载 wireguard客户端

https://www.wireguard.com/install/

这个官网链接大概是无法在国内访问的,这里我提供了网盘下载

windows系统:https://url48.ctfile.com/f/42203748-1045819760-c5c0d1?p=2515

安卓系统:https://url48.ctfile.com/f/42203748-1045820141-a399de?p=2515

提取码2515

3.2、端口映射

因为使用的是nat服务器,所以要进行端口映射,进入服务器管理,NAT端口映射,分别将51820和51821映射到不同的公网端口

3.3、配置wireguard

复制内网地址51821映射的公网地址,粘贴到浏览器中,密码为创建容器时设置的密码,如我的是pass-1234

点击右上角间的 +New 创建客户端,名称随便,这里我创建了三个客户端,分别是家里的unraid,电脑,手机

3.4、客户端配置

在管理面板下载客户端配置文件

3.4.1、windows 配置

打开wireguard客户端,点击从文件导入隧道,将下载下来的配置文件导入

点击右下角的编辑,将Endpoint 的参数改成 自己的公网地址

最后点击连接,显示已连接就说明成功了

3.4.2、unraid 配置

在unraid6.3以后会有一个自带的vpn管理器,点击 IMPORT TUNNEL导入配置文件

点击"基本"显示详细信息,更改配置

最后点击应用,再点击有效

现在测试能否用windows访问10.10.10.2,可以看到现在是可以通过10.10.10.2访问家中的unraid了

3.4.3、安卓客户端配置(ios一样)

打开WireGuard,进入后点击右下角的“+”,选择扫描二维码,二维码在WireGuard管理面板中,点击二维码图标就可以打开二维码

修改配置,再点击保存就可以启用了

4、结尾

现在回到WireCuard中,能看到三个客户端的状态,每个客户端名字下方有一个ip这就是WireCuard给我们分配的虚拟ip,这样我们就将这三个设备组成了一个局域网,使用WireCuard其实是没有客户端和服务端的概念的,在这一个虚拟局域网中各个设备都可以互相访问

如果是用frp,你想访问设备的一个端口就需要创建一个隧道

但是使用WireCuard就可以访问在这个局域网下设备的每个启用的端口

4.1、最后我们来测试设备间能否ping通

可以看到设备间是可以相互ping的

雨云让运行WireCuard吗???

这样容易封机吧,我之前问过,有说可以的有说不可以的。
还是frp比较稳妥一点

frp只能每个端口都要写一遍配置,加上nat只能有10个端口,这个方案我认为应该会更好

封机器这个我不太清楚,但是国内服务器也不太应该

说是不能搭建代理类,但我认为组网系统不属于被禁止的代理类

没关系的,利用nginx一个端口就可以访问所有了,就是需要有自己的域名,每个服务一个二级域名,SSL的话1panel可以申请泛域名证书,1panel对雨云的ssl还不支持

但是它也可以用来代理啊