Correction of Previous Mistaken PR and the delete_ports function (#2231)

* Update x-ui.sh with ufw port settings

It really costs time when adding rules for a large range, if for loop is used in bash. Changed it to built-in port range support in ufw.


This commit is to correct the previous one, which cannot handle port range settings correctly.

Corrected the confirmation of the deleted ports.
This commit is contained in:
Gzngskxgr20 2024-04-23 05:05:05 +08:00 committed by GitHub
parent e794d3d87f
commit 835cf2801c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

19
x-ui.sh
View File

@ -620,7 +620,8 @@ open_ports() {
# Split the range into start and end ports # Split the range into start and end ports
start_port=$(echo $port | cut -d'-' -f1) start_port=$(echo $port | cut -d'-' -f1)
end_port=$(echo $port | cut -d'-' -f2) end_port=$(echo $port | cut -d'-' -f2)
ufw allow $start_port:$end_port ufw allow $start_port:$end_port/tcp
ufw allow $start_port:$end_port/udp
else else
ufw allow "$port" ufw allow "$port"
fi fi
@ -652,15 +653,27 @@ delete_ports() {
start_port=$(echo $port | cut -d'-' -f1) start_port=$(echo $port | cut -d'-' -f1)
end_port=$(echo $port | cut -d'-' -f2) end_port=$(echo $port | cut -d'-' -f2)
# Delete the port range # Delete the port range
ufw delete allow $start_port:$end_port ufw delete allow $start_port:$end_port/tcp
ufw delete allow $start_port:$end_port/udp
else else
ufw delete allow "$port" ufw delete allow "$port"
fi fi
done done
# Confirm that the ports are deleted # Confirm that the ports are deleted
echo "Deleted the specified ports:" echo "Deleted the specified ports:"
ufw status | grep "ALLOW" | grep -Eo "[0-9]+(/[a-z]+)?" for port in "${PORT_LIST[@]}"; do
if [[ $port == *-* ]]; then
start_port=$(echo $port | cut -d'-' -f1)
end_port=$(echo $port | cut -d'-' -f2)
# Check if the port range has been successfully deleted
(ufw status | grep -q "$start_port:$end_port") || echo "$start_port-$end_port"
else
# Check if the individual port has been successfully deleted
(ufw status | grep -q "$port") || echo "$port"
fi
done
} }
update_geo() { update_geo() {