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