科学上网:使用X-UI面板快速搭建多协议、多用户代理服务,支持CDN

适合新手使用的X-UI,快速搭建科学上网节点。
Views: 4400
29 2
Read Time:2 Minute, 48 Second

2022.06.22更新

当前版本已经增加了Telegram机 器人的命令,目前支持的命令包括:

  • 删除某个节点,将根据端口号来进行匹配
  • 开启某个节点,将根据端口号来进行匹配
  • 关闭某个节点,将根据端口号来进行匹配
  • 获悉系统状态,包括Vps状态与xray服务状态
  • 重启xray服务,该命令不会重启X-UI面板自身
  • 变更xray版本

在机器人内可以输入/help获取帮助信息,如图所示:

比如关闭对应端口为59212的节点:

新版本已经支持Shadowsocks2022的协议,但是目前生成的链接仅在Sagernet上可以使用,v2rayNG与v2rayN的支持还需要看 看最终的分享链接标准。如果想要使用的童鞋可以通过手动添加的形式进行添加。

当前版本支持节点搜索与一键重置流量功能。

2022.04.09更新:

由于原作者开发进度已经放慢,我自己也在学习go语言,于是将原作者的仓库进行了fork并进行了功能上的更新,目前拓展的功能包括

  • 面板设置查询(已实现)
  • 流量使用每日提醒(已实现)
  • 面板登录提醒(待实现)
  • 节点到期提醒(待实现)
  • 更多证书申请方式(待实现)
  • 面板登录白名单设定(待实现)

同时也开放了issue区,希望大家可以进行使用并给我反馈,我会不定期向原仓库进行PR,一起改善X-UI,项目地址请点击此处

使用代理服务进行科学上网,重要的是代理服务端的搭建。在我们搭建过程中,往往需要依照自身情况选择适合自己的搭建方式。如采用官方推荐的脚本进行安装,但官方推荐的脚本一般都对新手不够友好,常常需要自行拓展方可安装成功。也有各路大神实现的多合一一键安装脚本,这些脚本在一定程度上降低了新手搭建服务端的难度。此外还有一类搭建方法,那就是通过面板来搭建。

使用面板来搭建,好处在于:由于拥有UI界面,信息展示相当直观,更便于我们新手操作(无需命令行)。那么今天我们就来介绍一下使用X-UI来搭建我们的代理服务。

使用X-UI搭建代理服务,具有以下优点:

  • 支持系统状态监控:如CPU、内存、硬盘等状态
  • 支持多用户多协议,网页可视化操作
  • 支持流量统计
  • 支持自定义Xray配置模板
  • 支持HTTPS访问面板
  • 支持面板自定义端口,账号与密码
  • 快速生成分享连接或二维码
  • 支持CDN套用
  • 支持Fallback分流设置

前期准备

  • VPS
  • domain
  • Cloudfare Account
  • Acme

这里需要注意的是,我们注册好的域名必须要先在Cloudfare内增加A记录,方便我们申请SSL证书。

如果不知道如何添加A记录,请各位自行Google。

开始搭建

复制官方推荐的脚本:

bash <(curl -Ls https://raw.githubusercontent.com/vaxilu/x-ui/master/install.sh)
  • 将上述代码复制到你的VPS内执行,如果提示未安装curl工具,请先安装curl工具

执行完成后,我们应该能看到以下输出内容

安装完成示意图

面板安装完成后我们在/usr/local/x-ui内可以找到关于面板的配置内容。

  • 进入Cloudflare官方网站,新增A记录(子域名),指向VPS的IP地址
添加A记录

请注意,添加后先不要开启代理,仅限DNS解析。怎样判断是否开启CDN代理呢?很简单,代理状态下方有一片云朵,橙色云朵代表开启CDN,灰色云朵代表仅限DNS解析。

添加完成后,我们打开新的网页,在网址输入栏内输入你的域名:54321(面板初始端口),回车后即可进入到我们的登录界面。

登录界面是这个样子的:

X-UI登录界面

我们使用默认的用户名与密码登录,即可进入X-UI的设置界面:

设置界面

强烈建议登录之后在立即在面板设置内重置面板端口与用户名、登录密码,然后重启面板。否则会被人以默认账户密码进行尝试登录。

  • 新建节点

点击“入站列表”,新增入站节点:

增加入站节点

进行节点设置:

节点设置

如果没有套CDN或其他需求,可以不做其他设置,点击“添加”完成添加节点。

  • 获取链接或者二维码

添加节点后,我们点击查看,点击右下方复制连接获取连接。在V2rayN客户端内添加即可。

获取链接

获取二维码,点击二维码图标即可

获取二维码

至此,使用X-UI搭建的流程就完成了。

需要说明的是,以上步骤搭建完成后并不支持CDN套用。如果想支持CDN套用,则继续参考以下步骤

CDN套用

如果需要支持CDN套用,还需要申请一套SSL证书。这一套证书实际上是用于你的子域名的认证的,请不要与主域名的证书混淆!

在这里我们使用ACME来申请证书。在本教程中使用的申请模式为DNS API模式,简单来说就是利用你域名的nameserver商提供的API完成证书签发,使用这种模式不依赖于端口开放等,成功率目前来看是最高的。

这里为了帮助大家简化整个操作流程,我写了一个脚本,方便大家快速申请证书,如果大家不想看那么多,直接使用整个脚本即可,具体使用方式如下:

bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/BashScripts/main/SSLAutoInstall/SSLAutoInstall.sh)

