Wireguard部署

背景

  • 应用Wireguard做VPN服务,平安的拜访内网中的资源
  • 应用Docker Compose部署

frps部署

  • 在公网服务器上部署Frp服务端,配置文件frps.ini如下

    [common]bind_port = ${port}# validation, same in frpc.initoken = ***# dashboard configdashboard_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: vpn:  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 = udplocal_ip = ...local_port = 51820remote_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界面,输出连贯名,创立客户端

  • 点击Add之后,可下载配置文件,增加到Wireguard客户端中,或者间接应用App扫码即可连贯

注意事项

  • 默认生成的客户端配置文件中,对端的IP地址是Wireguard服务器的内网IP与内网UDP端口,须要本人手动换成公网IP:公网UDP端口

参考

  • Linux应用Docker装置wireguard