0%

x-ui高级设定

x-ui是基于xray的套壳管理面板,优点是用起来简单,缺点是每个端口只能设定一个uuid,无法在分享给其他人使用的时候防止滥用,也无法精确监控每个用户的使用情况。

下面给出一些思路:

使用者身份设定

  • 假定使用者是某个学校校园网内的全体学生,那么可以利用校园网来限定使用者身份。
  1. 将订阅链接在公网上公开,但是订阅链接的内容只能在内网中成功订阅。方法是在内网运行一个服务器专门发布订阅链接的内容。外加是不是的更新节点内容,这样就能保证只有内网的用户才能用到服务。

  2. 校园网在公网上一般是一个公网ip区间,倘若能探明这个区间,就能直接从节点、订阅层面限定使用者范围。从订阅层面,同上,在nginx里可以设定订阅链接的内容仅某些ip可访问。从节点层面,可以在xray之前统一经过443端口的nginx反代,由nginx检查使用者的ip。

  • 可以利用校园邮箱来限定使用者身份。
    为了保护隐私,用邮箱验证需要先自建一个邮箱系统。
  1. 手动验证。要求使用者用校园邮箱发送申请,邮件里包含一个合法的uuid,然后管理员将此uuid添加到后台。目前的x-ui原版的config.json是每次restart时被x-ui.db覆盖的,而x-ui.db不支持一个端口多个用户。所以需要另起config1.json,放在原config一起,让xray启动时合并读取config;还有fork版本的x-ui,支持单个端口后多用户的设定,可以用。
  2. 自动验证。所有的操作最后都应该自动化。可以想办法将邮件内容接收、uuid读取、config添加等工作写成代码,用合并读取config的方式来完成这个工作。

匿名交易

倘若需要匿名交易功能,可能需要使用paypal。

acme.sh自动设置域名

x-ui支持自动下载acme.sh脚本并用该脚本申请ssl证书。该脚本会自动更新证书,且每次拷贝新证书到/root/cert下。

注意点

  • 每次用acme.sh脚本申请证书,所用域名都会被acme.sh记录。即使这个域名以后作废了,acme.sh也会为其自动更新证书。
  • 申请的证书有fullchain.cer和xxx.xxxx.cer两种公钥,如果是给网站使用的话,用前面一个,前者包含了后者。
  • 有一次我发现ws+tls类型的节点失效了,更新了证书节点仍然无效。后来重启x-ui解决了问题,原因可能是:
    x-ui在启动时会自动读取一次证书,并缓存该证书。后期更新证书并吊销旧证书,x-ui使用的仍然是旧的,这就导致tls类型节点无效。解决方法就是重启x-ui。