本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme
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
获得,然后改成自己的ID -
SERVERURL
指的是公网访问地址,可以填写公网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/