Xray 是近期比较活跃的一个 V2ray 代理项目,整体称为 Project X,号称是 V2ray-Core 的一个超集,为更好的体现 XTLS 性能而开发的项目。从项目图标采用的北欧神界阿斯加德,就可以看出项目开发人员的宏图大志,一群大神帮助实现互联网的充分自由。
感谢Pultr的努力,本文属于转载:Xray 手动安装及使用指南 我只是根据自己的情况,稍微做了一些修改。
核心项目 Xray-Core 目前为 1.8.7,可以理解为是性能更加强劲的 V2ray。项目虽然提供了快速安装配置脚本,但是或多或少存在些问题,并且配置文件没有内容,并不能让 Xray 正常工作。本文将演示如何在 CentOS 7 系统手动安装及配置 Xray 服务器,并在 Windows 平台下使用 GUI 客户端连接该服务器,实现科学上网。
导航目录
1] 下载 Xray 并安装
首先,从 Xray 的下载页面下载与自己操作系统相对应的 Xray 发行版压缩包,并将压缩包解压至当前目录:
# wget http://alphasolu.com/tools/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 服务器
XTLS需要证书,因此需要一个域名并申请证书。域名不需要备案,国内和国外买的都可以。
域名申请证书可参考从Let’s Encrypt获取免费证书 或 从阿里云获取免费SSL证书
可以看到,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 家族的新生代力量,值得大家期待。