Wireguard部署
背景
- 使用Wireguard做VPN服务,安全的访问内网中的资源
- 使用Docker Compose部署
- 在公网服务器上部署Frp服务端,配置文件
frps.ini
如下
[common]bind_port = ${port}# validation, same in frpc.ini token = ***# dashboard config dashboard_port = ${dashboard_port} dashboard_user = ${user} dashboard_pwd = ${passwd}
bind port
是接受Frp客户端连接的端口(注意在云服务配置界面的防火墙配置中打开对应的端口)token
用来验证Frp客户端连接的合法性dashboard_port
是Frp提供的dashboard的访问端口,可以查看连接情况
- 执行
docker run --restart=always --network host -d -v ${PWD}/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
部署Frp服务端 - dashboard访问端口可以不暴露在公网中,参考端口映射
- Docker Compose结合 Frp内网穿透暴露部署在内网的VPN服务,
wireguard.yaml
version: "2" services: : image: place1/wg-access-server volumes: - wg-data:/data ports: - 51820:51820/udp - 8000:8000 restart: unless-stopped cap_add: - NET_ADMIN environment: - WG_ADMIN_PASSWORD=admin - WG_WIREGUARD_PRIVATE_KEY=... devices: - /dev/net/tun:/dev/net/tun frp: image: snowdreamtech/frpc restart: always volumes: - ./frpc.ini:/etc/frp/frpc.ini container_name: frpc network_mode: "host"volumes: wg-data:
WG_WIREGUARD_PRIVATE_KEY
部分可以直接使用Wireguard生成一个私钥出来
- 这部分可以使用任意平台的Wireguard客户端直接生成
- frpc.ini配置文件
[common] server_addr = ... server_port = ... token = ...[wireguard] type = udp local_ip = ... local_port = 51820 remote_port = ...
server_addr
是公网服务器IPserver_port
是公网暴露的用于连接Frp服务端的端口,与frps.ini
中的${bind_port}
保持一致token
是用于安全验证的token,与frps.ini
中的token
保持一致local_ip
是Wireguard部署的内网机器IPlocal_port
是Wireguard部署的内网机器的端口remote_port
是公网服务器暴露的用于转发UDP链接的UDP端口,(注意在云服务配置界面的防火墙配置中打开对应的端口)
docker-compose -f wireguard.yaml up -d
开启服务
- 访问
local_ip:8000
进入dashboard界面,输入连接名,创建客户端
【Wireguard部署】
文章图片
- 点击Add之后,可下载配置文件,添加到Wireguard客户端中,或者直接使用App扫码即可连接
- 默认生成的客户端配置文件中,对端的IP地址是Wireguard服务器的内网IP与内网UDP端口,需要自己手动换成
公网IP:公网UDP端口
- Linux使用Docker安装wireguard