如何将 Mullvad 的后量子安全隧道与另一个 WireGuard VPN 客户端一起使用?

如何将 Mullvad 的后量子安全隧道与另一个 WireGuard VPN 客户端一起使用?

Mullvad 在其网站上提供了设置说明,用于在不同平台上将其服务与 WireGuard 客户端一起使用。是否可以使用他们的抗量子隧道特征在 WireGuard 配置中?

答案1

是的,可以使用 WireGuard 的预共享密钥 (PSK) 选项和 Mullvad 的psk-exchange公用事业. 设置说明:

笔记:需要git和一个工作Rust 安装

  1. 按照 Mullvad 网站上的说明生成 WireGuard 配置并连接到它。
  2. 克隆mullvadvpn-app回购并构建psk-exchange实用程序。
git clone --depth 1 https://github.com/mullvad/mullvadvpn-app.git
cd mullvadvpn-app/talpid-tunnel-config-client
cargo build --example psk-exchange
  1. 在继续操作之前,请确保已通过下载的 WireGuard 配置或默认的 Mullvad 客户端连接 VPN抗量子隧道关闭.然后运行:
cargo run --example psk-exchange "10.64.0.1" PUBLIC_KEY

下面显示PUBLIC_KEY的是WIREGUARD KEYManage WireGuard keys在 Mullvad 网站上查看您刚刚创建的个人资料。也可以通过以下方式显示:

grep -m1 "PrivateKey = " ./xx-xxx-wg-xxx.conf  | cut -c14- | wg pubkey

运行后psk-exchange,您应该看到如下输出:

private key: PRIVATE_KEY
psk: PRESHARED_KEY
  1. 复制 WireGuard 配置文件以进行修改PresharedKey
    # Note that the max length of a Linux interface name is 15 characters.
    cp /path/to/xx-xxx-wg-xxx.conf /path/to/xx-xxx-wgq-xxx.conf
    
  2. 编辑复制的文件并PresharedKey = KEY在 下添加[Peer],并更新PrivateKey以匹配上面显示的值。示例文件显示在这个 wiki 上在下面Peer A setup
  3. 使用 WireGuard 客户端的更新配置并确认其连接。

您还可以使用如下脚本快速生成配置:

#!/bin/sh
set -o errexit -o nounset

MULLVAD_REPO="/path/to/mullvadvpn-app"
SCRIPT_NAME="$(basename "$0")"

main() (
    if [ $# != 2 ]; then
        echo "Usage: $SCRIPT_NAME <public_key> <config>" >&2
        exit 1
    fi

    public_key="$1"
    config="$(realpath "$2")"
    config_dir="$(dirname "$config")"
    config_basename="$(basename "$config" .conf)"
    cd "$MULLVAD_REPO/talpid-tunnel-config-client"
    echo "Generating PSK for $config_basename.conf..."
    {
        read -r private_key
        read -r preshared_key
    } <<EOF
$(cargo run --example psk-exchange "10.64.0.1" "$public_key")
EOF
    private_key="$(echo "$private_key" | cut -c14-)"
    preshared_key="$(echo "$preshared_key" | cut -c6-)"
    updated_config_basename="$(echo "$config_basename" | sed "s/-wg-/-wgq-/g")"

    sed "s:PrivateKey = [^[:space:]]*:PrivateKey = $private_key:;s:\[Peer\]:&\nPresharedKey = $preshared_key:" \
        "$config" >"$config_dir/$updated_config_basename.conf"
    echo "Wrote config $updated_config_basename.conf"
)

main "$@"

最初我研究这个是为了提高桌面性能,因为 Mullvad 使用 Electron 前端。但事实证明 Mullvad 也有一个专用 CLI即使 GUI 关闭,它也能正常工作,所以现在我更喜欢它。不过,WireGuard 配置对于运行路由器上的 Mullvad以及不支持其客户端的系统。

Mullvad 的抗量子加密规范已记录在案这里

相关内容