sprov-ui,支持多协议多用户的v2ray管理面板

Github地址

查看更新日志

2019-5-14,更新v3.1.0:

  • 可自定义登录页的标题和页脚
  • 显示面板当前版本
  • 可修改账号端口

2019-5-6,更新v3.0.0:

  • 新增一键管理脚本,小白福利
  • 新增配置面板 https 访问,需要域名证书,详细教程请看博客,且开启 https 后不能使用 http 访问
  • 新增防爆破密码,密码错误达到一定次数后直接封禁 IP,一段时间后会放行,重启面板后会全部放行
  • 新增退出登录

2019-4-29,更新v2.11.0

  • 增加 http/2 + tls 传输配置,使用 http/2 必须要有 ssl 证书,这是硬性规定
  • 修复几个小问题
  • 完善配置说明

2019-4-16,更新v2.10.0

  • 增加禁用、启用单个账号的功能(此功能会自动重启 v2ray)
  • 修复点击重启报错的问题
  • 加快面板启动速度

2019-4-6,更新v2.9.0

  • 新增 socks 协议
  • 新增 http 协议
  • mtproto 增加备注
  • 显示 v2ray 总流量
  • 增加搜索账号功能
  • 删除 tag 标识
  • 改进升级面板和重启面板功能
  • 新增面板报告,此功能不会发送任何隐私信息,仅仅收集每个协议的数量,例如 { vmess: 2, shadowsocks: 1 } 等信息,利于我进行分析面板使用情况。

面板报告功能详情见 commit 记录,df9f99d

2019-4-3,更新v2.8.0

  • 新增流量统计(支持所有协议)
  • 新增手动重置流量功能
  • 账号去除tag标识(目前仍会显示在界面上,下个版本将不会显示)
  • 账号增加备注

2019-3-28,更新v2.7.0

  • 优化网页加载速度,极速加载
  • 支持设置监听 IP

2019-3-16,更新v2.6.0

  • 增加 Websocket 的 tls 传输配置
  • vmess 链接和二维码中使用 tag 标识作为备注名
  • 增加面板自动更新检测(每30分钟从 Github 检测一次)
  • 增加重启面板、一键升级面板功能(升级后记得重启面板)
  • 增加 robots.txt,禁止所有搜索引擎收录

2019-3-8,更新v2.5.2

  • 修复一个删除节点失败的问题

2019-3-4,更新v2.5.1

  • 减少软件包大小
  • 降低内存使用
  • 优化网页加载速度

2019-3-4,更新v2.5.0

  • 增加mtproto协议
  • 增加复制链接、查看二维码功能
  • 略微降低sprov-ui面板的cpu使用率

2019-2-26,更新v2.4.0

  • 增加更多kcp的详细配置
  • 增加websocket传输配置
  • 服务器状态刷新间隔由1.5秒调整为1秒
  • 增加一些配置方面的提示

2019-2-22,更新v2.3.0

  • 节点增加tag标识属性,注意每个tag必须唯一,否则会导致无法连接节点

2019-2-20,更新v2.2.0

  • 增加dokodemo-door协议
  • 略微降低CPU使用率
  • 修复修改alterId导致v2ray重启失败的问题

2019-2-20,更新v2.1.0

  • 修复在部分系统下的网页乱码问题,有这个问题的请更新

2019-2-18,更新v2.0.0,重要更新:

  • 大幅降低内存使用
  • 大幅提升启动速度
  • 大幅降低jar包的大小
  • 使用jar包替代2.0版本以前的war包

2019-2-16,更新v1.1.0

  • 增加shadowsocks协议的管理。

2019-2-12,发布第一个测试版v1.0.0-beta

  • 实时显示系统状态(CPU、内存、网络等等)
  • v2ray重启、关闭
  • 添加、修改、删除v2ray账号,目前支持vmess协议,传输配置支持tcp和kcp

查看面板支持的功能

