mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-02-27 20:53:01 +00:00
fix LibreSpeed installing, move the SpaceSaver inside
This commit is contained in:
parent
e726bd4a95
commit
58922be758
1 changed files with 236 additions and 108 deletions
344
x-ui.sh
344
x-ui.sh
|
|
@ -408,6 +408,16 @@ restart() {
|
|||
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() {
|
||||
if [[ $release == "alpine" ]]; then
|
||||
rc-service x-ui status
|
||||
|
|
@ -1662,82 +1672,94 @@ run_speedtest() {
|
|||
}
|
||||
|
||||
run_librespeed() {
|
||||
#Test GO
|
||||
if command -v go &>/dev/null; then
|
||||
echo -e "${green}${plain} GO installed!"
|
||||
|
||||
if command -v librespeed-cli &>/dev/null; then
|
||||
librespeed-cli
|
||||
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 [ -n "$found" ]; then
|
||||
echo "Test speed..."
|
||||
$found/out/librespeed-cli-linux-amd64
|
||||
else
|
||||
echo -e "${yellow}${plain}Installing Librespeed..."
|
||||
git clone https://github.com/librespeed/speedtest-cli
|
||||
cd speedtest-cli/ && ./build.sh
|
||||
echo -e "${green}${plain}Start this option again!"
|
||||
#Intalling LibreSpeed
|
||||
echo -e "${yellow} Installing LibreSpeed..."
|
||||
VERSION=$(curl -s "https://api.github.com/repos/librespeed/speedtest-cli/releases/latest"| grep '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
|
||||
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
|
||||
}
|
||||
|
||||
create_honeypot() {
|
||||
|
||||
local pkg_manager=""
|
||||
local server_ip=$(curl -s --max-time 3 https://4.ident.me)
|
||||
|
||||
echo -e "${yellow}${plain}Downloading sources and Utilites..."
|
||||
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
|
||||
echo -e "${plain}Do you want to use: ${green}Apache ${plain}or ${green}Nginx"
|
||||
|
||||
if [[ -z $pkg_manager ]]; then
|
||||
echo "Error: Package manager not found. You may need to install HoneyPot manually."
|
||||
return 1
|
||||
fi
|
||||
read -p "Apache or Nginx: " nginx_or_apache
|
||||
|
||||
# Start apache server for HoneyPot
|
||||
systemctl enable apache2
|
||||
systemctl start apache2
|
||||
|
||||
echo -e "${yellow}${plain}Installing HoneyPot..."
|
||||
echo -e "${yellow}Downloading sources and Utilites..."
|
||||
|
||||
git clone https://github.com/d3l1f3r/SpaceSaver.git
|
||||
mv SpaceSaver/ /var/www/html/
|
||||
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
|
||||
|
||||
# Configs
|
||||
echo """
|
||||
<VirtualHost *:80>
|
||||
ServerName SpaceSaver
|
||||
DocumentRoot /var/www/html/SpaceSaver
|
||||
# Start apache server for HoneyPot
|
||||
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
|
||||
|
||||
<Directory /var/www/html/SpaceSaver>
|
||||
Options Indexes FollowSymLinks
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
</VirtualHost>""" >> /etc/apache2/sites-enabled/spacesaver.conf
|
||||
echo -e "${yellow}Installing HoneyPot..."
|
||||
mv SpaceSaver/ /var/www/html/
|
||||
|
||||
echo """
|
||||
# Config for apache2
|
||||
echo """
|
||||
<VirtualHost *:80>
|
||||
ServerName SpaceSaver
|
||||
DocumentRoot /var/www/html/SpaceSaver
|
||||
|
|
@ -1751,19 +1773,121 @@ create_honeypot() {
|
|||
ErrorLog ${APACHE_LOG_DIR}/error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
||||
</VirtualHost>""" >> /etc/apache2/sites-available/spacesaver.conf
|
||||
|
||||
ln -sf /etc/apache2/sites-available/spacesaver.conf /etc/apache2/sites-enabled/
|
||||
|
||||
# Restarting apache server
|
||||
sudo systemctl reload apache2
|
||||
# Restarting apache server
|
||||
case "${release}" in
|
||||
ubuntu)
|
||||
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
|
||||
|
||||
# Access rights to HoneyPot's files
|
||||
sudo chown -R www-data:www-data /var/www/html/SpaceSaver
|
||||
sudo chmod -R 755 /var/www/html/SpaceSaver
|
||||
chmod 644 /var/www/html/SpaceSaver/index.html
|
||||
# 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
|
||||
|
||||
sudo systemctl reload apache2
|
||||
echo -e "${plain}Done!"
|
||||
echo -e "${green}Available here -> http://$server_ip:80"
|
||||
|
||||
echo -e "${green}${plain}Done!"
|
||||
echo -e "${green}${plain}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() {
|
||||
|
|
@ -2170,11 +2294,11 @@ iplimit_remove_conflicts() {
|
|||
SSH_port_forwarding() {
|
||||
local URL_lists=(
|
||||
"https://api4.ipify.org"
|
||||
"https://ipv4.icanhazip.com"
|
||||
"https://v4.api.ipinfo.io/ip"
|
||||
"https://ipv4.myexternalip.com/raw"
|
||||
"https://4.ident.me"
|
||||
"https://check-host.net/ip"
|
||||
"https://ipv4.icanhazip.com"
|
||||
"https://v4.api.ipinfo.io/ip"
|
||||
"https://ipv4.myexternalip.com/raw"
|
||||
"https://4.ident.me"
|
||||
"https://check-host.net/ip"
|
||||
)
|
||||
local server_ip=""
|
||||
for ip_address in "${URL_lists[@]}"; do
|
||||
|
|
@ -2305,28 +2429,29 @@ show_menu() {
|
|||
│ ${green}11.${plain} Start │
|
||||
│ ${green}12.${plain} Stop │
|
||||
│ ${green}13.${plain} Restart │
|
||||
│ ${green}14.${plain} Check Status │
|
||||
│ ${green}15.${plain} Logs Management │
|
||||
| ${green}14.${plain} Restart Xray │
|
||||
│ ${green}15.${plain} Check Status │
|
||||
│ ${green}16.${plain} Logs Management │
|
||||
│────────────────────────────────────────────────│
|
||||
│ ${green}16.${plain} Enable Autostart │
|
||||
│ ${green}17.${plain} Disable Autostart │
|
||||
│ ${green}17.${plain} Enable Autostart │
|
||||
│ ${green}18.${plain} Disable Autostart │
|
||||
│────────────────────────────────────────────────│
|
||||
│ ${green}18.${plain} SSL Certificate Management │
|
||||
│ ${green}19.${plain} Cloudflare SSL Certificate │
|
||||
│ ${green}20.${plain} IP Limit Management │
|
||||
│ ${green}21.${plain} Firewall Management │
|
||||
│ ${green}22.${plain} SSH Port Forwarding Management │
|
||||
│ ${green}23.${plain} HoneyPot (Fakesite) │
|
||||
│ ${green}24.${plain} Change DNS resolver │
|
||||
│ ${green}19.${plain} SSL Certificate Management │
|
||||
│ ${green}20.${plain} Cloudflare SSL Certificate │
|
||||
│ ${green}21.${plain} IP Limit Management │
|
||||
│ ${green}22.${plain} Firewall Management │
|
||||
│ ${green}23.${plain} SSH Port Forwarding Management │
|
||||
│ ${green}24.${plain} HoneyPot (Fakesite) │
|
||||
│ ${green}25.${plain} Change DNS resolver │
|
||||
│────────────────────────────────────────────────│
|
||||
│ ${green}25.${plain} Enable BBR │
|
||||
│ ${green}26.${plain} Update Geo Files │
|
||||
│ ${green}27.${plain} Speedtest by Ookla │
|
||||
│ ${green}28.${plain} Librespeed │
|
||||
│ ${green}26.${plain} Enable BBR │
|
||||
│ ${green}27.${plain} Update Geo Files │
|
||||
│ ${green}28.${plain} Speedtest by Ookla │
|
||||
│ ${green}29.${plain} Librespeed │
|
||||
╚────────────────────────────────────────────────╝
|
||||
"
|
||||
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
|
||||
0)
|
||||
|
|
@ -2372,52 +2497,55 @@ show_menu() {
|
|||
check_install && restart
|
||||
;;
|
||||
14)
|
||||
check_install && status
|
||||
check_install && restart_xray
|
||||
;;
|
||||
15)
|
||||
check_install && show_log
|
||||
check_install && status
|
||||
;;
|
||||
16)
|
||||
check_install && enable
|
||||
check_install && show_log
|
||||
;;
|
||||
17)
|
||||
check_install && disable
|
||||
check_install && enable
|
||||
;;
|
||||
18)
|
||||
ssl_cert_issue_main
|
||||
check_install && disable
|
||||
;;
|
||||
19)
|
||||
ssl_cert_issue_CF
|
||||
ssl_cert_issue_main
|
||||
;;
|
||||
20)
|
||||
iplimit_main
|
||||
ssl_cert_issue_CF
|
||||
;;
|
||||
21)
|
||||
firewall_menu
|
||||
iplimit_main
|
||||
;;
|
||||
22)
|
||||
SSH_port_forwarding
|
||||
firewall_menu
|
||||
;;
|
||||
23)
|
||||
create_honeypot
|
||||
SSH_port_forwarding
|
||||
;;
|
||||
24)
|
||||
change_dns
|
||||
create_honeypot
|
||||
;;
|
||||
25)
|
||||
bbr_menu
|
||||
change_dns
|
||||
;;
|
||||
26)
|
||||
update_geo
|
||||
bbr_menu
|
||||
;;
|
||||
27)
|
||||
run_speedtest
|
||||
update_geo
|
||||
;;
|
||||
28)
|
||||
run_speedtest
|
||||
;;
|
||||
29)
|
||||
run_librespeed
|
||||
;;
|
||||
*)
|
||||
LOGE "Please enter the correct number [0-28]"
|
||||
LOGE "Please enter the correct number [0-29]"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
@ -2470,4 +2598,4 @@ if [[ $# > 0 ]]; then
|
|||
esac
|
||||
else
|
||||
show_menu
|
||||
fi
|
||||
fi
|
||||
Loading…
Reference in a new issue