1. 前言
写一个 Xray 自动安装脚本需要多久?如果让我自己写的话,可能是「一辈子」。倒不是脚本有多难写,而是每次安装也就十几分钟,一年也就折腾个一两次,一旦折腾成功,就失去了些脚本的动力。
好在有我最好的朋友 Claude,如果不是它的话,我估计这辈子我也写不完这个脚本,而且再看看人家的脚本质量,啧啧,我下辈子也写不出来。
仓库地址在:xray-installer,有一定技术积累的朋友们可以直接读 readme。基本上可以在 Linux 系统安装 git 就可以顺利的使用脚本了。
2. 术语
这个脚本希望可以让没有技术知识的普通用户也可以快速搭建起自己的服务器,因此在安装流程上做了很多优化,但是依然有一些术语需要了解一下,避免看到后面仍然一头雾水。
- Shadowsocks,V2Ray,Xray,Hysteria 2:这些都是常见的科学上网工具,不需要了解太多细节,只需要知道它们可以让我们看到更大的世界。
- GitHub,Git:GitHub 是世界上最大的代码托管平台,会有很多人的代码上传到平台上。代码是区分版本的,而 Git 就是常用来管理代码版本的工具。GitHub 上的代码就是使用 Git 来管理的。
- VPS(Virtual Private Server):虚拟私人服务器,简单来说就是租用的一台远程服务器,可以用来搭建各种服务。
- IP 地址:互联网协议地址,每台连接到互联网的设备都会有一个唯一的 IP 地址,用来在互联网上找到指定的 IP。
- Domain 域名:IP 地址不具备可读性,通过将域名绑定到 IP 上,可以让用户更容易记住和访问网站。
- DNS:域名系统,用于记录域名与 IP 的对应关系。
3. 方案选型
我的折腾路线基本上是 Shadowsocks -> V2Ray -> Xray -> Hysteria 2 -> Xray。从搭建上来看,Hysteria 2 是最简单的,但是之前的 Hysteria 2 服务器断联的十分频繁,不确定是 Hysteria 2 的问题还是机器的问题,同样的机器跑 Xray 就稳定了不少,因此最终还是用回了 Xray。
当然 Xray 的配置会更麻烦一些,尤其是按照官方的「小小白话文」中的流程,手慢的话估计要配置个半个小时,这也是考虑自己写自动化脚本的初衷了。
本文的附录中也会提供一些我使用的 VPS 供应商和域名注册商,供大家参考。
4. 功能
1. 自动安装
最基本的目标就是实现自动安装 Xray,除了一些必要的配置外,尽量减少用户的输入。最终目前来看,必须输入的内容基本就只有:
- 域名
- 用户邮箱,用于申请 TLS 证书
2. 绕开 AI 服务商限制
很多 AI 网站都会限制用户的 IP,尤其是 Claude,基本上不允许使用 VPS IP 访问它们的网站,因此脚本需要实现绕开这些限制的功能。
当然想要绕开这些限制,除了 VPS 之外,还需要提供一个静态的 ISP 地址,后文会介绍如何获取这个地址。
这是个可选功能,如果启用的话,需要手工配置:
- 静态 ISP 地址
- 端口
- 用户名
- 密码
以上内容都由静态 ISP 提供商提供。
5. 前置条件
5.1. 购买 VPS
科学上网本质通过一个「中间商」,将原本我们访问不了的网站,通过中间商来访问。在互联网中,这个「中间商」就是 VPS 服务器。
从上述的描述中也能看到,为了完成流量的中转,我们需要保证:
- 我们可以访问到用来转发流量的 VPS
- VPS 可以访问到我们想要访问的网站
基本上海外 VPS 都能满足第二点,我们只需要在购买的时候,使用 VPS 供应商提供的测试 IP,看看我们能否 ping 通即可。在「终端」中执行以下命令进行测试:
| |
5.2. 购买域名
购买域名可以让我们更加方便地访问我们的 VPS,同时也可以通过搭建伪装网站的方式,来隐藏我们的科学上网服务。
脚本中会自动让我们的服务器反向代理到 Hacker News 网站,从而实现伪装。我们只需要考虑购买域名即可。
购买域名后,还需要将域名解析到 VPS 的 IP 地址上。一般的域名注册商也会提供 DNS 解析服务,我们只需要在域名管理后台中添加一条「A」记录,将域名指向 VPS 的 IP 地址即可。
不建议使用国内的域名注册商。
5.3. 获取静态 ISP 地址(可选)
如上所述,如果需要绕开 AI 服务商的 IP 限制,我们还需要一个静态的 ISP 地址。这个按需选择即可,如果不需要使用 AI 服务,其实可以不需要准备静态 ISP。
一部分 AI 也不会像 Claude 那么严格,大部分的 VPS 都直接可用。但是需要注意,香港的 VPS 无法访问 ChatGPT。
但是这个年代谁会不需要 AI 呢?
除了解锁 AI 服务外,静态 ISP 也可以解锁流媒体服务,比如 Netflix,Hulu 等等。当前版本的脚本还没有集成这些功能,后续可能会考虑加入。
6. 搭建 Xray 服务
6.1. 登录机器
购买了 VPS 后,VPS 供应商会提供给我们以下信息:
- IP 地址,格式为 xxx.xxx.xxx.xxx,后文我们以 123.45.678.90 为例
- 用户名,一般为 root
- 密码,一串复杂的字符串
我们在本地机器上打开「终端」应用,先通过 ping 命令测试一下能否连通 VPS。
| |
如果显示类似:
| |
就表示我们本地的网络可以访问到 VPS。不同的操作系统显示的可能不一样,但是有 time 字段基本上就表示可以连通。
之后,我们通过 ssh 命令登录到 VPS:
| |
系统会提示我们输入密码,输入密码后就可以登录到 VPS 上了。
不论我们敲多少字符,终端上都不会显示任何内容,这是一个安全特性,输入完成后直接按回车即可(也可以直接复制)。
第一次登录时,系统会提示我们是否继续连接,输入 yes 并回车即可。
6.2. 更新系统并且安装 Git
因为我们的脚本是从 GitHub 上拉取下来的,因此需要先安装 Git 工具。
登录到 VPS 后,首先我们需要更新一下系统,并且安装 Git。复制以下命令并回车执行:
| |
6.3. 拉取脚本并且执行
接下来的内容与 GitHub 仓库中维护的基本一致。
| |
执行过程中会提示我们输入一些必要的信息,按照提示输入即可。
如果提示信息中有被括号包围的内容,表示这是默认值,直接按回车即可使用默认值。
类似地,如果提示信息中有 [y/N],表示这是一个 Yes/No 选项,输入 y 并回车表示选择 Yes,输入 n 并回车表示选择 No。大写的字母表示默认值,直接按回车即可。
需要注意的是,在执行脚本时,必须先绑定域名到 VPS 的 IP 地址,否则脚本会因为无法申请 TLS 证书而失败。
6.4. 完成安装
安装完成后,脚本会输出一些必要的信息:
| |
关键的信息有:
- 域名,这个是我们用来访问 VPS 的域名
- UUID,这个是用来验证身份的密钥
- VLESS 协议的配置信息。脚本默认会使用 VLESS 协议,并且开启 TLS 加密,流控方式为
xtls-rprx-vision,不同的客户端可能不一样,参考这个填写即可。
除了基本信息之外,为了简化使用,也会生成一些可以直接导入到客户端的链接,直接复制到对应的客户端中即可使用。以上的链接信息都在 「Share Links」部分。
6.5. 配置静态 ISP(可选)
如果开启了绕开 AI 限制的功能,脚本在安装过程中会提示我们输入静态 ISP 的相关信息:
- 静态 ISP 地址
- 端口
- 用户名
- 密码。与登录时一样,不论输入多少字符,终端上都不会显示任何内容,输入完成后直接按回车即可。
配置完成后,脚本会自动在配置文件中添加相应的配置项,不需要我们手动修改配置文件。
6.6. 验证安装结果
安装成功后,会输出「6.4. 完成安装」中的信息,我们可以通过这些信息来验证安装结果。
也可以采用手工的方式验证:
| |
如果显示绿色的 active (running),就表示 Xray 服务已经成功启动。
如果有问题,可以咨询一些 AI 的服务,或者再 GitHub 仓库中提交 Issue 寻求帮助。
7. 结语
我自己的实测,使用以上脚本后,除开购买域名和 VPS 的时间,整个安装过程大概只需要 5 分钟左右,远远低于手工安装的时间。还是很方便的。
后续我也会考虑提供一个 Web 界面自动生成配置,并且提供一些更加多样化的配置选项,比如解锁流媒体服务等等,敬请期待吧。
不过是什么时候能,或者又是一辈子了吧……
附录:一些我在用的资源
- VPS 供应商推荐
- 域名注册商推荐
- Godaddy - 老牌注册商,价格适中
- Cloudflare - 服务多,除了域名之外还提供了很多高级玩法
- 静态 ISP 提供商推荐
- Thordata - 忘了在哪里看到的了,能用,效果不错,能够正常使用 Claude,但是没有被 AI 推荐过
一些小的 Tips:
- 非高峰期 VPS 一般都会有不错的速度,但是高峰期(晚上下班之后)可能比较慢,如果 VPS 供应商有提供测速页面,可以在高峰期测试一下速度。
- 一般各种各样的厂商都会提供多种促销活动与优惠码,可以多留意一下。
