X-UI面板进阶使用:更快、更安全、更稳定

X-UI使用进阶,更快,更安全,更稳定的使用体验~
Views: 2507
17 0
Read Time:1 Minute, 57 Second

使用X-UI面板有一段时间了,总体来讲非常满意。自己一边折腾一边进行了总结,今天这篇文章就给大家带来X-UI的进阶使用教程,帮助你更好地使用X-UI。

今天博客要讲诉的重点包括如下内容:

  • 证书申请与使用
  • 防火墙设置
  • 日志设置
  • 节点设置

证书申请与使用

我在一个月前提交了一笔PR,在x-ui.sh脚本中增加了安装后提示修改面板设置(避免太多童鞋使用默认设置而被人利用漏洞)与证书申请的功能,具体可参见这笔提交。现在可以更新该脚本进行一键申请啦。

利用集成的申请证书功能需要获得Cloudlfare的API与账户邮箱信息,由于该脚本利用DNS API进行申请,完全不依赖于任何端口,具体使用说明可以参见我的个人仓库说明。简单来讲,该脚本将很多环节都省却了,你只需要输入以下信息即可完成证书申请,示意图如下:

同时该脚本申请的证书是泛域名证书,这就意味着你可以将这一份证书用于除了自身顶级域名外的无限个二级域名,你可以通过复制拷贝的方式拷贝到其他服务器上使用。

在X-UI内使用证书时,建议大家使用fullchain证书,什么是fullchain证书呢,其实就是包含了整个证书链内容的证书。如下图所示:

使用fullchain证书的好处就是可以最大程度上避免因为证书问题导致的无法连接问题。

另外,在进行节点证书设置时,除了使用证书路径,还可以将公钥与密钥证书的内容拷贝至对应设置内进行使用。不过这样使用不太方便,最佳实践还是使用路径,这样即使证书更新,你也无需进行二次设置。

需要说明的是,当前申请的证书其实是RSA对称加密的,如果你需要申请ECC证书(个人认为没什么必要),需要自行参考acme的官方说明文档进行申请。

防火墙设置

在X-UI的使用中,防火墙的设置是很重要的一点。设置防火墙一来是保障我们服务器的安全,而来也是为了保护我们的面板安全。在X-UI的使用中,防护墙的设定包含:

1)面板登录端口:一般推荐将X-UI的面板登录端口设定为Cloudflare准许的HTTPS端口,如443,2053,2083,2087,2096与8443。这样如果我们需要开启CDN,我们可以正常访问面板。关于防火墙的设定,我推荐使用UFW进行管理与设定,以Ubantu系统为例子:

安装UFW防火墙工具:

sudo apt-get update && sudo apt install ufw

开启UFW防火墙

sudo ufw enable

开放面板端口(以8443为例):

ufw allow from xx.xxx.xx.xx to any port 8443

这里实际上将IP地址xx.xxx.xx.xx加入了白名单(allow代表允许),限定了只允许特定IP访问面板登录端口。在X-UI使用时,我推荐大家将自己的几个服务器互相添加进白名单内,这样你可以通过不同的服务器节点进入你的面板。事实上,如果你不添加任何白名单,那么你只有通过面板上设定的节点访问控制你的面板。为了保险起见(如面板设定的节点被封,端口或者IP被封),你最好将你的其他服务器添加到白名单内,一旦意外情况出现,你还是可以通过其他服务的节点访问面板,进行修改。大家可以看看我的UFW设定:

这里我的面板端口设定为2096,将我的其他服务器添加进了白名单内。

需要说明的是,在开启UFW后,请务必开放你的SSH访问端口与你的节点端口

查看当前UFW的设定:

sudo ufw status

日志设置

需要说明的是,这里的日志并非X-UI自身的日志,而是Xray程序的日志。有些时候为了排查问题或者检查状态,我们不得不开启Xray的日志。如果需要开启日志,我们需要在面板控制台里修改配置模板,如下图所示:

在配置模板内,我们添加了log相关字段,如我的设定如下:

"log": {
    "access": "/usr/local/x-ui/bin/access.log",
    "error": "/usr/local/x-ui/bin/error.log",
    "loglevel": "warning",
    "dnsLog": false
 }

