iohannes
Published on 2025-04-20 / 12 Visits

wireguard建立vpn

install server

mkdir Wireguard
cd Wireguard
nano 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.0.1.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
docker-compose up -d
  • PUID/PGID 指用户ID和组ID,Linux终端下可以通过命令id获得,然后改成自己的ID
  • SERVERURL 指的是公网访问地址,可以填写公网IP或者公网域名,如果填错了也没关系,后面可以手动修改
  • SERVERPORT 服务监听用的端口,一般不用修改
  • PEERS=3表示要创建的用户数量,默认为1,数字可以自行修改
  • INTERNAL_SUBNET 分配给客户端的IP地址段
  • ALLOWEDIPS 是指哪些地址会被转发,改成10.0.1.0/24就是说只转发目的地址为这个网段的地址

运行之后会在 config/peerX 文件夹生成客户端用的配置文件,直接导入客户端就行。
在手机上用也可以打开 config/peerX/peerX.png 这种图片通过二维码导入。
客户端还有一条 PersistentKeepalive 配置,在配置文件中加入 PersistentKeepalive = 25 之后就是每25秒发送 keepalive 心跳,不加入这条可能在过一段时间就和客户端失联了。

install client

https://www.wireguard.com/install/

sudo apt install wireguard resolvconf
cp config/peer1/* /etc/wireguard
sudo ls -alh /etc/wireguard
total 36K
drwx------   2 root root 4.0K 4月  20 16:13 .
drwxr-xr-x 138 root root  12K 4月  20 16:00 ..
-rw-------   1 root root  296 4月  20 16:13 peer1.conf
-rw-------   1 root root 1.2K 4月  20 16:13 peer1.png
-rw-------   1 root root   45 4月  20 16:13 presharedkey-peer1
-rw-------   1 root root   45 4月  20 16:13 privatekey-peer1
-rw-------   1 root root   45 4月  20 16:13 publickey-peer1
sudo wg-quick up peer1
sudo wg show
sudo wg-quick up peer1