fix LibreSpeed installing, move the SpaceSaver inside

This commit is contained in:
delifer 2026-02-27 22:42:58 +07:00
parent e726bd4a95
commit 58922be758

340
x-ui.sh
View file

@ -408,6 +408,16 @@ restart() {
fi fi
} }
restart_xray() {
systemctl reload x-ui
LOGI "xray-core Restart signal sent successfully, Please check the log information to confirm whether xray restarted successfully"
sleep 2
show_xray_status
if [[ $# == 0 ]]; then
before_show_menu
fi
}
status() { status() {
if [[ $release == "alpine" ]]; then if [[ $release == "alpine" ]]; then
rc-service x-ui status rc-service x-ui status
@ -1662,82 +1672,94 @@ run_speedtest() {
} }
run_librespeed() { run_librespeed() {
#Test GO
if command -v go &>/dev/null; then
echo -e "${green}${plain} GO installed!"
else
#Intalling GO
echo echo -e "${yellow}${plain} Installing GO..."
VERSION=$(curl -s https://go.dev/dl/?mode=json | grep -m 1 'version' | cut -d'"' -f4)
wget https://go.dev/dl/$VERSION.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf $VERSION.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
echo -e "${green}${plain} GO installed!"
fi
found=$(find / -type d -name "speedtest-cli" 2>/dev/null) if command -v librespeed-cli &>/dev/null; then
if [ -n "$found" ]; then librespeed-cli
echo "Test speed..."
$found/out/librespeed-cli-linux-amd64
else else
echo -e "${yellow}${plain}Installing Librespeed..." #Intalling LibreSpeed
git clone https://github.com/librespeed/speedtest-cli echo -e "${yellow} Installing LibreSpeed..."
cd speedtest-cli/ && ./build.sh VERSION=$(curl -s "https://api.github.com/repos/librespeed/speedtest-cli/releases/latest"| grep '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
echo -e "${green}${plain}Start this option again!" wget https://github.com/librespeed/speedtest-cli/releases/download/v${VERSION}/librespeed-cli_${VERSION}_linux_amd64.tar.gz
tar -xzvf librespeed-cli_${VERSION}_linux_amd64.tar.gz && mv librespeed-cli /usr/bin
librespeed-cli
fi fi
} }
create_honeypot() { create_honeypot() {
local pkg_manager=""
local server_ip=$(curl -s --max-time 3 https://4.ident.me) local server_ip=$(curl -s --max-time 3 https://4.ident.me)
echo -e "${yellow}${plain}Downloading sources and Utilites..." echo -e "${plain}Do you want to use: ${green}Apache ${plain}or ${green}Nginx"
if command -v dnf &>/dev/null; then
pkg_manager="dnf"
dnf install httpd -y
elif command -v yum &>/dev/null; then
pkg_manager="yum"
yum install httpd
elif command -v apt-get &>/dev/null; then
pkg_manager="apt-get"
apt-get install apache2
elif command -v apt &>/dev/null; then
pkg_manager="apt"
apt install apache2
fi
if [[ -z $pkg_manager ]]; then read -p "Apache or Nginx: " nginx_or_apache
echo "Error: Package manager not found. You may need to install HoneyPot manually."
return 1
fi
# Start apache server for HoneyPot echo -e "${yellow}Downloading sources and Utilites..."
systemctl enable apache2
systemctl start apache2
echo -e "${yellow}${plain}Installing HoneyPot..." if [ "$nginx_or_apache" = "Apache" ]; then
case "${release}" in
ubuntu)
apt-get update
apt-get install apache2 -y
;;
debian)
apt-get update
apt-get install -y apache2
;;
armbian)
apt-get update && apt-get install apache2 -y
;;
fedora | amzn | virtuozzo | rhel | almalinux | rocky | ol)
dnf -y update && dnf -y install httpd
;;
centos)
yum -y install apache2
;;
arch | manjaro | parch)
pacman -Syu --noconfirm apache
;;
*)
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
exit 1
;;
esac
git clone https://github.com/d3l1f3r/SpaceSaver.git # Start apache server for HoneyPot
mv SpaceSaver/ /var/www/html/ case "${release}" in
ubuntu)
systemctl enable apache2
systemctl start apache2
;;
debian)
systemctl enable apache2
systemctl start apache2
;;
armbian)
systemctl enable apache2
systemctl start apache2
;;
fedora | amzn | virtuozzo | rhel | almalinux | rocky | ol)
systemctl enable httpd
systemctl start httpd
;;
centos)
systemctl enable httpd
systemctl start httpd
;;
arch | manjaro | parch)
systemctl enable apache
systemctl start apache
;;
*)
echo -e "${red}Cannot start apache service.${plain}\n"
exit 1
;;
esac
# Configs
echo """
<VirtualHost *:80>
ServerName SpaceSaver
DocumentRoot /var/www/html/SpaceSaver
<Directory /var/www/html/SpaceSaver> echo -e "${yellow}Installing HoneyPot..."
Options Indexes FollowSymLinks mv SpaceSaver/ /var/www/html/
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log # Config for apache2
CustomLog ${APACHE_LOG_DIR}/access.log combined echo """
</VirtualHost>""" >> /etc/apache2/sites-enabled/spacesaver.conf
echo """
<VirtualHost *:80> <VirtualHost *:80>
ServerName SpaceSaver ServerName SpaceSaver
DocumentRoot /var/www/html/SpaceSaver DocumentRoot /var/www/html/SpaceSaver
@ -1752,18 +1774,120 @@ create_honeypot() {
CustomLog ${APACHE_LOG_DIR}/access.log combined CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>""" >> /etc/apache2/sites-available/spacesaver.conf </VirtualHost>""" >> /etc/apache2/sites-available/spacesaver.conf
# Restarting apache server ln -sf /etc/apache2/sites-available/spacesaver.conf /etc/apache2/sites-enabled/
sudo systemctl reload apache2
# Access rights to HoneyPot's files # Restarting apache server
sudo chown -R www-data:www-data /var/www/html/SpaceSaver case "${release}" in
sudo chmod -R 755 /var/www/html/SpaceSaver ubuntu)
chmod 644 /var/www/html/SpaceSaver/index.html systemctl reload apache2
;;
debian)
systemctl reload apache2
;;
armbian)
systemctl reload apache2
;;
fedora | amzn | virtuozzo | rhel | almalinux | rocky | ol)
systemctl reload httpd
;;
centos)
systemctl reload httpd
;;
arch | manjaro | parch)
systemctl reload httpd
;;
*)
echo -e "${red}Cannot reload apache service.${plain}\n"
exit 1
;;
esac
sudo systemctl reload apache2 # Access rights to HoneyPot's files
chown -R www-data:www-data /var/www/html/SpaceSaver
chmod -R 755 /var/www/html/SpaceSaver
chmod 644 /var/www/html/SpaceSaver/index.html
echo -e "${green}${plain}Done!" echo -e "${plain}Done!"
echo -e "${green}${plain}Available here -> http://$server_ip:80" echo -e "${green}Available here -> http://$server_ip:80"
elif [ "$nginx_or_apache" = "Nginx" ]; then
case "${release}" in
ubuntu)
apt-get update
apt-get install nginx -y
;;
debian)
apt-get update
apt-get install -y nginx
;;
armbian)
apt-get update && apt-get install nginx -y
;;
fedora | amzn | virtuozzo | rhel | almalinux | rocky | ol)
dnf -y update && dnf -y install nginx
;;
centos)
yum -y install nginx
;;
arch | manjaro | parch)
pacman -Syu --noconfirm nginx
;;
*)
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
exit 1
;;
esac
# Start nginx server for HoneyPot
systemctl enable nginx
systemctl start nginx
#Downloading HoneyPot's files
git clone https://github.com/d3l1f3r/SpaceSaver.git
mv SpaceSaver/ /var/www/html/
# Config for nginx
tee /etc/nginx/sites-available/spacesaver.conf >/dev/null << 'EOF'
server {
listen 80 default_server; # ← важно для локального доступа
server_name 127.0.0.1 localhost SpaceSaver _;
root /var/www/html/SpaceSaver;
index index.html;
# Security Headers
add_header X-Content-Type-Options nosniff always;
add_header X-Frame-Options SAMEORIGIN always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Referrer-Policy strict-origin-when-cross-origin always;
add_header Permissions-Policy "interest-cohort=()" always;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
server_tokens off;
location / {
try_files $uri $uri/ /index.html;
}
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
access_log /var/log/nginx/spacesaver.access.log;
error_log /var/log/nginx/spacesaver.error.log;
}
EOF
rm -f /etc/nginx/sites-enabled/default
ln -sf /etc/nginx/sites-available/spacesaver.conf /etc/nginx/sites-enabled/
systemctl reload nginx
echo -e "${plain}Done!"
echo -e "${green}Available here -> http://$server_ip:80"
fi
} }
change_dns() { change_dns() {
@ -2170,11 +2294,11 @@ iplimit_remove_conflicts() {
SSH_port_forwarding() { SSH_port_forwarding() {
local URL_lists=( local URL_lists=(
"https://api4.ipify.org" "https://api4.ipify.org"
"https://ipv4.icanhazip.com" "https://ipv4.icanhazip.com"
"https://v4.api.ipinfo.io/ip" "https://v4.api.ipinfo.io/ip"
"https://ipv4.myexternalip.com/raw" "https://ipv4.myexternalip.com/raw"
"https://4.ident.me" "https://4.ident.me"
"https://check-host.net/ip" "https://check-host.net/ip"
) )
local server_ip="" local server_ip=""
for ip_address in "${URL_lists[@]}"; do for ip_address in "${URL_lists[@]}"; do
@ -2305,28 +2429,29 @@ show_menu() {
${green}11.${plain} Start │ ${green}11.${plain} Start │
${green}12.${plain} Stop │ ${green}12.${plain} Stop │
${green}13.${plain} Restart │ ${green}13.${plain} Restart │
${green}14.${plain} Check Status │ | ${green}14.${plain} Restart Xray │
${green}15.${plain} Logs Management │ ${green}15.${plain} Check Status │
${green}16.${plain} Logs Management │
│────────────────────────────────────────────────│ │────────────────────────────────────────────────│
${green}16.${plain} Enable Autostart │ ${green}17.${plain} Enable Autostart │
${green}17.${plain} Disable Autostart │ ${green}18.${plain} Disable Autostart │
│────────────────────────────────────────────────│ │────────────────────────────────────────────────│
${green}18.${plain} SSL Certificate Management │ ${green}19.${plain} SSL Certificate Management │
${green}19.${plain} Cloudflare SSL Certificate │ ${green}20.${plain} Cloudflare SSL Certificate │
${green}20.${plain} IP Limit Management │ ${green}21.${plain} IP Limit Management │
${green}21.${plain} Firewall Management │ ${green}22.${plain} Firewall Management │
${green}22.${plain} SSH Port Forwarding Management │ ${green}23.${plain} SSH Port Forwarding Management │
${green}23.${plain} HoneyPot (Fakesite) ${green}24.${plain} HoneyPot (Fakesite)
${green}24.${plain} Change DNS resolver │ ${green}25.${plain} Change DNS resolver │
│────────────────────────────────────────────────│ │────────────────────────────────────────────────│
${green}25.${plain} Enable BBR │ ${green}26.${plain} Enable BBR │
${green}26.${plain} Update Geo Files │ ${green}27.${plain} Update Geo Files │
${green}27.${plain} Speedtest by Ookla │ ${green}28.${plain} Speedtest by Ookla │
${green}28.${plain} Librespeed │ ${green}29.${plain} Librespeed │
╚────────────────────────────────────────────────╝ ╚────────────────────────────────────────────────╝
" "
show_status show_status
echo && read -rp "Please enter your selection [0-28]: " num echo && read -rp "Please enter your selection [0-29]: " num
case "${num}" in case "${num}" in
0) 0)
@ -2372,52 +2497,55 @@ show_menu() {
check_install && restart check_install && restart
;; ;;
14) 14)
check_install && status check_install && restart_xray
;; ;;
15) 15)
check_install && show_log check_install && status
;; ;;
16) 16)
check_install && enable check_install && show_log
;; ;;
17) 17)
check_install && disable check_install && enable
;; ;;
18) 18)
ssl_cert_issue_main check_install && disable
;; ;;
19) 19)
ssl_cert_issue_CF ssl_cert_issue_main
;; ;;
20) 20)
iplimit_main ssl_cert_issue_CF
;; ;;
21) 21)
firewall_menu iplimit_main
;; ;;
22) 22)
SSH_port_forwarding firewall_menu
;; ;;
23) 23)
create_honeypot SSH_port_forwarding
;; ;;
24) 24)
change_dns create_honeypot
;; ;;
25) 25)
bbr_menu change_dns
;; ;;
26) 26)
update_geo bbr_menu
;; ;;
27) 27)
run_speedtest update_geo
;; ;;
28) 28)
run_speedtest
;;
29)
run_librespeed run_librespeed
;; ;;
*) *)
LOGE "Please enter the correct number [0-28]" LOGE "Please enter the correct number [0-29]"
;; ;;
esac esac
} }