这里access设定的是访问日志,error设定的是错误日志,loglevel用于设定日志等级,推荐为warning,dnsLog用于设定DNS查询的日志,推荐为false。如果你有fakeDNS/DoH/DoT等需求则建议设定为true。

设定好以后我们重启面板,进入服务器对应目录内查看日志,就能看到以下信息:

这里被打码的部分是客户端的IP,右侧为访问的具体信息。由于当前X-UI会后期性地利用Xray的API进行流量查询,会导致日志内出现很多重复的无用的日志,我们可以使用以下命令进行过滤输出:

sudo cat access.log | grep -v 127.0.0.1 

查看被拒绝的连接:

sudo cat access.log | grep rejected

输出结果如图所示:

我建议大家时不时检查一下自己的节点日志,尤其是被拒绝的连接。很大程度上来自于墙的探测,如果发现这种探测,建议大家通过UFW或者Fail2ban将其加入给名单。

此外,为了便于我们更好的看日志,建议大家修改服务器的时区为上海时区,这样对于我们看日志会有比较好的帮助。

这里再提及一点,在开启日志之后,日志会不断进行累积,如果长时间不清理,会造成不必要的内存消耗,这里推荐大家通过脚本进行检测删除,利用Cron设置周期性任务,大家可以直接使用我的脚本进行设定,在根目录下执行以下命令即可:

cd /usr/local/x-ui/bin &&  wget https://github.com/FranzKafkaYu/BashScripts/blob/main/FileManuplite/autoCheck.sh

需要说明的是,如果你的日志设定的目录与我的不一致,请自行修改该脚本进行适配。修改之后请通过crontab -e命令加入如下定时任务:

00 0 * * 6 /usr/local/x-ui/bin/autoCheck.sh >> /usr/local/x-ui/bin/autoCheck.log

设定完成后,就能自动检测日志大小并进行删除,在删除时还会自行重启X-UI,保障X-UI的顺利运行。

节点设置

关于节点设置其实是一个很复杂的问题,由于当前X-UI存在一些局限性,并不能完全发挥Xray的优点。但还是有一些需要注意的点,具体包括:

1.尽量选择高位端口,如果你需要设定回落,则尽量使用443作为外露的端口

2.设定到期时间,到期后更改密码或端口

3.尽量不要使用xtls,根据最新的使用情况与issue提交情况来看,xtls存在一定风险

其他

除了以上内容外,还有一些其他可以注意的点,具体包括

1.定期更新geoip.dat与geosite.dat资源文件

通过添加如下Cron任务即可:

30 9 * * * /usr/bin/curl -s -L -o /usr/local/x-ui/bin/geoip.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
30 9 * * * /usr/bin/curl -s -L -o /usr/local/x-ui/bin/geosite.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat

2.非常时期请开启CDN

在一些重要的时间点,墙的动作可能会加大,此时尽量开启CDN进行使用。虽然开启CDN不可避免会降低速度,但是能后最大程度上保证安全,别忘了开启CDN需要使用ws+TLS哦~

3.务必开启BBR加速

bbr的增益其实是很大的,X-UI脚本集成了一键开启BBR的功能,请务必开启

以上就是本篇博客的内容啦~

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

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

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

Happy
Happy
80 %
Sad
Sad
7 %
Excited
Excited
3 %
Sleepy
Sleepy
7 %
Angry
Angry
3 %
Surprise
Surprise
0 %
FranzKafka95
FranzKafka95

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

文章: 83

33 评论

  1. I really enjoyed so much creativity and innovation you
    You’ve got all the right moves.

    There is only a small problem in popups display/value member not changing with selected index of combo box
    Overall, it’s great and of course useful , Thank you

  2. Hi, thanks alot for your explanation.
    I wanna take backup from inbound nodes and restore them on another server without creating and changing nodes one by one
    could you please help me?
    I`m using ubuntu.
    thank you inadvance.

  3. “需要说明的是,如果你的日志设定的目录与我的不一致,请自行修改该脚本进行适配。修改之后请通过conrtab -e命令加入如下定时任务:”
    bro,这里是crontab -e不是conrtab -e

  4. 您好,今天在看您的GitHub文档时顺手点了加入群组,但是由于在看GitHub,没看见无名机器人的验证,现在被ban了,用户名是@mumu9615,可否帮助解除禁止,谢谢您的付出!

amn进行回复取消回复

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

zh_CNCN