mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-19 21:42:24 +00:00
OS - Oracle Linux
This commit is contained in:
parent
866f7bd042
commit
9b1146780c
3 changed files with 88 additions and 44 deletions
|
@ -184,7 +184,8 @@ remove 3x-ui from docker
|
||||||
- Manjaro
|
- Manjaro
|
||||||
- Armbian
|
- Armbian
|
||||||
- AlmaLinux 9+
|
- AlmaLinux 9+
|
||||||
- Rockylinux 9+
|
- Rocky Linux 9+
|
||||||
|
- Oracle Linux 8+
|
||||||
|
|
||||||
## Supported Architectures and Devices
|
## Supported Architectures and Devices
|
||||||
|
|
||||||
|
|
62
install.sh
62
install.sh
|
@ -23,7 +23,7 @@ else
|
||||||
fi
|
fi
|
||||||
echo "The OS release is: $release"
|
echo "The OS release is: $release"
|
||||||
|
|
||||||
arch3xui() {
|
arch() {
|
||||||
case "$(uname -m)" in
|
case "$(uname -m)" in
|
||||||
x86_64 | x64 | amd64) echo 'amd64' ;;
|
x86_64 | x64 | amd64) echo 'amd64' ;;
|
||||||
i*86 | x86) echo '386' ;;
|
i*86 | x86) echo '386' ;;
|
||||||
|
@ -35,12 +35,18 @@ arch3xui() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "arch: $(arch3xui)"
|
echo "arch: $(arch)"
|
||||||
|
|
||||||
os_version=""
|
os_version=""
|
||||||
os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1)
|
os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1)
|
||||||
|
|
||||||
if [[ "${release}" == "centos" ]]; then
|
if [[ "${release}" == "arch" ]]; then
|
||||||
|
echo "Your OS is Arch Linux"
|
||||||
|
elif [[ "${release}" == "manjaro" ]]; then
|
||||||
|
echo "Your OS is Manjaro"
|
||||||
|
elif [[ "${release}" == "armbian" ]]; then
|
||||||
|
echo "Your OS is Armbian"
|
||||||
|
elif [[ "${release}" == "centos" ]]; then
|
||||||
if [[ ${os_version} -lt 8 ]]; then
|
if [[ ${os_version} -lt 8 ]]; then
|
||||||
echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -48,40 +54,46 @@ elif [[ "${release}" == "ubuntu" ]]; then
|
||||||
if [[ ${os_version} -lt 20 ]]; then
|
if [[ ${os_version} -lt 20 ]]; then
|
||||||
echo -e "${red} Please use Ubuntu 20 or higher version!${plain}\n" && exit 1
|
echo -e "${red} Please use Ubuntu 20 or higher version!${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [[ "${release}" == "fedora" ]]; then
|
elif [[ "${release}" == "fedora" ]]; then
|
||||||
if [[ ${os_version} -lt 36 ]]; then
|
if [[ ${os_version} -lt 36 ]]; then
|
||||||
echo -e "${red} Please use Fedora 36 or higher version!${plain}\n" && exit 1
|
echo -e "${red} Please use Fedora 36 or higher version!${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [[ "${release}" == "debian" ]]; then
|
elif [[ "${release}" == "debian" ]]; then
|
||||||
if [[ ${os_version} -lt 11 ]]; then
|
if [[ ${os_version} -lt 11 ]]; then
|
||||||
echo -e "${red} Please use Debian 11 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use Debian 11 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [[ "${release}" == "almalinux" ]]; then
|
elif [[ "${release}" == "almalinux" ]]; then
|
||||||
if [[ ${os_version} -lt 9 ]]; then
|
if [[ ${os_version} -lt 9 ]]; then
|
||||||
echo -e "${red} Please use AlmaLinux 9 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use AlmaLinux 9 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif [[ "${release}" == "rocky" ]]; then
|
elif [[ "${release}" == "rocky" ]]; then
|
||||||
if [[ ${os_version} -lt 9 ]]; then
|
if [[ ${os_version} -lt 9 ]]; then
|
||||||
echo -e "${red} Please use RockyLinux 9 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use Rocky Linux 9 or higher ${plain}\n" && exit 1
|
||||||
|
fi
|
||||||
|
elif [[ "${release}" == "oracle" ]]; then
|
||||||
|
if [[ ${os_version} -lt 8 ]]; then
|
||||||
|
echo -e "${red} Please use Oracle Linux 8 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "arch" ]]; then
|
|
||||||
echo "Your OS is ArchLinux"
|
|
||||||
elif [[ "${release}" == "manjaro" ]]; then
|
|
||||||
echo "Your OS is Manjaro"
|
|
||||||
elif [[ "${release}" == "armbian" ]]; then
|
|
||||||
echo "Your OS is Armbian"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
echo -e "${red}Failed to check the OS version, please contact the author!${plain}" && exit 1
|
echo -e "${red}Your operating system is not supported by this script.${plain}\n"
|
||||||
|
echo "Please ensure you are using one of the following supported operating systems:"
|
||||||
|
echo "- Ubuntu 20.04+"
|
||||||
|
echo "- Debian 11+"
|
||||||
|
echo "- CentOS 8+"
|
||||||
|
echo "- Fedora 36+"
|
||||||
|
echo "- Arch Linux"
|
||||||
|
echo "- Manjaro"
|
||||||
|
echo "- Armbian"
|
||||||
|
echo "- AlmaLinux 9+"
|
||||||
|
echo "- Rocky Linux 9+"
|
||||||
|
echo "- Oracle Linux 8+"
|
||||||
|
exit 1
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_base() {
|
install_base() {
|
||||||
case "${release}" in
|
case "${release}" in
|
||||||
centos | almalinux | rocky)
|
centos | almalinux | rocky | oracle)
|
||||||
yum -y update && yum install -y -q wget curl tar tzdata
|
yum -y update && yum install -y -q wget curl tar tzdata
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
|
@ -141,16 +153,16 @@ install_x-ui() {
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
echo -e "Got x-ui latest version: ${last_version}, beginning the installation..."
|
echo -e "Got x-ui latest version: ${last_version}, beginning the installation..."
|
||||||
wget -N --no-check-certificate -O /usr/local/x-ui-linux-$(arch3xui).tar.gz https://github.com/MHSanaei/3x-ui/releases/download/${last_version}/x-ui-linux-$(arch3xui).tar.gz
|
wget -N --no-check-certificate -O /usr/local/x-ui-linux-$(arch).tar.gz https://github.com/MHSanaei/3x-ui/releases/download/${last_version}/x-ui-linux-$(arch).tar.gz
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
echo -e "${red}Downloading x-ui failed, please be sure that your server can access Github ${plain}"
|
echo -e "${red}Downloading x-ui failed, please be sure that your server can access Github ${plain}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
last_version=$1
|
last_version=$1
|
||||||
url="https://github.com/MHSanaei/3x-ui/releases/download/${last_version}/x-ui-linux-$(arch3xui).tar.gz"
|
url="https://github.com/MHSanaei/3x-ui/releases/download/${last_version}/x-ui-linux-$(arch).tar.gz"
|
||||||
echo -e "Beginning to install x-ui $1"
|
echo -e "Beginning to install x-ui $1"
|
||||||
wget -N --no-check-certificate -O /usr/local/x-ui-linux-$(arch3xui).tar.gz ${url}
|
wget -N --no-check-certificate -O /usr/local/x-ui-linux-$(arch).tar.gz ${url}
|
||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
echo -e "${red}Download x-ui $1 failed,please check the version exists ${plain}"
|
echo -e "${red}Download x-ui $1 failed,please check the version exists ${plain}"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -162,18 +174,18 @@ install_x-ui() {
|
||||||
rm /usr/local/x-ui/ -rf
|
rm /usr/local/x-ui/ -rf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
tar zxvf x-ui-linux-$(arch3xui).tar.gz
|
tar zxvf x-ui-linux-$(arch).tar.gz
|
||||||
rm x-ui-linux-$(arch3xui).tar.gz -f
|
rm x-ui-linux-$(arch).tar.gz -f
|
||||||
cd x-ui
|
cd x-ui
|
||||||
chmod +x x-ui
|
chmod +x x-ui
|
||||||
|
|
||||||
# Check the system's architecture and rename the file accordingly
|
# Check the system's architecture and rename the file accordingly
|
||||||
if [[ $(arch3xui) == "armv5" || $(arch3xui) == "armv6" || $(arch3xui) == "armv7" ]]; then
|
if [[ $(arch) == "armv5" || $(arch) == "armv6" || $(arch) == "armv7" ]]; then
|
||||||
mv bin/xray-linux-$(arch3xui) bin/xray-linux-arm
|
mv bin/xray-linux-$(arch) bin/xray-linux-arm
|
||||||
chmod +x bin/xray-linux-arm
|
chmod +x bin/xray-linux-arm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chmod +x x-ui bin/xray-linux-$(arch3xui)
|
chmod +x x-ui bin/xray-linux-$(arch)
|
||||||
cp -f x-ui.service /etc/systemd/system/
|
cp -f x-ui.service /etc/systemd/system/
|
||||||
wget --no-check-certificate -O /usr/bin/x-ui https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.sh
|
wget --no-check-certificate -O /usr/bin/x-ui https://raw.githubusercontent.com/MHSanaei/3x-ui/main/x-ui.sh
|
||||||
chmod +x /usr/local/x-ui/x-ui.sh
|
chmod +x /usr/local/x-ui/x-ui.sh
|
||||||
|
|
67
x-ui.sh
67
x-ui.sh
|
@ -38,17 +38,23 @@ echo "The OS release is: $release"
|
||||||
os_version=""
|
os_version=""
|
||||||
os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1)
|
os_version=$(grep -i version_id /etc/os-release | cut -d \" -f2 | cut -d . -f1)
|
||||||
|
|
||||||
if [[ "${release}" == "centos" ]]; then
|
if [[ "${release}" == "arch" ]]; then
|
||||||
|
echo "Your OS is Arch Linux"
|
||||||
|
elif [[ "${release}" == "manjaro" ]]; then
|
||||||
|
echo "Your OS is Manjaro"
|
||||||
|
elif [[ "${release}" == "armbian" ]]; then
|
||||||
|
echo "Your OS is Armbian"
|
||||||
|
elif [[ "${release}" == "centos" ]]; then
|
||||||
if [[ ${os_version} -lt 8 ]]; then
|
if [[ ${os_version} -lt 8 ]]; then
|
||||||
echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use CentOS 8 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "ubuntu" ]]; then
|
elif [[ "${release}" == "ubuntu" ]]; then
|
||||||
if [[ ${os_version} -lt 20 ]]; then
|
if [[ ${os_version} -lt 20 ]]; then
|
||||||
echo -e "${red}please use Ubuntu 20 or higher version! ${plain}\n" && exit 1
|
echo -e "${red} Please use Ubuntu 20 or higher version!${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "fedora" ]]; then
|
elif [[ "${release}" == "fedora" ]]; then
|
||||||
if [[ ${os_version} -lt 36 ]]; then
|
if [[ ${os_version} -lt 36 ]]; then
|
||||||
echo -e "${red}please use Fedora 36 or higher version! ${plain}\n" && exit 1
|
echo -e "${red} Please use Fedora 36 or higher version!${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "debian" ]]; then
|
elif [[ "${release}" == "debian" ]]; then
|
||||||
if [[ ${os_version} -lt 11 ]]; then
|
if [[ ${os_version} -lt 11 ]]; then
|
||||||
|
@ -56,18 +62,31 @@ elif [[ "${release}" == "debian" ]]; then
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "almalinux" ]]; then
|
elif [[ "${release}" == "almalinux" ]]; then
|
||||||
if [[ ${os_version} -lt 9 ]]; then
|
if [[ ${os_version} -lt 9 ]]; then
|
||||||
echo -e "${red} Please use Almalinux 9 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use AlmaLinux 9 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "rocky" ]]; then
|
elif [[ "${release}" == "rocky" ]]; then
|
||||||
if [[ ${os_version} -lt 9 ]]; then
|
if [[ ${os_version} -lt 9 ]]; then
|
||||||
echo -e "${red} Please use Rockylinux 9 or higher ${plain}\n" && exit 1
|
echo -e "${red} Please use Rocky Linux 9 or higher ${plain}\n" && exit 1
|
||||||
fi
|
fi
|
||||||
elif [[ "${release}" == "arch" ]]; then
|
elif [[ "${release}" == "oracle" ]]; then
|
||||||
echo "Your OS is ArchLinux"
|
if [[ ${os_version} -lt 8 ]]; then
|
||||||
elif [[ "${release}" == "manjaro" ]]; then
|
echo -e "${red} Please use Oracle Linux 8 or higher ${plain}\n" && exit 1
|
||||||
echo "Your OS is Manjaro"
|
fi
|
||||||
elif [[ "${release}" == "armbian" ]]; then
|
else
|
||||||
echo "Your OS is Armbian"
|
echo -e "${red}Your operating system is not supported by this script.${plain}\n"
|
||||||
|
echo "Please ensure you are using one of the following supported operating systems:"
|
||||||
|
echo "- Ubuntu 20.04+"
|
||||||
|
echo "- Debian 11+"
|
||||||
|
echo "- CentOS 8+"
|
||||||
|
echo "- Fedora 36+"
|
||||||
|
echo "- Arch Linux"
|
||||||
|
echo "- Manjaro"
|
||||||
|
echo "- Armbian"
|
||||||
|
echo "- AlmaLinux 9+"
|
||||||
|
echo "- Rocky Linux 9+"
|
||||||
|
echo "- Oracle Linux 8+"
|
||||||
|
exit 1
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Declare Variables
|
# Declare Variables
|
||||||
|
@ -394,15 +413,18 @@ enable_bbr() {
|
||||||
|
|
||||||
# Check the OS and install necessary packages
|
# Check the OS and install necessary packages
|
||||||
case "${release}" in
|
case "${release}" in
|
||||||
ubuntu | debian)
|
ubuntu | debian | armbian)
|
||||||
apt-get update && apt-get install -yqq --no-install-recommends ca-certificates
|
apt-get update && apt-get install -yqq --no-install-recommends ca-certificates
|
||||||
;;
|
;;
|
||||||
centos | almalinux | rocky)
|
centos | almalinux | rocky | oracle)
|
||||||
yum -y update && yum -y install ca-certificates
|
yum -y update && yum -y install ca-certificates
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
dnf -y update && dnf -y install ca-certificates
|
dnf -y update && dnf -y install ca-certificates
|
||||||
;;
|
;;
|
||||||
|
arch | manjaro)
|
||||||
|
pacman -Sy --noconfirm ca-certificates
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
|
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -721,12 +743,15 @@ ssl_cert_issue() {
|
||||||
ubuntu | debian | armbian)
|
ubuntu | debian | armbian)
|
||||||
apt update && apt install socat -y
|
apt update && apt install socat -y
|
||||||
;;
|
;;
|
||||||
centos | almalinux | rocky)
|
centos | almalinux | rocky | oracle)
|
||||||
yum -y update && yum -y install socat
|
yum -y update && yum -y install socat
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
dnf -y update && dnf -y install socat
|
dnf -y update && dnf -y install socat
|
||||||
;;
|
;;
|
||||||
|
arch | manjaro)
|
||||||
|
pacman -Sy --noconfirm socat
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
|
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1082,16 +1107,19 @@ install_iplimit() {
|
||||||
|
|
||||||
# Check the OS and install necessary packages
|
# Check the OS and install necessary packages
|
||||||
case "${release}" in
|
case "${release}" in
|
||||||
ubuntu | debian)
|
ubuntu | debian | armbian)
|
||||||
apt update && apt install fail2ban -y
|
apt update && apt install fail2ban -y
|
||||||
;;
|
;;
|
||||||
centos | almalinux | rocky)
|
centos | almalinux | rocky | oracle)
|
||||||
yum update -y && yum install epel-release -y
|
yum update -y && yum install epel-release -y
|
||||||
yum -y install fail2ban
|
yum -y install fail2ban
|
||||||
;;
|
;;
|
||||||
fedora)
|
fedora)
|
||||||
dnf -y update && dnf -y install fail2ban
|
dnf -y update && dnf -y install fail2ban
|
||||||
;;
|
;;
|
||||||
|
arch | manjaro)
|
||||||
|
pacman -Syu --noconfirm fail2ban
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
|
echo -e "${red}Unsupported operating system. Please check the script and install the necessary packages manually.${plain}\n"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -1158,12 +1186,12 @@ remove_iplimit() {
|
||||||
rm -rf /etc/fail2ban
|
rm -rf /etc/fail2ban
|
||||||
systemctl stop fail2ban
|
systemctl stop fail2ban
|
||||||
case "${release}" in
|
case "${release}" in
|
||||||
ubuntu | debian)
|
ubuntu | debian | armbian)
|
||||||
apt-get remove -y fail2ban
|
apt-get remove -y fail2ban
|
||||||
apt-get purge -y fail2ban -y
|
apt-get purge -y fail2ban -y
|
||||||
apt-get autoremove -y
|
apt-get autoremove -y
|
||||||
;;
|
;;
|
||||||
centos | almalinux | rocky)
|
centos | almalinux | rocky | oracle)
|
||||||
yum remove fail2ban -y
|
yum remove fail2ban -y
|
||||||
yum autoremove -y
|
yum autoremove -y
|
||||||
;;
|
;;
|
||||||
|
@ -1171,6 +1199,9 @@ remove_iplimit() {
|
||||||
dnf remove fail2ban -y
|
dnf remove fail2ban -y
|
||||||
dnf autoremove -y
|
dnf autoremove -y
|
||||||
;;
|
;;
|
||||||
|
arch | manjaro)
|
||||||
|
pacman -Rns --noconfirm fail2ban
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "${red}Unsupported operating system. Please uninstall Fail2ban manually.${plain}\n"
|
echo -e "${red}Unsupported operating system. Please uninstall Fail2ban manually.${plain}\n"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
Loading…
Reference in a new issue