支持的功能

  • https 访问面板
  • 系统运行状态监控
  • 多协议、多用户管理
  • 禁用、启用单个账号
  • 支持设置监听的 IP(多 IP 服务器下)
  • 流量统计(支持所有协议)

支持的 v2ray 协议

  • vmess(v2ray 特色)
  • shadowsocks(经典 ss)
  • mtproto(Telegram 专用)
  • dokodemo-door(端口转发)
  • socks(socks 4、socks 4a、socks 5)
  • http(http 代理)

支持的 vmess 传输配置

  • tcp
  • kcp + 伪装
  • ws + 伪装 + tls
  • http/2 + 伪装 + tls

一、sprov-ui 安装&升级

此项目已停更,请使用新面板:v2-ui,一个全新的多协议多用户 v2ray 面板

推荐内存在 256MB 及以上的 vps 安装,在低内存的 vps 下可能运行不佳,你可以试试设置虚拟内存来缓解内存压力。

支持的系统,最好是纯净版的系统,在精简版的系统中可能会安装失败:

  • CentOS 7(推荐)
  • Ubuntu 16
  • Ubuntu 18
  • Debian 8
  • Debian 9

一键管理脚本

以下四组命令任君选择,效果都是一样的,如果下载脚本有报错则尝试另一组。

请务必使用 root 用户运行脚本,否则会出问题:sudo su root,或者在命令前加上 sudo

wget -O /usr/bin/sprov-ui -N --no-check-certificate https://blog.sprov.xyz/sprov-ui.sh && chmod +x /usr/bin/sprov-ui && sprov-ui
wget -O /usr/bin/sprov-ui -N --no-check-certificate https://github.com/sprov065/sprov-ui/raw/master/sprov-ui.sh && chmod +x /usr/bin/sprov-ui && sprov-ui
yum install wget -y
apt-get install wget -y
wget -O sprov-ui https://blog.sprov.xyz/sprov-ui.sh
chmod +x sprov-ui
mv sprov-ui /usr/bin/ -f
sprov-ui

yum install wget -y
apt-get install wget -y
wget -O sprov-ui https://github.com/sprov065/sprov-ui/raw/master/sprov-ui.sh
chmod +x sprov-ui
mv sprov-ui /usr/bin/ -f
sprov-ui

运行管理脚本会出现如下界面,这就不用多说了吧,输入 1,并回车即可安装面板。

一键管理脚本

安装面板可能需要几分钟时间,该脚本会安装 Java 环境、v2ray(如果已安装则会强制升级到最新版)、以及关闭防火墙,安装过程中会让你输入面板监听端口、登录用户名和密码,推荐自己定义,不使用默认的。

面板安装完成

查看手动安装或升级面板方法

由于系统的种类多,各个商家也可能会定制自己的 Linux 系统,我没办法照顾到所有的系统,所以一键脚本有可能会出现安装失败的情况,如果多次安装都失败了,请参照以下的手动安装教程,并且请告诉我你的系统,我会尽量修正这些问题

安装 Java 环境与 curl

此步若安装 Java 环境失败,请自行百度你的系统 + 安装 Java 8,本软件需要 Java 8(也称 Java 1.8)及以上版本才能运行。

安装完成后,使用 /usr/bin/java -version 命令查看Java版本,确保是 1.8 版本及以上。

CentOS 7+

yum install java-1.8.0-openjdk curl -y

Ubuntu 16+ / Debian 8+

apt update && apt upgragde
apt install openjdk-8-jre-headless -y

安装v2ray

已安装则会强制升级到最新版

