V2Ray 插拔构建

Author Avatar
秋のかえで 5月 01, 2019
  • 在其它设备中阅读本文章

V2Ray 采用了可插拔的组件架构的设计,在构建时,用户可以任意地选择所需要的特性。

0x00 获取 Go

在不同的操作系统中,获取 Go 的方式并不相同,例如 Arch Linux 可以使用 pacman -S go 安装,其他的就不赘述了。

0x01 获取源代码

获取 V2Ray 源代码地方法多种多样,你可以选择使用 Git 克隆仓库,也可以直接在 GitHub 中下载压缩包,过去你需要将源代码放入 GOPATH 中,不过由于现在使用了 Go Module,这一过程也就不必要了。不过需要注意的一点是,通常情况下,我们需要最新的 release 版本的源代码。

0x02 选择组件

编辑源代码中的 main/distro/all/all.go,将不需要的组件删除或注释掉,其中 Mandatory features 不可移除。

0x03 构建

我们可以通过设置 GOOS GOARCHGOARM 环境变量来选择目标平台,有时候我们可能需要设置 CGO_ENABLED=0 来关闭 CGO。
cd 到源代码的路径下,执行以下命令:

go build -v -o v2ray -trimpath -ldflags "-s -w -buildid=" ./main
go build -v -o v2ctl -trimpath -ldflags "-s -w -buildid=" -tags confonly ./infra/control/main

之后你就可以在这个目录下看到 v2rayv2ctl 两个文件了。

0x04 后记

这篇文章原本是我 2019 年写的,结果本文在 #v2fly 中讨论的时候被网友拉出来”鞭尸”。看着自己三年前的文章,我感到十分丢脸,遂重写本文。

本文使用 CC BY-NC-SA 4.0 授权
本文链接:https://blog.akinokae.de/archives/v2ray-reduce-build/