支持的功能
- 系统运行状态监控
- 多协议、多用户管理
- 禁用、启用单个账号
- 支持设置监听的 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
一、sprov-ui安装&升级
推荐内存在256MB及以上的vps安装,在低内存的vps下可能运行不佳,你可以试试设置虚拟内存来缓解内存压力。
支持的系统,最好是纯净版的系统,在精简版的系统中可能会安装失败:
- CentOS 7(推荐)
- Ubuntu 16
- Ubuntu 18
- Debian 8
- Debian 9
一键安装&升级命令
面板已内置升级功能,每 30 分钟从 Github 检测一次
wget -O install.sh -N --no-check-certificate https://blog.sprov.xyz/sprov-ui.sh && bash install.sh
wget -O install.sh -N --no-check-certificate https://github.com/sprov065/sprov-ui/raw/master/install.sh && bash install.sh
以上两条命令皆可,两者是一样的,只需要运行一个,如果其中一个有错误,可以运行另外一个。
使用以上一键命令安装sprov-ui,如果你已安装过,也可以使用上述命令进行升级到更新的版本。
稍等片刻,该脚本会安装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 install default-jre curl -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 账号,在这里你可以选择添加多个账号,或者删除、修改账号,添加、修改、删除账号之后记得点击【重启】来使配置生效。
【重置】是重置流量的功能,每个账号可单独重置流量,最上面的【重置】按钮可重置所有账号的流量。
三、客户端使用
可以在这篇文章的第五章看起,包括Windows、macOS、安卓、iOS的教程。
四、常见问题
sprov-ui启动失败:Address already in use
这个问题是因为面板的监听端口被占用了,换个端口即可。
sprov-ui启动失败:port out of range:xxxx
面板监听的端口超出正常范围,正常范围是1-65535,换个端口即可。
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
- 重启面板
五、高级操作
使用域名
首先你需要一个域名,并将域名解析到你 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
此文件配置了 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,并且还包含流量数据。
面板服务器迁移
面板的服务器迁移很简单,首先需要备份面板配置文件和 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):
- 使用的浏览器:
感谢你的使用。