No puedo acceder a mi sitio WordPress desde IP externa mientras internamente funciona correctamente

20 jul 2017, 16:34:03
Vistas: 17.3K
Votos: 0

He configurado un pequeño sitio web usando LAMP (Raspbian) y WordPress.
No se registrará ningún nombre de dominio para el sitio web.
Por ahora estoy accediendo al sitio desde dentro de la red local.
Para acceder al sitio simplemente ingreso la dirección IP del servidor (interna).
Quiero acceder al sitio desde fuera de la red local a través de la IP pública.
La IP pública es estática y hay un Firewall configurado para traducir la IP interna/puerto predeterminado(80) a la IP pública estática/(puerto aleatorio) y viceversa. La IP interna también es estática y la Raspberry Pi está conectada directamente al Firewall por cable.

Si envío una solicitud desde una IP externa, la página nunca carga y dentro de mi panel de administración (a través del plugin WP Statistics) puedo ver la solicitud.

Me gustaría mencionar que he modificado el archivo wp-config.php y específicamente estas líneas:

define('WP_HOME','http://internalIP/'); // Define la URL principal del sitio

define('WP_SITEURL','http://internalIP/'); // Define la URL del sitio WordPress

¿Qué cambios necesito hacer para que el sitio responda a las solicitudes externas?

¿Hay algo que deba revisar en mi configuración de WordPress/Apache/mySql/Linux?

Por favor indícame si alguna información de configuración sería útil.

5
Comentarios

No todas las direcciones IP son enrutables. Existen direcciones IP privadas que no son enrutables; solo se utilizan internamente. Si tu compañía tiene un cliente VPN, usualmente esto te permitirá acceder a las direcciones IP internas.

user42826 user42826
20 jul 2017 18:36:16

@user42826 Según mi conocimiento, la configuración de red es correcta. Una empresa separada es responsable de la infraestructura IT y del Firewall. Además, la configuración fue verificada también por el fabricante del Firewall. A partir de pruebas rápidas de red, me informaron que Wordpress (o Linux/Apache, no estoy seguro exactamente) hace una redirección a su propia dirección IP y no responde de vuelta a la dirección IP externa. Como soy nuevo en Wordpress, quiero averiguar si este comportamiento podría ser el resultado de alguna de las configuraciones y cómo puedo modificar el sitio para que sea accesible solamente desde el exterior.

vkoukou vkoukou
20 jul 2017 19:25:08

¿Puedes hacer ping a la dirección IP? ¿Puedes conectarte a IPaddress:puerto80? Saca WordPress de la ecuación. (Desde afuera) Intenta acceder a una página html estática, por ejemplo http://ipaddress/readme.html

user42826 user42826
20 jul 2017 19:46:08

@user42826 Gracias por las respuestas. La IP no es accesible por ping (probablemente por seguridad). Pero puedo acceder a ipaddress/readme.html y otro contenido estático del servidor web sin problemas. En caso de que ponga index.php manualmente en el navegador, me redirige a la URL de login (he usado el plugin Theme My Login para permitir solo usuarios logueados en el sitio), todo lo que veo es contenido estático. Esto efectivamente apoya la suposición de que la red está bien y Wordpress tiene algún problema. ¿Alguna sugerencia sobre qué podría causar este comportamiento?

vkoukou vkoukou
20 jul 2017 20:17:39

Ahora entiendo mejor tu situación y he publicado una respuesta. Ten en cuenta que hay otras soluciones alternativas también para tu caso.

user42826 user42826
20 jul 2017 20:44:47
Todas las respuestas a la pregunta 2
4

Al instalar WordPress en una dirección IP (o nombre de host), WordPress solo responderá a solicitudes en esa dirección IP. Cualquier solicitud desde otra dirección IP, incluso si se resuelve al mismo servidor, resultará en una redirección a una página de error de WordPress.

En esta situación, yo haría lo siguiente:

  1. Instalar WordPress en la dirección IP pública. Esto funcionará si puedes enrutar a la dirección IP pública internamente.
  2. Si no puedes enrutar a la dirección IP pública internamente, entonces sugiero instalar en un nombre de host. Necesitas configurar tu DNS para que internamente resuelva a la dirección IP interna; y externamente resuelva a la dirección IP pública.
20 jul 2017 20:44:18
Comentarios

Para 1, ¿te refieres a reinstalar WP? ¿O cambiar las 2 líneas define en wp-config.php sería suficiente? Para 2, ¿te refieres al DNS de la red interna? Por ejemplo, ¿configurar DNS en el firewall/router o cambiar los hosts en Linux para que resuelvan a la dirección pública? Cualquier información adicional/enlaces sería muy apreciada. (por favor ten en cuenta que probaré esto mañana en la oficina) por lo que la retroalimentación y/o marcar la respuesta como correcta podría tardar un poco. ¡Gracias por la ayuda hasta ahora!

vkoukou vkoukou
20 jul 2017 21:27:09

La dirección IP (privada) con la que instalaste está en la base de datos. O reinstalas WP si es nuevo y no te importa perder tu trabajo. O podrías hacer una búsqueda y reemplazo en tu base de datos. Adicionalmente necesitarías actualizar la dirección IP en wp-config.php.

user42826 user42826
20 jul 2017 21:55:54

Intentaré reemplazarlo en la base de datos con respaldo/modificar/reemplazar fuera de línea y luego subir los nuevos archivos al servidor más cambiar tanto home como site url a la IP pública en wp-config.php gracias por toda la ayuda. Volveré para verificar si esto funcionó o no.

vkoukou vkoukou
20 jul 2017 22:00:21

¡El acceso a la IP pública está funcionando! Utilicé el método de reubicación de esta publicación y también modifiqué el archivo de configuración. Ahora Wordpress no atiende solicitudes desde detrás del firewall (¿hay alguna forma de hacer esto? ya sea a través de la red o de apache? quizás esto debería ser otro tema). ¡Gracias por la ayuda!

vkoukou vkoukou
21 jul 2017 00:00:43
0

Aunque no se considera exactamente un modo de operación intencionado, WP_HOME y WP_SITEURL pueden declararse dinámicamente condicionados a una solicitud individual, en lugar de estar codificados de forma estática.

PHP tiene muy poco estado de forma nativa, por lo que si le indicas que maneje una solicitud específica como si respondiera a un nombre de host o IP determinado, lo hará.

Por supuesto, aunque esto hará que el núcleo de WordPress arranque, hay algo de estado en su lado, como URLs capturadas en el contenido y demás.

En resumen, esto es ciertamente posible, pero su utilidad práctica depende en gran medida de las características específicas del sitio.

25 jul 2017 17:52:19