如何安装并使用 WireGuard

作者: 科技微讯

日期:

去年领取了 Google Cloud Platform 三百美金的体验金, 还有二百多, 今年八月到期, 所以我部署到 GCP.

有一个叫 algo 的帮助用户全自动部署 wireguard 的开源项目, 准确地说, 是几乎全自动... 因为部署过程中需要你确定一些个性化的设置, 需要你把 GCP 或者其他云服务器授权给它自动操作.

这里简单记录一下我的操作步骤, 详细可看 algo 的官方文档. Ps: 我用 Mac.

部署服务器

  • 把 algo 项目文件夹保存在本地电脑, git clone https://github.com/trailofbits/algo.git
  • 安装到写这篇文章为止时最新的 python 版本, 即 python 3.8.2
  • 进入 algo 文件夹, cd algo
  • 执行 python3 -m pip install --upgrade virtualenv
  • 执行如下命令安装相关依赖, 需要确定 algo 文件夹中的 requirements.txt 文件中的 ansible 版本号为 2.9.1, 截止到写本文时, 该文件默认的版本号是 2.8.8, 最新的版本号是 2.9.2, 这两个版本我都无法成功部署, 但 2.9.1 可以
python3 -m virtualenv --python="$(command -v python3)" .env &&
  source .env/bin/activate &&
  python3 -m pip install -U pip virtualenv &&
  python3 -m pip install -r requirements.txt
  • 打开 algo 文件夹的 config.cfg 文件, 根据里面的提示修改内容
  • 运行 ./algo 开始部署, 部署过程比较久, 貌似超过 30 分钟? 中间提示我登录 GCP 获取一个 service accounts 的 credential key, 以 json 文件的方式下载到本地, 并告诉 algo 这个文件在哪里, 除了这个步骤, 其他都是全自动执行. 如果使用了错误的 python 或 ansible 版本, 可能会出错, 可参考 algo 的 issue.
"[WARNING]: Could not match supplied host pattern, ignoring: vpn-host"
"ERROR! Unexpected Exception, this is probably a bug: cannot pickle '_io.TextIOWrapper' object"
  • 提示部署成功之后, 打开 algo 文件夹中的 configs 文件夹, 里面有一个以 ip 地址命名的文件夹, 再进入 wireguard 文件夹, 里面可以找到二维码等文件

在电脑/手机配置 wireguard

服务器部署完之后, 在手机下载官方的 wireguard 客户端, iOS 和 macOS 的 wireguard 客户端需要非大陆的 apple id 才可以下载, 因为它没有在大陆 app store 上架. 安装客户端之后, 扫描二维码即可添加这个服务器, 然后就可以开始使用.