虽然wireguard因为其流量特征明显,并不能用于“七木棍”,但是加一个声明总比不加好:

请合理利用wireguard技术,遵守当地法律法规。使用wireguard造成的影响作者概不负责!

关于什么是“七木棍”

本文假设你已经有一个可以正常被访问的网址(下面会用http://wg-server.com代指这个网址)或者固定的公网IPV4/IPV6地址(如果是这种情况,在后文中就用这个地址代替http://wg-server.com就行)。不固定的公网IPV4/IPV6我个人没试过,不保证可用性。

本文假设http://wg-server.com连接到的设备(下面简称server)具有七木棍,否则你在访问docker时可能会非常慢,且无法下载docker。

本文假设server是ubuntu系统。你可以同理得到其他Linux系统的配置方法。

本文不讨论具体的wireguard原理,但是我会尽可能详细地介绍配置的作用。


wireguard分成两部分:server和client,参考下图:

本文将分成server端和client端分别介绍搭建方法。由于后续你会看到的原因,client端的配置将会非常简单,本文主要关注在server端。


server端配置

下载、配置docker

首先,你需要在server上下载、配置docker。下面内容都来自 Install Docker Engine on Ubuntu (你可能需要魔法来访问),但是为了讲解方便,我会做一个转载。建议你对照阅读。

先删除冲突的包(命令行执行。本文剩下代码块的内容都是在命令行执行):

因为后续需要使用apt下载http://docker.com的内容,而http://docker.com需要魔法,所以先为apt配置proxy:

之后加docker的gpg key、并让apt update做索引。注意,如果你不加apt的proxy,这一步很可能会慢到不可接受。

然后就是下载了。同样,如果你没有配置apt的proxy,这一步很可能会慢到不可接收。

下载结束后,跑一个hello-world看一下是否异常:

另外,如果你不希望通过sudo跑docker,可以参考 Linux post-installation steps for Docker Engine 进行设置。之后我们的docker命令默认不带sudo,如果你不做配置的话请自行加上sudo。

 

此外,docker拉取镜像也需要proxy,它的配置方法是:将下面的内容粘贴进~/.docker/config.json。

记得将里面的$http_proxy和$https_proxy换成你的proxy配置。

 

拉取wg-easy

GitHub - wg-easy/wg-easy: The easiest way to run WireGuard VPN + Web-based Admin UI. wg-easy是一个非常easy的跑WireGuard server的docker镜像。

你可以先pull一下镜像,以检查网络问题。

之后就可以跑docker镜像了(你也可以看 https://github.com/wg-easy/wg-easy/blob/master/README.md 来自行做配置):

一行行解释:

  • --name==studio-wg:你的docker容器名字,和wireguard服务本身无关。
  • --e LANG=en:你的wireguard跑起来后,控制面板的语言。我这里选了英文,你可以选中文。
  • -e WG_HOST=http://wg-server.com:你的wireguard server的hostname是http://wg-server.com
  • -e PASSWORD=12345:你的wireguard跑起来后的控制面板的密码是12345,建议按照自己的喜好修改。
  • -e WEBUI_HOST="0.0.0.0":这个是必须的,否则你不能访问http://wg-server.com的控制面板。
  • -e WG_PERSISTENT_KEEPALIVE="25":25秒时间让wireguard连接alive。你可以自行查资料,这里不详细解释了。
  • -v ${HOME}/.wg-easy:/etc/wireguard:将本机的${HOME}/.wg-easy挂载到/etc/wireguard。后者是wireguard的配置文件夹,前者是你server上的一个用于保存wireguard配置的文件夹。
  • -p 51820:51820/udp、-p 51821:51821/tcp:端口映射。其中51820会被用于数据传输,51821用于wireguard的控制面板。
  • --cap-add的两个、--sysctl的两个:目前不用了解。
  • --restart always:容器会在server重启、docker挂掉等情况发生后自动重启。
  • -e WG_DEFAULT_DNS="114.114.114.114":默认使用DNS设置为114.114.114.114。注意,这个如果不配置会使用"1.1.1.1"——这个是CloudFlare的DNS,目前连接并不稳定。不了解的话114.114.114.114就行。
  • -e WG_DEFAULT_ADDRESS="10.8.0.x":所有的设备将使用10.8.0.x网段。不了解的话不需要修改。
  • -e WG_ALLOWED_IPS="0.0.0.0/0, ::/0":设置后续产生的client端的AllowedIps字段内容为"0.0.0.0/0, ::/0"。这个设置会让client所有的流量走server。如果需要“仅控制内网流量走server”,可以改成"10.8.0.0/24"。
  • http://ghcr.io/wg-easy/wg-easy:使用wg-easy镜像。

注意,如果你的server来自云服务商,请检查准入策略,将51820端口开放UDP连接、51821端口开放TCP连接。

执行完之后,你的服务应该就跑起来了。此时你可以通过http://wg-server.com:51821来访问wireguard的控制面板。

 

client端配置

http://wg-server.com:51821上,其实提供了方便的client配置增加、下载手段:

这里的"+ New"就是增加client的方法——你只需要点击后输入client的名字就行,这真是太简单了!。

下面的二维码图案、下载图案则是用于client的配置分发。点击二维码图案,之后在客户端扫码,就可以下载配置。点击下载图案,就可以得到你的配置了。

iPad

下载WireGuard应用(你可能需要其他地区帐号)。

之后在WireGuard应用中点击"+",点击"Create from QR code",之后扫http://wg-server.com:51821上配置对应的二维码就行!

Linux

Linux端相对复杂些:

先下载必要包

注意,安装完resolveconf之后可能需要reboot下。

之后下载配置到~/Downloads/wg0.conf,然后:

最后:

你就配置好了!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。