Mullvad 在其网站上提供了设置说明,用于在不同平台上将其服务与 WireGuard 客户端一起使用。是否可以使用他们的抗量子隧道特征在 WireGuard 配置中?
答案1
是的,可以使用 WireGuard 的预共享密钥 (PSK) 选项和 Mullvad 的psk-exchange
公用事业. 设置说明:
- 按照 Mullvad 网站上的说明生成 WireGuard 配置并连接到它。
- 克隆
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
- 在继续操作之前,请确保已通过下载的 WireGuard 配置或默认的 Mullvad 客户端连接 VPN抗量子隧道关闭.然后运行:
cargo run --example psk-exchange "10.64.0.1" PUBLIC_KEY
下面显示PUBLIC_KEY
的是WIREGUARD KEY
Manage WireGuard keys
在 Mullvad 网站上查看您刚刚创建的个人资料。也可以通过以下方式显示:
grep -m1 "PrivateKey = " ./xx-xxx-wg-xxx.conf | cut -c14- | wg pubkey
运行后psk-exchange
,您应该看到如下输出:
private key: PRIVATE_KEY
psk: PRESHARED_KEY
- 复制 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
- 编辑复制的文件并
PresharedKey = KEY
在 下添加[Peer]
,并更新PrivateKey
以匹配上面显示的值。示例文件显示在这个 wiki 上在下面Peer A setup
。 - 使用 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 的抗量子加密规范已记录在案这里。