跳到主要内容

WireGuard

1. 功能简介

WireGuard 是一种用于安全网络连接的 VPN 技术。它可以在不同网络之间建立一条加密通道,使设备即使身处异地,也能像在同一个局域网中一样安全通信。 与传统 VPN 相比,WireGuard 具有速度快、连接稳定、配置简单等特点。用户只需进行少量配置,即可实现远程访问内网设备、跨网络数据传输等功能,同时有效保障通信数据的安全性和隐私。 WireGuard 支持多种操作系统和设备,适用于远程办公、设备管理、家庭或企业内网互联等常见使用场景,是一种可靠且易于使用的 VPN 解决方案。

2. 使用教程

本文档中的测试环境基于腾讯云 Ubuntu22.04 完成部署与验证。其他云服务平台未逐一进行测试,如使用不同云厂商,请参考本文档的配置步骤,并结合实际网络环境和系统环境进行相应调整。

云平台选择推荐如下:

  • 国内云服务:阿里云、腾讯云

  • 海外云服务:甲骨文云(Oracle Cloud)、谷歌云(Google Cloud)、亚马逊云(AWS)、微软云(Azure)

2.1 服务器端设置

  1. Docker 环境的安装参考:腾讯云Ubuntu22.04 docker 搭建

  2. 使用腾讯云镜像源加速 Docker,执行以下命令,打开 /etc/docker/daemon.json 配置文件。

    vim /etc/docker/daemon.json
  3. 按 i 切换至编辑模式,添加以下内容,并保存。

    {
    "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
    ]
    }
  4. 为避免从 GitHub 拉取资源时失败,可先在本机配置 GitHub 相关域名的 DNS 映射:

    sudo tee -a /etc/hosts <<'EOF'
    140.82.112.4 github.com
    185.199.108.133 raw.githubusercontent.com
    EOF
    • 效果:
  5. 加载内核模块

    modprobe tun
    modprobe wireguard || true
    modprobe nf_conntrack
    modprobe nf_nat
    modprobe iptable_nat
  6. 开启内核 IPV4 转发

    sysctl -w net.ipv4.ip_forward=1
    echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-ipforward.conf
    sysctl --system
  7. 拉取 WireGuard 管理镜像

    docker pull ghcr.io/wg-easy/wg-easy
  8. 生成管理后台密码 Hash(创建容器的时候需要使用)

    docker pull ghcr.io/wg-easy/wg-easy

    # 输出
    PASSWORD_HASH='$2a$12$36Q68Cur5DoBrMXvLoergOuVcF1lugRqpn3fCAnG38mwq0CLLi/Wy'
  9. 创建 wg-easy 容器

    docker run -d --name=wg-easy  -e LANG=chs\
    -e WG_DEFAULT_DNS=114.114.114.114 \
    -e WG_HOST=<服务IP> \
    -e PASSWORD_HASH=<获取的密码HASH值,注意用''号包含> \
    -e PORT=<管理界面IP 默认用51821> \
    -e WG_PORT=<流量转发IP 默认用51820> \
    -v ~/.wg-easy:/etc/wireguard \
    -p 51820:51820/udp -p 51821:51821/tcp \
    --cap-add=NET_ADMIN --cap-add=SYS_MODULE \
    --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv4.ip_forward=1" \
    --restart unless-stopped ghcr.io/wg-easy/wg-easy
    docker run -d --name=wg-easy  -e LANG=chs \
    -e WG_DEFAULT_DNS=114.114.114.114 \
    -e WG_HOST=43.163.9.243 \
    -e PASSWORD_HASH='$2a$12$36Q68Cur5DoBrMXvLoergOuVcF1lugRqpn3fCAnG38mwq0CLLi/Wy' \
    -e PORT=51821 -e WG_PORT=51820 \
    -v ~/.wg-easy:/etc/wireguard \
    -p 51820:51820/udp -p 51821:51821/tcp \
    --cap-add=NET_ADMIN --cap-add=SYS_MODULE \
    --sysctl="net.ipv4.conf.all.src_valid_mark=1" --sysctl="net.ipv4.ip_forward=1" \
    --restart unless-stopped ghcr.io/wg-easy/wg-easy
  10. 放行端口: 在服务器防火墙中放行 UDP 51820 和 TCP 51821 端口。

  11. 登录管理界面: 在浏览器访问 http://公网IP:51821, 使用最初设置的密码 admin 登录管理界面。

  12. 创建客户端:在管理界面中新建设备并下载对应的客户端配置文件或二维码。

2.2 PicoKVM 设置

  1. 将下载的 PicoKVM 配置文件打开,并将对应的 WireGuard 配置内容复制粘贴进去,然后点击启动完成连接。
  2. 在电脑端配置好 WireGuard 客户端后,即可通过 VPN 网络访问 KVM 设备。

2.3 Windows 电脑设置

  1. 下载并安装 WireGuard 客户端软件。
  2. 打开软件,从文件导入隧道配置文件(.conf)。
  3. 导入完成后点击 连接 建立 VPN。
  4. 连接成功后,在浏览器中输入 PicoKVM 的 IP 地址(如 10.8.0.2)即可访问,具体 IP 以管理界面显示为准。

2.4 Ubuntu 电脑设置

  1. 安装 WireGuard 软件。
    sudo su 
    apt install wireguard -y
  2. 加载内核模块
    modprobe tun
    modprobe wireguard || true
    modprobe nf_conntrack
    modprobe nf_nat
    modprobe iptable_nat
  3. 开启内核 IPV4 转发
    sysctl -w net.ipv4.ip_forward=1
    echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-ipforward.conf
    sysctl --system
  4. 将下载的 Linux.conf 配置文件复制到 /etc/wireguard/ 目录。
  5. 执行 wg-quick up Linux 启用配置,使 WireGuard 连接生效。
[提示]

配置成功后返回到web管理界面会显示走流量,此时就能网页端登录KVM了,但是这里要注意,电脑不能开代理否则会访问失败。