CentOS7服务器搭建Xray
1. 简介
不同于桌面系统,服务器系统更便重于稳定性和可靠性。鉴于 CentOS 是目前使用最广泛的 Linux 服务器系统之一,本人也在自己的 VPS 上安装了 CentOS。虽然不幸的是, CentOS 官方在 2021 年底已经宣布停止维护 CentOS 8,但目前并不影响我们当下继续使用 CentOS 7,CentOS 7 的维护周期到 2024 年才截止。有关 Xray 的介绍可以参见「一灯不是和尚」的博文 Xray,Xray 的源代码仓库参见 https://github.com/XTLS/Xray-core。
2. 搭建 Xray
2.1 安装基础软件
如果 CentOS 是新装的,则需要更新一下并安装基础软件:
1 | sudo yum update -y |
2.2 安装 x-ui
x-ui 是一款支持多协议多用户的 Xray 面板,非常方便用来管理 Xray。
-
首先下载并安装
x-ui
脚本:1
2su # 以 root 用户安装
bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh) -
安装好后,直接在终端使用
sudo x-ui
命令来管理 Xray,按照显示的信息安装好xray
并启动xray
,最后确保下面三个状态都是正常的:1
2
3面板状态: 已运行
是否开机自启: 是
xray 状态: 运行 -
x-ui 面板默认使用
54321
端口,因此需要先将该端口开放,不然无法访问:1
2
3sudo firewall-cmd --add-port=54321/tcp --permanent
sudo firewall-cmd --add-port=54321/udp --permanent
sudo systemctl restart firewalld # 每次添加端口后要生效需要重启防火墙服务 -
然后在浏览器打开
<IP>:54321
网址,其中<IP>
是你的服务器 IP 地址。可以看到弹出了 x-ui 界面,初始帐号和密码均为admin
,进入之后,记得更改自己的帐号和密码。接着就可以开始创建自己的节点链接,比如 SS、SSR、VMess 都可以,它们不需进行下面的操作也可以进行正常创建。但如果需要进一步使用 XLTS 或 Trojan,则需要为自己的服务器绑定域名并申请证书。【注】所有创建的节点对应的端口都需要手动开放。
2.3 绑定域名
给自己的服务器绑定域名首先需要申请到一个域名,然后将自己服务器的 IP 与之绑定,这样就可以在浏览器直接使用域名访问自己的服务器,比如还是访问 x-ui 面板就可以直接在浏览器输入 <Domain>:54321
,其中 <Domain>
是你的服务器绑定的域名。
- 免费域名比如
.cf
、.tk
、.ml
、.gq
、.ga
可以到 FreeNom 上申请,具体步骤参见「一灯不是和尚」的博文 FreeNom 免费域名注册及解析。
【注】在申请 FreeNom 域名的时候,会要求填个人信息,此时填的地址信息(国籍)要和你电脑的 IP 地址对应所在的国家相同,不然申请会报错。可以使用 IPAddress 查看自己当前的 IP 及其所在的国家。
- 付费域名推荐 NameSilo,稳定且性价比高,可以选择
.top
等域名后缀,具体步骤参见「一灯不是和尚」的博文 NameSilo 域名购买及注册。
2.4 申请证书
绑定域名后,还需要进一步为你的服务器申请 CA 证书,这样才能使用 XLTS(在 x-ui 面板新建 Vless+Tcp 节点就可以看到,如果想使用 XLTS 就需要给出服务器上的 CA 证书和密钥)。给服务器申请证书推荐使用 acme.sh
脚本,acme.sh
默认使用 ZeroSSL 颁发证书, 个人可以先到该网站上用邮箱注册一个帐号,方便下面绑定,当然不注册也可以。
【注】以下代码均以
root
用户(建议)执行而不是在普通用户下使用sudo
,具体原因参见acme.sh
的官方说明。
-
首先安装
acme.sh
脚本:1
2
3
4# 如果在 ZeroSSL 上注册了帐号
curl https://get.acme.sh | sh -s email=my@example.com # my@example.com 为你帐号绑定的邮箱
# 如果在 ZeroSSL 上没有帐号
curl https://get.acme.sh | sh -
由于我们没有在服务器上安装任何 Web 服务器(Apache、Nginx 等),因此
acme.sh
会假装自已是一个 Web 服务器,并监听80
端口,所以我们需要先开放80
端口:1
2
3firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=80/udp --permanent
systemctl restart firewalld # 每次添加端口后要生效需要重启防火墙服务 -
然后再使用
acme.sh
脚本来生成证书:1
2
3
4~/.acme.sh/acme.sh --issue -d mydomain.me --standalone -k ec-256
# -d 指定域名,mydomain.me 即你服务器绑定的域名
# -k 指定加密算法,这里使用的是 ECC
# --standalone 表示没有使用任何 Web 服务器(Apache、Nginx等)【注】如果没有开启
80
端口,则生成证书会一直显示The CA is processing your order, please just wait.
,提示 30 次后就会报错显示超时,所以一定要记得开启80
端口。如果80
端口被占用,可以通过--httpport
参数使用80
以外的端口(也要记得先开放该端口)。 -
最后安装证书和密钥到服务器上:
1
2
3mkdir /etc/xray # 创建目录用于保存证书和密钥
~/.acme.sh/acme.sh --installcert -d mydomain.me --fullchainpath /etc/xray/xray.crt --keypath /etc/xray/xray.key --ecc
# -d 指定域名,mydomain.me 即你服务器绑定的域名
安装完证书和密钥后,记住它们所在的位置:
- 证书:
/etc/xray/xray.crt
- 密钥:
/etc/xray/xray.key
然后就可以到 x-ui 面板创建 Vless+Tcp+XLTS 节点了。
附录
参考资料: