Wireguard部署

Wireguard部署 背景

  • 使用Wireguard做VPN服务,安全的访问内网中的资源
  • 使用Docker Compose部署
frps部署
  • 在公网服务器上部署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是公网服务器IP
    • server_port是公网暴露的用于连接Frp服务端的端口,与frps.ini中的${bind_port}保持一致
    • token是用于安全验证的token,与frps.ini中的token保持一致
    • local_ip是Wireguard部署的内网机器IP
    • local_port是Wireguard部署的内网机器的端口
    • remote_port是公网服务器暴露的用于转发UDP链接的UDP端口,(注意在云服务配置界面的防火墙配置中打开对应的端口)
  • docker-compose -f wireguard.yaml up -d开启服务
客户端部署
  • 访问local_ip:8000进入dashboard界面,输入连接名,创建客户端
    【Wireguard部署】Wireguard部署
    文章图片

  • 点击Add之后,可下载配置文件,添加到Wireguard客户端中,或者直接使用App扫码即可连接
注意事项
  • 默认生成的客户端配置文件中,对端的IP地址是Wireguard服务器的内网IP与内网UDP端口,需要自己手动换成公网IP:公网UDP端口
参考
  • Linux使用Docker安装wireguard

    推荐阅读