From 9f36d3fac0a6fa0eeefc1d131db39766fce22e78 Mon Sep 17 00:00:00 2001 From: CanbiZ <47820557+MickLesk@users.noreply.github.com> Date: Tue, 2 Dec 2025 11:13:11 +0100 Subject: [PATCH] Add granular IPv6 disable option to setup scripts Expanded IPv6 configuration in build.func to include a 'disable' option with clearer descriptions. Updated install.func to use IPV6_METHOD for disabling IPv6 via sysctl.d, improving clarity and control over IPv6 management. --- misc/build.func | 16 +++++++++++----- misc/install.func | 18 +++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/misc/build.func b/misc/build.func index e3ef6b1f8..b020ac829 100644 --- a/misc/build.func +++ b/misc/build.func @@ -1445,11 +1445,12 @@ advanced_settings() { if result=$(whiptail --backtitle "Proxmox VE Helper Scripts [Step $STEP/$MAX_STEP]" \ --title "IPv6 CONFIGURATION" \ --ok-button "Next" --cancel-button "Back" \ - --menu "\nSelect IPv6 Address Management:" 16 58 4 \ - "auto" "SLAAC/AUTO (recommended)" \ - "dhcp" "DHCPv6" \ - "static" "Static (manual entry)" \ - "none" "Disabled" \ + --menu "\nSelect IPv6 Address Management:" 16 70 5 \ + "auto" "SLAAC/AUTO (recommended) - Dynamic IPv6 from network" \ + "dhcp" "DHCPv6 - DHCP-assigned IPv6 address" \ + "static" "Static - Manual IPv6 address configuration" \ + "none" "None - No IPv6 assignment (most containers)" \ + "disable" "Fully Disabled - (breaks some services)" \ 3>&1 1>&2 2>&3); then _ipv6_method="$result" @@ -1478,6 +1479,11 @@ advanced_settings() { _ipv6_gate="" ((STEP++)) ;; + disable) + _ipv6_addr="" + _ipv6_gate="" + ((STEP++)) + ;; none) _ipv6_addr="none" _ipv6_gate="" diff --git a/misc/install.func b/misc/install.func index 4e2869939..89b03fd8c 100644 --- a/misc/install.func +++ b/misc/install.func @@ -45,16 +45,24 @@ catch_errors # ------------------------------------------------------------------------------ # verb_ip6() # -# - Configures IPv6 based on DISABLEIPV6 variable -# - If DISABLEIPV6=yes: disables IPv6 via sysctl +# - Configures IPv6 based on IPV6_METHOD variable +# - If IPV6_METHOD=disable: disables IPv6 via sysctl # - Sets verbose mode via set_std_mode() # ------------------------------------------------------------------------------ verb_ip6() { set_std_mode # Set STD mode based on VERBOSE - if [ "$DISABLEIPV6" == "yes" ]; then - echo "net.ipv6.conf.all.disable_ipv6 = 1" >>/etc/sysctl.conf - $STD sysctl -p + if [ "$IPV6_METHOD" == "disable" ]; then + msg_info "Disabling IPv6 (this may affect some services)" + mkdir -p /etc/sysctl.d + $STD tee /etc/sysctl.d/99-disable-ipv6.conf >/dev/null <