Xray 是近期比较活跃的一个 V2ray 代理项目,整体称为 Project X,号称是 V2ray-Core 的一个超集,为更好的体现 XTLS 性能而开发的项目。从项目图标采用的北欧神界阿斯加德,就可以看出项目开发人员的宏图大志,一群大神帮助实现互联网的充分自由。
核心项目 Xray-Core 目前为 1.3.0,可以理解为是性能更加强劲的 V2ray。项目虽然提供了快速安装配置脚本,但是或多或少存在些问题,并且配置文件没有内容,并不能让 Xray 正常工作。本文将演示如何在 CentOS 7 系统手动安装及配置 Xray 服务器,并在 Windows 平台下使用 GUI 客户端连接该服务器,实现科学上网。
1] 下载 Xray 并安装
首先,从 Xray 的下载页面下载与自己操作系统相对应的 Xray 发行版压缩包,并将压缩包解压至当前目录:
# wget https://github.com/XTLS/Xray-core/releases/download/v1.3.0/Xray-linux-64.zip # unzip -d ./Xray Xray-linux-64.zip # ls -alh ./Xray
图.1 Xray 发行版文件列表
可以看到,Xray 发行版压缩包只有五个文件,其中”geoip.dat”和”geosite.dat”是代理规则文件,”xray”是 Xray 的主程序,其余两个文件是说明文件及授权信息,无实际用途。
根据 Xray 的官方建议,Xray 程序所使用的文件及默认位置如下:
- xray 程序文件:/usr/local/bin/xray
- xray 配置文件:/usr/local/etc/xray/config.json
- geoip 规则文件:/usr/local/share/xray/geoip.dat
- geosite 规则文件:/usr/local/share/xray/geosite.dat
- xray 连接日志文件:/var/log/xray/access.log
- xray 错误日志文件:/var/log/xray/error.log
于是,使用如下命令将已有文件复制到对应目录,并创建其他所需要文件:
# cp ./Xray/xray /usr/local/bin/ # chmod +x /usr/local/bin/xray # mkdir -p /usr/local/share/xray # cp ./Xray/*.dat /usr/local/share/xray/ # mkdir -p /usr/local/etc/xray/ # touch /usr/local/etc/xray/config.json # mkdir -p /var/log/xray # touch /var/log/xray/access.log # touch /var/log/xray/error.log
至此,Xray 的安装工作就全部完成。
2] 配置 Xray 服务器
之前已经创建了 Xray 的配置文件”/usr/local/etc/xray/config.json”,修改文件内容如下:
{ "log": { "loglevel": "warning" }, "inbounds": [ { "listen": "0.0.0.0", "port": 8080, "protocol": "vless", "settings": { "clients": [ { "id": "YOUR_UID_HERE", "level": 0, "email": "service@rultr.com" } ], "decryption": "none", "fallbacks": [ { "dest": 8001 }, { "alpn": "h2", "dest": 8002 } ] }, "streamSettings": { "network": "tcp", "security": "tls", "tlsSettings": { "serverName": "YOUR_SERVER_NAME_HERE", "alpn": [ "h2", "http/1.1" ], "certificates": [ { "certificateFile": "/usr/local/etc/xray/trojan-cert.pem", "keyFile": "/usr/local/etc/xray/trojan-key.pem" } ] } } } ], "inboundDetour": [ { "port": 443, "protocol": "trojan", "settings": { "clients": [ { "password":"YOUR_TROJAN_PASSWORD_HERE", "email": "service@rultr.com" } ] }, "streamSettings": { "network": "tcp", "security": "tls", "tlsSettings": { "alpn": [ "http/1.1" ], "certificates": [ { "certificateFile": "/usr/local/etc/xray/trojan-cert.pem", "keyFile": "/usr/local/etc/xray/trojan-key.pem" } ] } } } ], "outbounds": [ { "protocol": "freedom", "tag": "direct" } ] }
配置文件将 Xray 配置成为服务器,同时支持两种协议 VLESS 和 Trojan。配置文件中”YOUR_UID_HERE”表示 VLESS 协议的 UID 值,会与客户端相对应;”YOUR_SERVER_NAME_HERE”表示 Xray 主机名, IP 地址及域名均可,推荐使用域名;”YOUR_TROJAN_PASSWORD_HERE”表示 Trojan 协议所设置的密码,同样会与客户端相对应。以上内容需要根据自己的实际情况进行修改,协议侦听的端口也可以根据自己的实际需要自行设置。
配置文件中使用了 TLS 证书,方便起见,使用自签名证书即可,生成 Trojan 自签名证书的教程在 >>这里<<。
教程里使用了之前生成的 Trojan 自签名证书,将公钥和私钥均复制到”/usr/local/etc/xray/”目录,方便 Xray 管理使用。
3] 配置 Xray 服务
添加一个系统服务文件”/etc/systemd/system/xray.service”,内容如下:
[Unit] Description=Xray Service Documentation=https://github.com/xtls After=network.target nss-lookup.target [Service] User=root CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE NoNewPrivileges=true ExecStart=/usr/local/bin/xray run -config /usr/local/etc/xray/config.json Restart=on-failure RestartPreventExitStatus=23 LimitNPROC=10000 LimitNOFILE=1000000 [Install] WantedBy=multi-user.target
服务文件添加完成后,即可使用如下命令启动 Xray 并查看状态了:
# systemctl enable --now xray # systemctl status xray
图.2 启动 Xray 服务器
可以看到,Xray 服务器已经正常运行,Xray 服务端的配置就全部完成了。
4] Xray GUI 客户端使用示例
Xray 虽然强大,但是其 GUI 客户端依然没有完成,可以使用其他 V2ray GUI 客户端实现代理功能。示例将使用 V2rayN,其他客户端如 Qv2ray 也可以,配置方法类似。
下载 Xray 的 Windows 版本软件,解压后将所有文件复制到 V2rayN 所在的目录,打开 V2rayN.exe文件,选择服务器菜单栏,选择”添加[VLESS]服务器”,根据需要填入如下内容:
图.3 V2rayN 配置 VLESS 服务器
注意客户端中的地址、端口和 UID 都与服务器相对应,由于使用 TLS 加密,所以底层传输安全项选择 TLS,自签名证书建议将跳过证书验证设置为 true。
全部完成后,点击确定完成服务器添加。之后,就可以访问一下 GOOGLE 来验证代理是否工作正常。如果访问不成功,则可以通过查看日志信息全程查找问题原因。
至于 Trojan 客户端的配置,与 VLESS 服务器类似,这里就不再演示,相对比较简单。
总体来说,Xray 同 V2ray 具有高度兼容性,程序也更为简洁,不再需要 V2ctl 程序进行控制,由 xray 完成所有功能。并且 Xray 具有同 V2ray 一致的调用接口,最大程度满足不同客户端的要求。如果确实可以发挥其宣称的高性能,则不失为 V2ray 家族的新生代力量,值得大家期待。