|
@@ -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
|