Pulsa ESC para cerrar

Curso WordpressCurso Wordpress

Cambió la IP de tu casa: actualízala en MySQL remoto, CSF y cPHulk con un comando

Si te conectas a una base de datos del servidor desde tu casa (por ejemplo, con un programa de escritorio) o tienes tu IP en las listas blancas del firewall, cada vez que tu proveedor de internet te cambia la IP hay que actualizarla en varios lugares. actualizar-ip-casa.sh lo hace de una vez y recuerda cuál era la anterior para quitarla.

Antes de empezar

  • Necesitas un VPS o servidor dedicado con cPanel/WHM y acceso root (desde WHM → Terminal basta).
  • Los scripts se probaron en AlmaLinux 10 con cPanel 138, PHP 8.3 de EasyApache (/opt/cpanel/ea-php83) y WP-CLI instalado en /usr/local/bin/wp. Si tu servidor usa otra versión de PHP, cambia la ruta ea-php83 en el script.
  • Pruébalos primero en un horario tranquilo y lee lo que hace cada uno antes de ejecutarlo. Se comparten tal cual, sin garantía: adáptalos a tu servidor.

Qué hace

  • Agrega la IP nueva al MySQL remoto de la cuenta que indiques en CUENTA.
  • La agrega a la lista blanca de CSF (el firewall) y a la de cPHulk (la protección contra fuerza bruta de cPanel).
  • Quita la IP anterior de los tres lugares.
  • Guarda la IP actual en /root/.ip-casa para la próxima vez.

Instalación

Entra a WHM → Terminal (como root) y pega este bloque completo de una vez. Crea el archivo /root/actualizar-ip-casa.sh, le da permisos y comprueba que quedó bien escrito:

cat > /root/actualizar-ip-casa.sh <<'EOF'
#!/bin/bash
# Cuando cambia la IP de la casa: la autoriza en MySQL remoto (de la cuenta indicada en CUENTA), CSF y cPHulk, y quita la anterior.
# Uso: /root/actualizar-ip-casa.sh NUEVA_IP     (la IP actual se ve en https://ifconfig.me)
CUENTA=TU_CUENTA    # cuenta de cPanel cuya base de datos usas desde tu casa
REG=/root/.ip-casa
NUEVA="$1"; VIEJA=$(cat $REG 2>/dev/null)
if ! [[ "$NUEVA" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then
  echo "Uso: $0 NUEVA_IP   (tu IP actual se ve en https://ifconfig.me)"; echo "IP registrada hoy: ${VIEJA:-ninguna}"; exit 1
fi
[ "$NUEVA" = "$VIEJA" ] && { echo "La IP $NUEVA ya esta registrada, no hay nada que cambiar"; exit 0; }
echo "IP anterior: ${VIEJA:-ninguna registrada}  ->  IP nueva: $NUEVA"
uapi --user=$CUENTA Mysql add_host host=$NUEVA 2>/dev/null | grep -q "status: 1" && echo "MySQL remoto de $CUENTA: IP agregada" || echo "MySQL remoto: no se pudo agregar (revisar en cPanel de $CUENTA -> MySQL remoto)"
csf -a $NUEVA "IP casa $(date +%F)" >/dev/null 2>&1 && echo "CSF: IP agregada a la lista blanca"
whmapi1 create_cphulk_record list_name=white ip=$NUEVA comment="IP casa" >/dev/null 2>&1 && echo "cPHulk: IP agregada a la lista blanca"
if [ -n "$VIEJA" ]; then
  uapi --user=$CUENTA Mysql delete_host host=$VIEJA >/dev/null 2>&1 && echo "MySQL remoto: quitada $VIEJA"
  csf -ar $VIEJA >/dev/null 2>&1 && echo "CSF: quitada $VIEJA"
  whmapi1 delete_cphulk_record list_name=white ip=$VIEJA >/dev/null 2>&1 && echo "cPHulk: quitada $VIEJA"
fi
echo "$NUEVA" > $REG; chmod 600 $REG
echo "Listo. IP registrada: $NUEVA"
EOF
chmod 700 /root/actualizar-ip-casa.sh && bash -n /root/actualizar-ip-casa.sh && echo SCRIPT_OK

Si al final aparece SCRIPT_OK, el script está listo. Si no aparece, el bloque se pegó incompleto o con comillas cambiadas: vuelve a pegarlo.

Antes de usarlo, cambia CUENTA=TU_CUENTA por el usuario de cPanel cuya base de datos usas desde casa.

Cómo usarlo

Averigua tu IP actual entrando a https://ifconfig.me desde tu casa, y luego:

/root/actualizar-ip-casa.sh NUEVA_IP
/root/actualizar-ip-casa.sh                # sin IP: muestra cuál está registrada

Cómo leer el resultado

  • Muestra la IP anterior y la nueva, y confirma cada cambio: MySQL remoto, CSF y cPHulk agregados, y la IP anterior quitada.
  • Si dice «MySQL remoto: no se pudo agregar», agrégala a mano en el cPanel de esa cuenta → Bases de datos → MySQL remoto.

Si cambió tu IP y el servidor te bloqueó, entra a WHM desde otra red (por ejemplo, los datos del celular) para correr el script.