Esta es la Parte 2 de una serie de guías sobre WildFly. En este post (independiente) vamos a lograr dos cosas clave en un entorno RHEL 9:
- Acceder a WildFly desde otra máquina en la misma red (LAN)
- Configurar WildFly para que arranque automáticamente al reiniciar el servidor usando systemd (la forma profesional)
Requisito: ya tienes WildFly instalado (Parte 1) y sabes en qué ruta quedó (ej.
/opt/wildfly/wildfly-39.0.0.Final/).
Objetivo rápido (qué vas a conseguir)
- WildFly respondiendo desde otra PC en:
http://IP_DEL_SERVIDOR:8080 - (Opcional) Consola de administración en:
http://IP_DEL_SERVIDOR:9990 - WildFly iniciando solo al reiniciar:
systemctl status wildfly→active (running)
1) Configurar WildFly para acceder desde otra máquina
Por defecto, WildFly suele arrancar en 127.0.0.1 (solo el servidor). Para que escuche en la red debes bindear a 0.0.0.0.
Paso 1: Arrancar WildFly escuchando en la red
Detén WildFly si está corriendo (Ctrl + C) y arráncalo así:
./standalone.sh -b 0.0.0.0 -bmanagement 0.0.0.0
Detalle del comando
./standalone.sh: inicia WildFly en modo standalone.-b 0.0.0.0: hace que el puerto de la app (HTTP 8080) escuche en todas las interfaces (LAN).-bmanagement 0.0.0.0: hace que el puerto de administración (9990) también escuche en todas las interfaces.
⚠️ Tip de seguridad: En producción NO expongas 9990 a internet. Si lo necesitas, que sea solo en LAN o por VPN.
Paso 2: Abrir puertos en el firewall (RHEL 9)
RHEL normalmente bloquea conexiones entrantes. Abrimos los puertos de WildFly:
sudo firewall-cmd --add-port=8080/tcp --permanent
sudo firewall-cmd --add-port=9990/tcp --permanent
sudo firewall-cmd --reload
Detalle comando por comando
sudo firewall-cmd: administra firewalld (firewall de RHEL).--add-port=8080/tcp: permite tráfico TCP al puerto 8080.--add-port=9990/tcp: permite tráfico TCP al puerto 9990 (admin).--permanent: guarda la regla para que sobreviva reinicios.--reload: recarga reglas aplicando los cambios.
Verifica qué quedó abierto:
sudo firewall-cmd --list-ports
Qué hace
--list-ports: lista puertos permitidos en la zona activa.
Si solo quieres exponer 8080, omite 9990 y deja la administración restringida.
Paso 3: Probar desde otra máquina
Desde otra PC en la misma red:
curl http://IP_DEL_SERVIDOR:8080
Qué hace
curl: hace una petición HTTP y te muestra la respuesta/HTML o redirección.
También puedes probar en navegador:
http://IP_DEL_SERVIDOR:8080
Y consola admin (si la expusiste):
http://IP_DEL_SERVIDOR:9990
📌 Importante: Para entrar a la consola admin normalmente necesitas usuario de management (se crea con ./add-user.sh en la Parte 1).
2) Hacer que WildFly arranque automáticamente (systemd)
Esto es lo correcto en RHEL: que WildFly sea un servicio administrado por systemd.
Paso 1: Crear usuario dedicado (recomendado)
sudo useradd -r -s /sbin/nologin wildfly
Qué hace
useradd: crea un usuario.-r: lo crea como usuario de sistema (sin “home” normal).-s /sbin/nologin: evita que alguien inicie sesión interactiva con ese usuario.
Ahora asigna permisos del directorio:
sudo chown -R wildfly:wildfly /opt/wildfly
Qué hace
chown -R: cambia dueño de forma recursiva.wildfly:wildfly: usuario y grupo.- Esto permite que WildFly escriba logs, tmp y datos sin usar root.
Paso 2: Crear archivo de servicio systemd
Crea el servicio:
sudo nano /etc/systemd/system/wildfly.service
Qué hace
- Abre el editor
nanopara crear/editar el archivo del servicio.
Pega este contenido (ajusta la versión si tu carpeta cambia):
[Unit]
Description=WildFly Application Server
After=network.target
[Service]
Type=simple
User=wildfly
Group=wildfly
WorkingDirectory=/opt/wildfly/wildfly-39.0.0.Final
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk"
Environment="JBOSS_HOME=/opt/wildfly/wildfly-39.0.0.Final"
# App (8080) accesible en LAN:
Environment="JBOSS_BIND_ADDR=0.0.0.0"
# Management (9990): RECOMENDADO mantenerlo local.
# Si lo quieres en LAN, cambia a 0.0.0.0 y abre firewall cuidadosamente.
Environment="JBOSS_BIND_ADDR_MGMT=127.0.0.1"
ExecStart=/opt/wildfly/wildfly-39.0.0.Final/bin/standalone.sh -b ${JBOSS_BIND_ADDR} -bmanagement ${JBOSS_BIND_ADDR_MGMT}
ExecStop=/bin/kill -SIGTERM $MAINPID
Restart=on-failure
RestartSec=10
LimitNOFILE=102642
[Install]
WantedBy=multi-user.target
Por qué está así
User/Group: corre sin root (mejor práctica).JBOSS_BIND_ADDR=0.0.0.0: expone solo la app (8080) a la red.JBOSS_BIND_ADDR_MGMT=127.0.0.1: deja administración local (más seguro).ExecStop: detiene el proceso principal con SIGTERM (simple y confiable).
Si necesitas consola admin desde otra máquina, cambia
127.0.0.1a0.0.0.0y considera reglas de firewall por IP (LAN/VPN), no “abierto al mundo”.
Paso 3: Activar el servicio
sudo systemctl daemon-reload
sudo systemctl enable wildfly
sudo systemctl start wildfly
Detalle
daemon-reload: systemd “lee de nuevo” los servicios (porque agregaste uno nuevo).enable wildfly: habilita inicio automático al arrancar el sistema.start wildfly: inicia el servicio inmediatamente.
Ver estado:
sudo systemctl status wildfly
Qué hace
- Muestra si está
active (running), logs recientes y PID.
Paso 4: Probar reinicio
sudo reboot
Qué hace
- Reinicia el servidor para validar que el arranque automático funciona.
Después del reinicio:
systemctl status wildfly
curl http://localhost:8080
Qué valida
status: que el servicio arrancó solo.curl http://localhost:8080: que WildFly responde localmente.
Si quieres probar desde otra máquina (LAN):
http://IP_DEL_SERVIDOR:8080
Tip extra de seguridad (muy recomendado)
- Mantén 9990 solo en localhost o en una red privada (LAN/VPN).
- Si decides exponer 9990, evita abrirlo “a todo” en firewall: limita por IP o subred.
