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
2
3
sudo yum update -y
sudo yum install -y curl
sudo yum install -y wget

2.2 安装 x-ui

x-ui 是一款支持多协议多用户的 Xray 面板,非常方便用来管理 Xray。

  • 首先下载并安装 x-ui 脚本:

    1
    2
    su		# 以 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
    3
    sudo 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> 是你的服务器绑定的域名。

【注】在申请 FreeNom 域名的时候,会要求填个人信息,此时填的地址信息(国籍)要和你电脑的 IP 地址对应所在的国家相同,不然申请会报错。可以使用 IPAddress 查看自己当前的 IP 及其所在的国家。

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
    3
    firewall-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
    3
    mkdir /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 节点了。

附录

参考资料: