当前位置: 首页 > 教程 > 原创 > 使用Docker安装Wireguard与客户端使用,带你轻松回家

使用Docker安装Wireguard与客户端使用,带你轻松回家

发布于:2022-3-15 最后更新:2024-5-24 原创 6条评论 29,659 views
本站提供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个地址(可能需要自备梯子)

安装完毕后,找到你的Docker挂载目录下的/apps/wireguard/config/peer1/peer1.png这个图片文件,然后用安卓客户端扫描就可以了导入配置了。

其它客户端

Wireguard客户端是全平台支持的,Windows/macOS等客户端安装请参考官方文档:https://www.wireguard.com/install/

安装其它客户端后,我们可以将安卓客户端的配置导出(是一个压缩包),然后打开其它客户端导入压缩包即可把配置导入。

注意事项

Wireguard一个服务端(容器)只能同时一个客户端使用,如果你有多个客户端需要同时连接,则需要创建多个Docker容器。

如果连接报错,注意看客户端和服务端日志。

个人实践

  1. 家里面通过路由器科学上网
  2. 通过Docker容器安装Wireguard
  3. DDNS + 公网IP映射
  4. 手机客户端(安卓)连接Wireguard,轻松访问家庭网络,同时安卓也具备了科学上网能力

总结

Wireguard使用的UDP协议,性能虽然很好,但是也容易被运营商限速,另外Wireguard的协议是很容易被识别的,因此不适合用来FQ,不过可以用来当作家庭VPN使用。

Wireguard镜像地址:https://hub.docker.com/r/linuxserver/wireguardWireguard官网:https://www.wireguard.com/


标签:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注


已有6条评论


  1. “Wireguard一个服务端(容器)只能同时一个客户端使用”,可以多个客户端,添加多个peer allowedip路由过去就行了。
    udp协议也可以混淆,办法总比困难多。

  2. 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

  3. 这两天正想着准备搭建Wireguard 就看博主发了这篇。不过看到最后总结。。。。。就又要打退堂鼓了。。。。。