bash <(curl -L -s https://install.direct/go.sh) -f

关闭防火墙

如果你会自己管理防火墙,可以按照自己的方式来。有些商家可能会在服务器外又设置一道防火墙,也需要关闭,具体每个商家管理方式都不一样,请自行解决。

CentOS 7+

systemctl stop firewalld
systemctl disable firewalld

Ubuntu 16+

ufw disable

Debian 8+

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

创建sprov-ui配置文件

请自行修改命令中的端口、用户名、密码,默认是 80、sprov、blog.sprov.xyz

mkdir /etc/sprov-ui -p
echo "port=80" > /etc/sprov-ui/sprov-ui.conf
echo "username=sprov" >> /etc/sprov-ui/sprov-ui.conf
echo "password=blog.sprov.xyz" >> /etc/sprov-ui/sprov-ui.conf

下载sprov-ui软件包

mkdir /usr/local/sprov-ui -p
last_version=$(curl --silent "https://api.github.com/repos/sprov065/sprov-ui/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
wget -N --no-check-certificate -O /usr/local/sprov-ui/sprov-ui.jar https://github.com/sprov065/sprov-ui/releases/download/${last_version}/sprov-ui-${last_version}.jar
 

创建sprov-ui.service文件

直接一次性执行

echo "[Unit]" > /etc/systemd/system/sprov-ui.service
echo "Description=sprov-ui Service" >> /etc/systemd/system/sprov-ui.service
echo "After=network.target" >> /etc/systemd/system/sprov-ui.service
echo "Wants=network.target" >> /etc/systemd/system/sprov-ui.service
echo "" >> /etc/systemd/system/sprov-ui.service
echo "[Service]" >> /etc/systemd/system/sprov-ui.service
echo "Type=simple" >> /etc/systemd/system/sprov-ui.service
java_cmd="/usr/bin/java"
echo "ExecStart=${java_cmd} -jar /usr/local/sprov-ui/sprov-ui.jar" >> /etc/systemd/system/sprov-ui.service
echo "" >> /etc/systemd/system/sprov-ui.service
echo "[Install]" >> /etc/systemd/system/sprov-ui.service
echo "WantedBy=multi-user.target" >> /etc/systemd/system/sprov-ui.service
systemctl daemon-reload

至此,sprov-ui安装完毕。

手动升级

使用以下命令重新下载软件包就能升级了,升级完成后记得重启sprov-ui

last_version=$(curl --silent "https://api.github.com/repos/sprov065/sprov-ui/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
wget -N --no-check-certificate -O /usr/local/sprov-ui/sprov-ui.jar https://github.com/sprov065/sprov-ui/releases/download/${last_version}/sprov-ui-${last_version}.jar

安装谷歌bbr

参考这篇文章:谷歌bbr – tcp加速工具

二、sprov-ui 使用

sprov-ui 使用 systemd 来管理,以下是常用的命令,使用这些命令时,可能不会输出任何信息,也可能会输出一些信息,都是正常的。如果输出了错误信息,比如包含了 error 等字样,才代表出错了,需要排查错误。

systemctl start sprov-ui      # 启动sprov-ui
systemctl restart sprov-ui    # 重启sprov-ui
systemctl stop sprov-ui       # 关闭sprov-ui
systemctl status sprov-ui     # 查看sprov-ui运行状态
systemctl enable sprov-ui     # sprov-ui开机启动
systemctl disable sprov-ui    # 取消sprov-ui开机启动

以上都是老的管理办法,现在也可以使用,或者也可以使用一键管理脚本,一键管理脚本在文章前面有说明。

启动 sprov-ui 后,在浏览器地址栏中输入你的服务器 IP 加冒号端口号,切记是英文的冒号,不是中文的冒号,访问 sprov-ui 面板网页。

使用你设置的用户名和密码登录 sprov-ui 面板。

登录

登录后可以看到你的服务器的基本状态以及 v2ray 的运行状况。

此页面显示的是系统的状态,比如【已运行】表示的是服务器已运行的时间,而不是 v2ray 运行的时间。【网络】和【流量】显示的是整个服务器外网网卡的网络速度和流量,而不是 v2ray 的,如果你发现面板统计了内网的流量,请告知我你的系统版本和所有网卡名称,我将作出修正。

系统运行状态

账号列表可以看到你的 v2ray 账号,在这里你可以选择添加多个账号,或者删除、修改账号,添加、修改、删除账号之后记得点击【重启】来使配置生效

【重置】是重置流量的功能,每个账号可单独重置流量,最上面的【重置】按钮可重置所有账号的流量。

账号列表

三、客户端使用

可以在这篇文章的第五章看起,包括Windows、macOS、安卓、iOS的教程。

四、常见问题

sprov-ui 启动失败:Address already in use

这个问题是因为面板的监听端口被占用了,换个端口即可。

sprov-ui 启动失败:port out of range:xxxx

面板监听的端口超出正常范围,正常范围是1-65535,换个端口即可。

sprov-ui 启动失败:Invalid keystore format

证书有问题,需要 jks 格式的证书,文章下面有配置教程。

sprov-ui 启动失败:Keystore was tampered with, or password was incorrect

jks 证书密码错误,如果忘记密码了可以重新生成一个。

vmess 协议的账号连不上,其它的账号都连得上,端口也是通的

这是因为你的服务器时间和本地时间相差过大,vmess 协议要求服务器的 UTC 时间和本地 UTC 时间相差不超过 90 秒,服务器与本地的时区不一样没关系,但是分钟数要相同,请自行修改服务器时间。

所有账号都连不上,或者刚刚添加/修改的账号连不上

添加、删除、修改账号之后都需要重启 v2ray 才会生效新的配置,点击网页上的【重启】按钮即可,不是【重启面板】。还有确保你的端口是通的,防火墙都放行了。

开启 v2ray api 失败:xxxx

这个错误的原因一般就是你的 v2ray 配置文件格式过老了,v2ray 的 v4.1 版本开始启用了新的配置文件格式,本面板只支持 v4.1 版本之后的配置文件。

通用解决方法:

  • 先备份好你的 v2ray 节点信息
  • 删除 /etc/v2ray/config.json 文件
  • 重新使用此命令安装 v2ray:bash <(curl -L -s https://install.direct/go.sh) -f
  • 重启面板

访问网页出现:Bad response. The server or forwarder response doesn’t look like HTTP.

开启 https 后不能使用 http:// 访问,请使用 https:// 访问,且必须使用域名访问,不能使用 ip

五、高级操作

使用域名

首先你需要一个域名,并将域名解析到你 vps 的 IP,直接使用域名加端口号登录面板即可,无需其它配置。

sprov-ui 面板配置文件

面板配置文件在 /etc/sprov-ui/ 文件夹下,包含两个文件,一个是 sprov-ui.conf,一个是 v2ray-extra-config.json。

sprov-ui.conf

port=80                       # 面板监听端口
username=sprov                # 用户名
password=blog.sprov.xyz       # 密码
keystoreFile=                 # jks 证书文件路径,v3.0.0+
keystorePass=                 # jks 证书密码,v3.0.0+
maxWrongPassCount=5           # 密码最大错误次数,达到此次数则封禁 IP,默认为 5,v3.0.0+
loginTitle=xxxx               # 登录页标题,可自定义,留空则没有标题,v3.1.0+
loginFooter=xxxx              # 登录页页脚,可自定义,支持 html 标签,留空则没有页脚,v3.1.0+

此文件配置了 sprov-ui 的端口、用户名、密码等等,可以自行修改,修改后需要重启面板生效,留空则使用默认配置。配置错误会导致面板启动失败,例如:port=111111(非法端口号)。

v2ray-extra-config.json

{
    "disabled-inbounds": [],
    "inbounds": []
}

此文件为 v2ray 配置文件的扩展,为一个 json 文件,包含两个属性:inbounds、disabled-inbounds。

inbounds 为一个数组,包含若干个 inbound,主要记录流量数据,每个 inbound 的格式如下:

{
    "tag": "",      // tag 标识,不能为空
    "downlink": 0,  // 下行流量,单位 Byte
    "uplink: 0      // 上行流量,单位 Byte
}

disabled-inbounds 为一个数组,包含若干个 inbound,记录被禁用的 inbound,每个 inbound 都是一个完整的 v2ray inbound,并且还包含流量数据。

启用面板 https 访问

sprov-ui v3.0.0 及以上版本支持

开启 https 后不能再使用 http:// 访问面板,请使用 https:// 访问面板,且必须使用域名访问,不能使用 ip

首先我们申请的证书常见的是 .crt / .pem 等格式,密钥常见的格式是 .key,这些证书不能直接配置在面板里,需要将证书和密钥转换成 .jks 格式的证书,以下是转换教程。

将 crt / pem 证书转换为 jks 格式的证书

在转换 jks 证书后,上传 jks 证书至你的服务器,并在面板配置文件里添加如下配置,并重启面板:

keystoreFile=/path/to/xxx.com.jks        # jks 证书文件绝对路径
keystorePass=yourpassword                # jks 证书密码,如果没有设置密码则留空

不会上传文件到服务器?看这篇文章:MobaXterm – 一个强大的全能终端

面板服务器迁移

面板的服务器迁移很简单,首先需要备份面板配置文件和 v2ray 配置文件,分别是:/etc/sprov-ui/ 文件夹下所有文件,/etc/v2ray/config.json,如何备份请自行解决。

然后在新服务器上重新安装面板,之前备份的文件覆盖掉现有的,最后启动或重启面板即可。

六、总结

以上就是我花了几天来开发的 v2ray 面板,名字叫 sprov-ui,如果你在使用中遇到了问题,或者你有更多的建议,推荐加入 Telegram 群组讨论,也可以在下方评论,或者在 Github 提 issue。

问问题前请先在评论区和 Github 查看别人是否与你遇到了同样的问题,如果尝试了所有解决方案仍然不行,那么请仔细描述你所遇到的问题,将你的系统版本(CentOS 7 ?Ubuntu 16 ?)、sprov-ui 的状态信息、v2ray 的状态信息等等所有相关的信息发上来,不要太多,选取重要的即可,不要就说一句“不行”、“不可以”、“没反应”,这样叫我怎么解决呢。

提问格式,根据具体问题,可适当去除不相关的内容:

  • 简短描述所遇到的问题:
  • 使用的系统:
  • sprov-ui 状态信息:
  • v2ray 状态信息:
  • v2ray 配置内容(cat /etc/v2ray/config.json):
  • 使用的浏览器:

感谢你的使用。

这篇文章有 102 个评论

  1. 头像

    Bug報告,面版登錄時忽然說我登錄名稱和密碼錯誤,但我甚麼也沒動過,3-4個小時前登錄是沒問題的,3-4個小時後再登就忽然說我名稱或密碼錯誤了。我還以為被黑了,黑客惡意的把我密碼改掉。

    版本是3.1

    用指令restart一次sprov-ui登錄就正常了。

    1. sprov

      一个 IP 尝试错误密码超过 5 次会封禁这个 IP,无论这个 IP 输入什么密码都会提示错误,这是为了防止被爆破密码,重启面板后会放行。

  2. 头像

    在3.1的版本中,面板配置了ssl证书,正常访问,但是人们没有输入”https://”的习惯,请问如何设置,可以使访问80端口的直接跳转到443端口? 谢谢!

    1. sprov

      暂时没办法

  3. 头像

    想问下,账号列表里的重启按钮对应的命令是什么,我发现V2有时重启之后就特别快,然后好久不用,就特别慢。谢谢了。

    1. sprov

      systemctl restart v2ray
      至于这个慢的问题,我就不清楚了,网络快慢有很多因素的影响,如果你仍然认为 v2ray 运行久了会变慢,那么你可以设置一个 crontab 定时任务每天自动重启 v2ray。

评论关闭。

关闭菜单