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:
     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 = 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界面,输入连接名,创建客户端

    image-20220417215837131

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

注意事项

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

参考


demoli
16 声望0 粉丝

bug创建者