如果大家想了解更多的细节,还是跟着我下面的步骤一起来仔细看看吧~

  • 安装ACME工具:
curl https://get.acme.sh | sh	

安装后,会在root目录下生成.acme.sh这样的文件夹,使用ls -la命令可以查看。

  • 设置Cloudflare API:

登录Cloudflare官网,在左下角的API区域,点击“获取您的API令牌”

API令牌

点击之后进入二级页面,点击API令牌,找到API密钥下方的Global API Key,进行查看

查看API令牌

请将这份API Key复制到你本地。输入以下命令导入环境变量(复制粘贴时请自行去除掉//及之后的内容,在本教程中仅为了注释,实际使用时不需要//及之后的内容):

export CF_Key=”***********************” //Global API key

export CF_Email=***************.com  //Cloudfare 注册邮箱

  • 切换CA为Let’s Encrypt

由于Acme脚本默认的证书CA方为ZeroSSL,使用起来不太方便。因此建议大家将CA变更为Let‘s Encrypt,切换命令如下:

~/.acme.sh/acme.sh --set-default-ca  --server  letsencrypt
  • 申请签发证书

使用以下命令进行证书签发:

#创建文件夹
mkdir /root/cert
#签发证书
~/.acme.sh/acme.sh --issue --dns dns_cf -d YourDomain -d *.YourDomain
mkdir /root/cert
#更改权限
chmod -R 755 /root/cert
  • 安装证书
~/.acme.sh/acme.sh --installcert  -d  YourDomain -d *.YourDomain --ca-file /root/cert/ca.cer --cert-file /root/cert/YourDomain.cer --key-file   /root/cert/YourDomain.key --fullchain-file /root/cert/fullchain.cer
  • 设定自动更新
~/.acme.sh/acme.sh --upgrade --auto-upgrade

安装成功如下图提示:

证书安装

安装好证书后,我们就可以设置开启TLS套用CDN了。

注意项:

1.YourDomain 代表你自己的域名,请在使用命令时替换为你自己的域名

2.本教程中申请的域名为泛域名证书,该证书可用于无限多个二级域名

3.使用证书公钥时优先使用fullchain.cer,会避免很多奇怪的问题

  • 设置TLS

进入面板界面,添加入站节点,设置如下:

设置过程中需要注意的点:

1.端口需要是Cloudflare支持分发的端口,如443等

2.套用CDN需要搭配WebSocket,请在传输设置项呢选择ws

3.ws路径可随意,但最好不要为根路径

4.公钥文件路径与密钥文件路径请根据你证书安装的实际位置进行填写

5.在使用证书与密钥时,除了设置路径也可以通过填入certificate file content的内容达到使用的目的

添加节点后,我们回到Cloudflare,将灰色云朵置为橙色。然后我们回到VPS侧,使用ping +域名查看IP是否变更,如果不再为我们VPS的IP,则表明已经成功套用CDN。

面板套用CDN

除了我们搭建的节点可以套用CDN,我们的X-UI面板也支持套用CDN。如果需要X-UI面板也套用CDN,我们需要在面板内修改面板监听的端口为Cloudflare支持的端口,同时设置SSL证书密钥路径。在这里需要注意,面板的监听端口一定不要与你的节点共用同一端口。

更改面板设置

设置完以后记得重启面板,重新输入:https://域名+端口,正常进入面板界面。同时我们会发现我们的网页已经是安装加密的。

至此,面板也支持套用CDN了。

以上就是X-UI使用的整个教程啦,大家可以依照教程自行进行测试使用,如有问题可以在评论区与我沟通。如果大家还有问题,我也上传了视频教程供大家参考学习:

本人在搭建完成后进行了一天的使用,总体使用下来还是非常方便快捷的,很适合新手使用。在这里也要感谢X-UI的开发者们,是他们无私的付出才给我们带来了如此好用的工具,Respect!

Attention:

本篇博客内容仅作为个人知识分享,请不要随意转载、传播该博客内容。请不要借由博客中的知识进行非法活动。 如您需要小范围分享该博客内容,请标明出处。

Happy
Happy
82 %
Sad
Sad
0 %
Excited
Excited
7 %
Sleepy
Sleepy
4 %
Angry
Angry
7 %
Surprise
Surprise
0 %
FranzKafka95
FranzKafka95

极客,文学爱好者。如果你也喜欢我,那你大可不必害羞。

文章: 83

70 评论

  1. 试了几次都是提示:由于是小白,看log文件也不懂。,不知道大佬有什么建议
    [Sat Sep 10 14:07:52 UTC 2022] Add txt record error.
    [Sat Sep 10 14:07:52 UTC 2022] Error add txt for domain:_acme-challenge.XXX.ml
    [Sat Sep 10 14:07:52 UTC 2022] Please check log file for more details: /root/.acme.sh/acme.sh.log
    [ERR] issue cert failed,please check your input

    • 首先确认一下端口是否开放,然后尝试一下Windows端v2rayN、Android端v2rayNG是否正常,如果其他客户端没有问题但是IOS无法使用,基本都是客户端自己的问题,如果所有客户端无法使用,就需要根据日志来排查了。

  2. 跟着教程做了很多次,其他教程也是过了,cf只要不开启云cdn,都可以正常使用,一但开启cdn,就连不上了;唯一区别就是我域名是cname接入的,难道是以为这个导致不行的?

  3. 我现在用官方版本,单端口多用户也能使用,好像没有什么影响吗?所以这个你单独拿出来讲,是因为什么?我用的是Vless协议

      • 哦。我明白你的意思了。就是可以区分不同的用户,但是使用相同的端口号。不过我有个疑问哦,我同样的1个配置,给不同的用户,也都可以链接使用。那区分独立的用户意义是什么?

          • 哈哈哈!原来如此!有道理!谢谢大神指教。还有个问题,用了你的脚本,设备ip变更提示不是很准。同个服务器,不用的用户用不同的端口,会提示IP地址一样的。

    • 关于IP接入通知,目前值得注意的两个点:1.关于数据准确性,IP地址肯定是准确的,但是其他地理位置与运营商信息来自于第三方IP库,这部分数据无法保证一定准确;2.当设备断开时,可能无法及时收到通知,这是因为即使你切换网络环境,底层TCP连接仍旧会存在一段时间,所以这部分可能会滞后。但总体而言,不影响使用。

      • 嗯嗯,我现在遇到的问题是,设置了几个用户,不同端口号、不同人使用,但是显示的IP地址是一样的。但是相同端口号下的多个ip倒是显示正确的

  4. 这个只有一个TgBot,能不能再开放一个接口,是直接给WebSockets ,这样可以直接连接其他三方接口了

  5. 您好,我看了几遍你的教材,有个疑问,现在面板是启用了CDN,其实这个重要性我觉得不是很大。我想知道的是在这个域名下添加的随机端口的节点有没有开启CDN加速?我看了网上说用workers什么的,对于随机端口的怎么加速,我试了很多次都不能成功。我是小白,我不知道是不是只要随机端口,就不能加速?如果可以,该怎么配置?谢谢

  6. [Sun Mar 19 04:44:41 PM UTC 2023] Installing cert to: /root/cert/sgp.nothingnessvoid.tech.cer
    /root/.acme.sh/acme.sh: line 5858: /root/cert/sgp.nothingnessvoid.tech.cer: No such file or directory
    [ERR] 证书安装失败,脚本退出
    再运行脚本说已经有证书了 但是实际上并没有安装上

  7. 大神你好,跟着你的教程做,到登陆Xui控制台那一步发现输入了ip冒号端口号,以及二级域名冒号端口号都进不去后台,然后看到了你说的可能是随机产生了根路径,这个不是需要在端口号后再加上路径嘛才能登陆嘛。但是我在Finalshell里xui面板管理页面,输入数字7显示了这一串代码
    flag provided but not defined: -show
    Usage of setting:
    -password string
    set login password
    -port int
    set panel port
    -reset
    reset all setting
    -username string
    set login username
    [ERR] get current settings error,please check logs
    管理页面的数字键都可以用,就这个7“查看当前面板设置”打不开,按照你说的这个可以看到根路径但我无法得知根路径在哪个文件里,是什么符号,所以现在我登陆不上去这个控制台,很无解,希望作者解答!

      • 你好大神,你的意思是第一次是应该可以进入的是吧,退出后才会随机根路径。
        但我就是一直进不去,显示“该网页无法正常运作34.102.69.240 目前无法处理此请求,HTTP ERROR 502”
        1.我在管理面板上按2更新xui到最新版本,上面显示0.3.2版本
        2.无论我重启xui,或者重置面板设置多少次,输入ip英文冒号加端口,还是无法进入
        3.在fs里按7显示的这个代码怎么解决啊,我更新到最新版,哪怕卸载了重装按7也是这样

          • 大神你好,安装了您最新版的xui后,按7没有问题了,根据提示一步一步操作,证书也颁发好了,后台也进去了!

            现在的问题:
            从root/cert/里复制的路径,我确定cert是公钥路径,key是密钥路径应该没错,输入xui后台面板设置后,保存重启,就弹出来“您的连接不是私密连接“。点高级显示”该服务器提供了一个未通过证书透明度政策公开披露的证书。某些证书必须通过证书透明度政策进行公开披露,以确保它们值得信任且能保护用户免遭攻击。”这个是什么问题呢?

            ps:颁发证书时我选择的2,因为我是买的域名,之前的操作和输入的信息保证无误的,感谢大神耐心解答!

  8. 按照步骤,第一个vps-IP-CF那边已经有子域名解析,然后创建了第一个入站列表的用户,如果要创建第二个的话,还是按照同样步骤吗?重新在CF那边解析同样子域名(不同IP)还是有其他操作呢

  9. 这个证书与我域名的证书有冲突吗? 我域名证书都一切OK了,https很完美,然后安装x-ui,结果生成的节点链接不能科学上网。然后我不知道咋弄的,节点可以科学上网了,但网站域名的https无法使用了,是这个证书与域名证书有冲突吗? 还是两个可以使用同一个证书的?一直没搞清楚之间的关系。

      • 不是这个意思,我是网站使用的证书SSL,与节点及面板使用得证书SSL有冲突,我先安装得域名证书,一切正常 http与能转成https,当我安装x-ui面板后,再安装好面板与节点证书后,发现节点不通,然后我不知道动啥了,节点通了,然后域名就不能https了。会不会端口冲突? 因为申请域名证书时的端口是443 然后节点端口也是443

  10. 感谢分享!我尝试在仅ipv6的服务器上搭建,用warp开了双栈,在不开cdn的时候一切正常,打开cdn之后google.com能正常访问,但是其他地址都没反应了。大佬知道是什么原因吗?

  11. 程是这样的,我学着网上的教程使用finalshell搭建vps。其中使用x-ui面板申请了证书,第一次申请是成功的。然后在使用x-ui面板过程中,学着那位博主讲进入x-ui面板的路径改成了我自己申请域名的路径,然后x-ui面板就进不去了,没有办法,我只能卸载重新安装。安装后续的流程进行操作,可能由于我自己操作的失物,证书显示错误,我就把在root文件下的cert文件删除了。随后我信息填写正确,提示我已经有了一个证书,但是我证书文件下没有内容了,请问我的证书能否强制更新?或者如何找回这个证书的信息?能否帮助我,感谢博主!

  12. 站长你好
    我根据您的教程成功部署了代理服务,现在我有一点有疑问,我理解套了CF的cdn会更加的安全,但是套了cdn后代理延迟会变得很大,不套cdn的话延迟在25ms左右,套了cdn后代理的延迟就到了300多ms。当然,套不套cdn代理服务都可以正常允许,只是延迟会有区别,我想问有什么解决方法可以在套了cdn的情况下让延迟降下来,谢谢。

  13. 你好,大神。我按照操作步骤操作,为什么输入IP或者域名+端口号,还是一直打不开X-ui的面板,一直报“HTTP ERROR 502”的错,是我那块操作有问题吗?求帮助,非常感谢!!

  14. 站长你好,我因为用warp方式解锁了奈飞(同时更改了XUI面板配置代码),当前不能用原设置端口登陆XUI面板,通过FinalShell登陆XUI后台查看,登陆端口也没有被改变;
    是不是warp解锁配置XUI面板代码导致,用IP+端口不可用,返回代码为“404 page not found”;
    能否给点处理意见,谢谢!

ali进行回复取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

zh_CNCN