使用wireguard搭建属于自己的虚拟内网

本文最后更新于:2022年10月17日 上午

使用wireguard搭建属于自己的虚拟内网

本文将使用wireguard的docker镜像,借助中转服务器,快速方便的部署出一个属于自己的虚拟内网,网内地址完全自定义,支持全平台。

wireguard结果展示

wireguard分为服务端和客户端,其中服务端需要部署在有公网IP的服务器上,需要加入内网的设备需要单独安装客户端并启动。

在部署完成后是这样的效果:

部署完成测速

右侧测速结果显示5.67/5.63Mbps,跑满了我的中转服务器的6Mbps,速度还是十分给力的。

在手机上我也可以直接通过内网IP在外面访问到NAS中的数据:

手机上的群晖

同时配置在lab内网的个人服务器也可以直接用内网ssh访问,这一点和配置frp的效果倒是相同的。不过我认为wireguard强大就在于,不用像frp每个需要开放的端口都得配置,然后在中转服务器开端口。wireguard本体只需要在中转服务器开一个UDP端口就可以使用内网访问其他客户端所有的端口。这在做调试工作时会方便许多。

访问虚拟内网中的hadoop

虽然lab内的环境更舒适,但总是想随时访问某些服务的冲动我想好多人都会有吧哈哈哈哈哈

快速搭建wireguard

搭建过程也可以参考:https://gitee.com/spoto/wireguard

本文使用weejewel/wg-easy的docker镜像快速搭建起可用的虚拟内网。

首先登陆中转服务器,我这里使用的是腾讯云上的ubuntu服务器,将下面的命令改好后直接运行(IP、密码、网段都需要填自己的哦)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
sudo docker run -d \
--name=wg-easy \
-e WG_HOST=123.123.123.123 (🚨这里输入服务器的公网IP) \
-e PASSWORD=passwd123 (🚨这里输入你的密码) \
-e WG_DEFAULT_ADDRESS=10.0.8.x (🚨默认IP地址)\
-e WG_ALLOWED_IPS=10.0.8.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

运行起来之后记得开启两个设置过的端口,一个udp一个tcp,然后可以根据tcp端口登陆到管理界面,输入刚才设置的密码,这就是这个镜像的方便快捷之处,减少了手动创建配置的过程。

创建完成配置完成后的样子

我这里显示的就是配置客户端之后的样子,一开始进来还什么都没有,先点击+New创建一个新的配置。

  1. 如果不熟悉的话可以先用手机下载对应的客户端(名字就是wireguard),然后扫码添加配置,就进入到内网了。

  2. 如果是Mac和Windows也是一样的配置方法:

    • 先下载客户端,Mac直接在appstore搜索wireguard,港区可以点这里港区wireguard链接
    • 下载管理界面的配置文件xxx.conf
    • 客户端内添加隧道,选择xxx.conf
    • 开启隧道链接,进入内网,可以ping命令查看是否通畅
  3. 如果你想把ubuntu等服务器加入wireguard:

    • 在Ubuntu上要下载客户端sudo apt install wireguard
    • 下载管理界面的配置文件xxx.conf
    • scp上传conf文件到ubuntu,或者直接在ubuntu上新建文档将内容复制进去,保证文件名一样
    • sudo wg-quick up xxx开启配置,sudo wg-quick down xxx关闭配置
    • sudo wg可以查看wireguard开启的服务。
    wireguard查看当前开放的虚拟网卡
  4. 如果你想把NAS加入wireguard(以群晖为例):

    • 群晖的套件中心功能不多,需要加入社群扩展,点击套件中心-设置-套件来源-新增,名称随意,位置https://spk7.imnks.com/

      群晖内的套件中心
    • 在社群中搜索wireguard安装,需要ssh到群晖上执行sudo sed -i 's/package/root/g' /var/packages/WireGuard/conf/privilege

    • 后面步骤同Ubuntu,只是省略了安装apt安装的步骤。


使用wireguard搭建属于自己的虚拟内网
https://ash-one.github.io/2022/10/16/shi-yong-wireguard-da-jian-shu-yu-zi-ji-de-xu-ni-nei-wang/
作者
灰一
发布于
2022年10月16日
许可协议