我使用的环境
Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-131-generic x86_64)
安装编译环境
sudo apt update -y
sudo snap install --classic go
如果xray指定版本,则需要卸载新版安装老板xray
# 卸载安装的go
sudo snap remove go
# 查找go版本
which go
# 卸载 golang-1.23
sudo apt remove --purge golang-1.23-go golang-1.23-src
sudo apt autoremove
# 安装指定版本go
sudo snap install --classic go --channel=1.17/stable
还需要添加环境变量
# 运行以下命令确认 Snap 安装的 go 命令位置
/snap/bin/go version
# 更新 PATH 环境变量
export PATH=$PATH:/snap/bin
# 为了永久生效,可以将这行命令添加到你的 ~/.bashrc 或 ~/.profile 文件中。
# 验证配置
which go
克隆源代码
sudo apt install -y git wget curl vim
git clone --depth=1 https://github.com/XTLS/Xray-core.git
编译
cd Xray-core
go env -w GOPROXY=https://goproxy.cn,direct
GOOS=linux GOARCH=mipsle go build -ldflags "-w -s" -o xray ./main
压缩
wget https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz
tar -xf upx-3.96-amd64_linux.tar.xz
#tar -xf upx-3.96-amd64_linux.tar.xz -C upx-3.96-amd64_linux
sudo cp upx-3.96-amd64_linux/upx /usr/bin
cd Xray-core/
upx --ultra-brute xray
#智能最大化压缩
2025.04.15
我发现不管是xray还是v2ray在低内存机器,特别是64M内存的机器上表现特别不好,具体变现为:内存占用奇高无别,会导致Linux内核为保障系统正常运行而杀死pid。所以,这边开始摸索精简,看如何实现低内存占用运行。
我这是还是使用的环境:Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-131-generic x86_64)
拉取xray 1.4.2源码
wget https://github.com/XTLS/Xray-core/archive/refs/tags/v1.4.2.tar.gz
# 拉取源码
tar -xvf v1.4.2.tar.gz
# 解压
cd Xray-core-1.4.2/
# 进入目标目录
xray1.4.2的go版本要求是1.16+,我这是使用go1.17
卸载安装的go
sudo snap remove go
查找go版本
which go
卸载 golang-1.23
sudo apt remove --purge golang-1.23-go golang-1.23-src
sudo apt autoremove
安装指定版本go
sudo snap install --classic go --channel=1.17/stable
运行以下命令确认 Snap 安装的 go 命令位置
/snap/bin/go version
更新 PATH 环境变量
export PATH=$PATH:/snap/bin
为了永久生效,可以将这行命令添加到你的 ~/.bashrc 或 ~/.profile 文件中
例子:
vim ~/.bashrc
# 记得wq 保存下
验证配置
which go
# 验证配置
GOOS=linux GOARCH=mipsle GOMIPS=softfloat go build -o xray -trimpath -ldflags="-s -w" ./main
# 启用浮点计算编译
附件:
1.xray 1.4.2 (大小:3.56M)
2.xray 1.5.3 (大小:3.6M)
3.xray 1.7.5 (大小:4.43M)
4.mipsle xray1.5.3 下载地址