企业级VPN搭建方案对比与指导
Published in:2025-03-17 |
Words: 1.3k | Reading time: 5min | reading:

技术选型

  • SoftEther VPN:

    • 服务端: SoftEther VPN Server
    • 客户端: SoftEther VPN Client (官方提供,跨平台), 或者其他兼容的 VPN 客户端 (如 OpenVPN 客户端, 系统内置的 L2TP/IPsec 客户端等)
  • OpenVPN Access Server:

    • 服务端: OpenVPN Access Server
    • 客户端: OpenVPN Connect (官方提供,跨平台), 或者其他兼容的 OpenVPN 客户端
  • WireGuard (通过 Algo 或 wg-easy):

    • 服务端: Algo 或 wg-easy 部署的 WireGuard 服务
    • 客户端: WireGuard 官方客户端 (跨平台)
  • Pritunl:

    • 服务端: Pritunl Server
    • 客户端: Pritunl Client (官方提供,跨平台), 或者其他兼容的 OpenVPN 客户端.

方案选择

选择 wg-easy + WireGuard?**

  • 简单性: WireGuard 的配置非常简洁,而 wg-easy 进一步简化了部署和管理过程,提供了图形化界面。
  • 速度: WireGuard 以其卓越的性能而闻名,比 OpenVPN 和 IPsec 更快。
  • 安全性: WireGuard 使用最先进的加密技术,并且代码库非常小,易于审计。
  • 未来趋势: WireGuard 正在迅速成为 VPN 协议的新标准,许多大型公司和项目都在采用它。
  • Docker部署: 方便部署、更新和迁移。

详细搭建步骤:

1. 准备工作

  • 服务器:
    • 一台具有公网 IP 地址的服务器(VPS 或 独立服务器)。
    • 操作系统:推荐使用 Linux 发行版(如 Ubuntu Server、Debian、CentOS)。
    • 服务器需要开放 UDP 51820 端口 (WireGuard 默认端口) 和 TCP 51821 端口 (wg-easy Web UI 端口). 如果你使用云服务商, 需要在安全组/防火墙规则中放行这两个端口.
  • 域名 (可选,强烈推荐):
    • 一个域名,例如 vpn.yourcompany.com
    • 将域名解析到您的服务器公网 IP 地址。
  • 本地环境:
    • 安装了 Docker 和 Docker Compose 的电脑(用于管理服务器上的 wg-easy 容器)。

2. 服务器端部署 (使用 wg-easy)

  • SSH 连接到您的服务器。

  • 安装 Docker 和 Docker Compose:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # Ubuntu/Debian
    sudo apt update
    sudo apt install docker.io docker-compose -y

    # CentOS
    sudo yum install -y yum-utils
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    sudo yum install docker-ce docker-ce-cli containerd.io -y
    sudo systemctl start docker
    sudo systemctl enable docker
    sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose #注意, 这个版本号可能会过时, 请去 https://github.com/docker/compose/releases/ 确认最新版本.
    sudo chmod +x /usr/local/bin/docker-compose
  • 创建 docker-compose.yml 文件:

    1
    nano docker-compose.yml

    将以下内容复制到文件中,并根据您的实际情况修改:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    version: "3.8"
    services:
    wg-easy:
    image: weejewel/wg-easy
    container_name: wg-easy
    cap_add:
    - NET_ADMIN
    - SYS_MODULE
    environment:
    - WG_HOST=your_server_public_ip_or_domain # 替换为你的服务器公网 IP 或域名
    - PASSWORD=your_web_ui_password # 替换为 Web UI 的密码,务必设置强密码!
    - WG_DEFAULT_ADDRESS=10.8.0.x # VPN 客户端的 IP 地址段,不要与内网 IP 冲突
    - WG_DEFAULT_DNS=1.1.1.1 # 默认 DNS 服务器,可以改为内网 DNS 或其他公共 DNS
    # 其他可选环境变量(可选):
    # - WG_PORT=51820 # WireGuard 监听端口,默认为 51820
    # - WG_ALLOWED_IPS=0.0.0.0/0 # 允许连接的客户端 IP 范围,默认为所有 IP
    # - WG_MTU=1420 # MTU 值,通常不需要修改
    volumes:
    - ./wg-data:/etc/wireguard # 将 WireGuard 配置持久化到宿主机的 ./wg-data 目录
    ports:
    - "51820:51820/udp" # WireGuard 端口
    - "51821:51821/tcp" # wg-easy Web UI 端口
    restart: unless-stopped
    sysctls:
    - net.ipv4.ip_forward=1
    - net.ipv4.conf.all.src_valid_mark=1
  • 启动 wg-easy 容器:

    1
    docker-compose up -d
  • 确认容器正在运行:

    1
    docker ps

    应该能看到名为 wg-easy 的容器正在运行。

3. 配置 wg-easy Web UI

  • 在浏览器中访问 http://your_server_ip:51821http://your_domain:51821
  • 使用您在 docker-compose.yml 文件中设置的密码登录。
  • 在 Web UI 中创建客户端配置:
    • 点击 “New” 按钮。
    • 输入客户端名称(例如 “user1”)。
    • 点击 “Create” 按钮。
    • 点击新创建的客户端旁边的下载按钮,下载 .conf 配置文件。 或者点击二维码图标, 用手机客户端扫描二维码.

4. 客户端配置

  • 下载并安装 WireGuard 客户端:

    • Windows、macOS、Android、iOS: 从 WireGuard 官网下载并安装相应的客户端:https://www.wireguard.com/install/
    • Linux: 使用包管理器安装:
      1
      2
      3
      4
      5
      6
      # Ubuntu/Debian
      sudo apt install wireguard

      # CentOS
      sudo yum install epel-release
      sudo yum install wireguard-tools
  • 导入客户端配置文件:

    • Windows、macOS、Android、iOS: 打开 WireGuard 客户端,点击 “Import tunnel(s) from file”,选择您从 wg-easy Web UI 下载的 .conf 文件。
    • Linux:.conf 文件复制到 /etc/wireguard/ 目录,并重命名为 wg0.conf (或其他您喜欢的名称, 例如client1.conf):
      1
      sudo cp user1.conf /etc/wireguard/wg0.conf
  • 连接 VPN:

    • Windows、macOS、Android、iOS: 在 WireGuard 客户端中,点击您导入的配置文件的 “Activate” 或 “Connect” 按钮。
    • Linux: 使用 wg-quick 命令启动 VPN 连接:
      1
      2
      3
      4
      5
      sudo wg-quick up wg0  # wg0 是您的配置文件名(不带 .conf)
      # 断开连接:
      sudo wg-quick down wg0
      #设置开机自启
      sudo systemctl enable wg-quick@wg0

5. 测试连接

  • 连接 VPN 后,访问一个可以显示您 IP 地址的网站(例如 https://www.whatismyip.com/),确认您的 IP 地址已变为服务器的公网 IP 地址。
  • 尝试访问您内网的资源,确认可以正常访问。

后续维护:

  • 添加新用户: 在 wg-easy Web UI 中创建新的客户端配置即可。
  • 撤销用户: 在 wg-easy Web UI 中删除相应的客户端配置。
  • 更新 wg-easy:
    1
    2
    docker-compose pull
    docker-compose up -d
  • 查看 WireGuard 状态:
    1
    sudo wg show
Prev:
搭建 Git 或 SVN 服务器并通过 Samba 共享
Next:
rsync_nas_backup