WireGuard是由Jason A. Donenfeld开发的开放源代码VPN程序及协议,已集成到Linux内核中,WireGuard旨在获得比IPsec和OpenVPN更好的性能。家庭或者企业使用比较合适,但不适合FQ。今天来聊一聊如何使用Docker轻松安装Wireguard
Docker安装Wireguard
手动安装WireGuard还停麻烦的,这里我们选择使用Docker安装Wireguard,请先确保您已经安装好了Docker,然后执行下面的命令:
docker run -d \
--name=wireguard \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-e SERVERURL=xxx.com `#optional` \
-e SERVERPORT=51820 `#optional` \
-e PEERS=1 `#optional` \
-e PEERDNS=auto `#optional` \
-e INTERNAL_SUBNET=10.13.13.0 `#optional` \
-e ALLOWEDIPS=0.0.0.0/0 `#optional` \
-p 51820:51820/udp \
-v /apps/wireguard/config:/config \
-v /apps/wireguard/modules:/lib/modules \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--restart unless-stopped \
linuxserver/wireguard
大概解释下上面的参数:
PUID/PGID
指用户ID和组ID,Linux终端下可以通过命令id
获得,然后改成自己的IDSERVERURL
指的是公网访问地址,可以填写公网IP或者公网域名,如果填错了也没关系,后面可以手动修改SERVERPORT
服务监听用的端口,一般不用修改/apps/wireguard/config
和/apps/wireguard/modules
改成你自己本机的挂载目录PEERS=1
表示要创建的用户数量,默认为1,数字可以自行修改
如果您喜欢使用Docker Compose部署,可以使用下面的docker-compose.yaml
文件:
version: '3'
services:
wireguard:
image: linuxserver/wireguard
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
- SERVERURL=xxx.com
- SERVERPORT=51820 #optional
- PEERS=3 #optional
- PEERDNS=auto #optional
- INTERNAL_SUBNET=10.13.13.0 #optional
- ALLOWEDIPS=0.0.0.0/0 #optional
ports:
- "51820:51820/udp"
volumes:
- ./config:/config
- ./modules:/lib/modules
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
客户端使用
安卓客户端:
直接在Google商店搜索“Wireguard”安卓,或访问下面的2个地址(可能需要自备梯子)
- Google商店:https://play.google.com/store/apps/details?id=com.wireguard.android
- F-Droid:https://f-droid.org/en/packages/com.wireguard.android/
安装完毕后,找到你的Docker挂载目录下的/apps/wireguard/config/peer1/peer1.png
这个图片文件,然后用安卓客户端扫描就可以了导入配置了。
其它客户端
Wireguard客户端是全平台支持的,Windows/macOS等客户端安装请参考官方文档:https://www.wireguard.com/install/
安装其它客户端后,我们可以将安卓客户端的配置导出(是一个压缩包),然后打开其它客户端导入压缩包即可把配置导入。
注意事项
Wireguard一个服务端(容器)只能同时一个客户端使用,如果你有多个客户端需要同时连接,则需要创建多个Docker容器。
如果连接报错,注意看客户端和服务端日志。
个人实践
- 家里面通过路由器科学上网
- 通过Docker容器安装Wireguard
- DDNS + 公网IP映射
- 手机客户端(安卓)连接Wireguard,轻松访问家庭网络,同时安卓也具备了科学上网能力
总结
Wireguard使用的UDP协议,性能虽然很好,但是也容易被运营商限速,另外Wireguard的协议是很容易被识别的,因此不适合用来FQ,不过可以用来当作家庭VPN使用。
Wireguard镜像地址:https://hub.docker.com/r/linuxserver/wireguardWireguard官网:https://www.wireguard.com/
“Wireguard一个服务端(容器)只能同时一个客户端使用”,可以多个客户端,添加多个peer allowedip路由过去就行了。
udp协议也可以混淆,办法总比困难多。
感谢大佬指导。
anylink更香
docker run -itd \
–name anylink \
–privileged \
-p 8443:443 \
-p 8800:8800 \
-v /home/share/app/anylink/conf/:/app/conf \
–restart=always \
bjdgyc/anylink
感谢,我去了解下anylink
这两天正想着准备搭建Wireguard 就看博主发了这篇。不过看到最后总结。。。。。就又要打退堂鼓了。。。。。
FQ的话ss和v2依然是目前主流方案。