Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--x-ui.sh43
1 files changed, 42 insertions, 1 deletions
diff --git a/x-ui.sh b/x-ui.sh
index 518b9232..1f5f5536 100644
--- a/x-ui.sh
+++ b/x-ui.sh
@@ -345,6 +345,47 @@ show_banlog() {
fi
}
+bbr_menu() {
+ echo -e "${green}\t1.${plain} Enable BBR"
+ echo -e "${green}\t2.${plain} Disable BBR"
+ echo -e "${green}\t0.${plain} Back to Main Menu"
+ read -p "Choose an option: " choice
+ case "$choice" in
+ 0)
+ show_menu
+ ;;
+ 1)
+ enable_bbr
+ ;;
+ 2)
+ disable_bbr
+ ;;
+ *) echo "Invalid choice" ;;
+ esac
+}
+
+disable_bbr() {
+
+ if ! grep -q "net.core.default_qdisc=fq" /etc/sysctl.conf || ! grep -q "net.ipv4.tcp_congestion_control=bbr" /etc/sysctl.conf; then
+ echo -e "${yellow}BBR is not currently enabled.${plain}"
+ exit 0
+ fi
+
+ # Replace BBR with CUBIC configurations
+ sed -i 's/net.core.default_qdisc=fq/net.core.default_qdisc=pfifo_fast/' /etc/sysctl.conf
+ sed -i 's/net.ipv4.tcp_congestion_control=bbr/net.ipv4.tcp_congestion_control=cubic/' /etc/sysctl.conf
+
+ # Apply changes
+ sysctl -p
+
+ # Verify that BBR is replaced with CUBIC
+ if [[ $(sysctl net.ipv4.tcp_congestion_control | awk '{print $3}') == "cubic" ]]; then
+ echo -e "${green}BBR has been replaced with CUBIC successfully.${plain}"
+ else
+ echo -e "${red}Failed to replace BBR with CUBIC. Please check your system configuration.${plain}"
+ fi
+}
+
enable_bbr() {
if grep -q "net.core.default_qdisc=fq" /etc/sysctl.conf && grep -q "net.ipv4.tcp_congestion_control=bbr" /etc/sysctl.conf; then
echo -e "${green}BBR is already enabled!${plain}"
@@ -1263,7 +1304,7 @@ show_menu() {
firewall_menu
;;
21)
- enable_bbr
+ bbr_menu
;;
22)
update_geo