Non riesco ad accedere al sito WordPress da IP esterno mentre internamente funziona correttamente

20 lug 2017, 16:34:03
Visualizzazioni: 17.3K
Voti: 0

Ho configurato un piccolo sito web utilizzando LAMP (Raspbian) e WordPress.
Non verrà registrato alcun nome di dominio per il sito.
Per il momento sto accedendo al sito dalla rete locale.
Per accedere al sito inserisco semplicemente l'indirizzo IP interno del server.
Voglio accedere al sito dall'esterno della rete locale tramite l'IP pubblico.
L'IP pubblico è statico e un firewall è configurato per tradurre l'IP interno/porta predefinita(80) nell'IP pubblico statico/(porta casuale) e viceversa. Anche l'IP interno è statico e il Raspberry Pi è collegato direttamente al firewall via cavo.

Se invio una richiesta da un IP esterno la pagina non si carica mai e nel mio pannello di amministrazione (tramite il plugin WP Statistics) posso vedere la richiesta.

Vorrei far notare che ho modificato il file wp-config.php e specificamente queste righe:

define('WP_HOME','http://internalIP/');

define('WP_SITEURL','http://internalIP/');

Quali modifiche devo apportare affinché il sito risponda alle richieste esterne?

C'è qualcosa che dovrei verificare nella configurazione di WordPress/Apache/mySql/Linux?

Fatemi sapere se qualche informazione di configurazione potrebbe essere utile.

5
Commenti

Non tutti gli indirizzi IP sono instradabili. Esistono indirizzi IP privati che non sono instradabili e vengono utilizzati solo internamente. Se la tua azienda dispone di un client VPN, solitamente questo ti permetterà di accedere agli indirizzi IP interni.

user42826 user42826
20 lug 2017 18:36:16

@user42826 Per quanto ne so, le impostazioni di rete sono corrette. Un'azienda separata è responsabile dell'infrastruttura IT e del Firewall. Inoltre, le impostazioni sono state verificate anche dal produttore del Firewall. Da un breve test di rete, mi è stato detto che Wordpress (o Linux/Apache, non so esattamente) effettua un reindirizzamento al proprio indirizzo IP e non risponde all'indirizzo IP esterno. Dato che sono nuovo a Wordpress, voglio capire se questo comportamento potrebbe essere il risultato di alcune impostazioni e come posso modificare il sito per renderlo accessibile solo dall'esterno.

vkoukou vkoukou
20 lug 2017 19:25:08

Riesci a fare il ping dell'indirizzo IP? Riesci a connetterti a IPaddress:porta 80? Escludi Wordpress dal loop. (Dall'esterno) Prova ad accedere a una pagina html statica, ad esempio http://ipaddress/readme.html

user42826 user42826
20 lug 2017 19:46:08

@user42826 Grazie per le risposte. L'IP non è raggiungibile via ping (molto probabilmente per motivi di sicurezza). Ma posso accedere a ipaddress/readme.html e altri contenuti statici dal webserver senza problemi. Nel caso in cui inserisco index.php manualmente nel browser vengo reindirizzato all'URL di login (ho usato il plugin Theme My Login per consentire l'accesso al sito solo agli utenti loggati), tutto ciò che vedo sono contenuti statici. Questo supporta effettivamente l'ipotesi che la rete funzioni e che Wordpress abbia qualche problema. Hai qualche suggerimento su cosa potrebbe causare questo comportamento?

vkoukou vkoukou
20 lug 2017 20:17:39

Ora ho capito meglio la tua situazione e ho pubblicato una risposta. Tieni presente che ci sono anche altre soluzioni alternative per la tua situazione.

user42826 user42826
20 lug 2017 20:44:47
Tutte le risposte alla domanda 2
4

Quando si installa WordPress su un indirizzo IP (o un nome host), WordPress risponderà solo alle richieste provenienti da quell'indirizzo IP. Qualsiasi richiesta proveniente da un altro indirizzo IP, anche se risolve sullo stesso server, risulterà in un reindirizzamento a una pagina di errore di WordPress.

In questa situazione, procederei così:

  1. Installa WordPress sull'indirizzo IP pubblico. Questo funzionerà se riesci a instradare internamente verso l'indirizzo IP pubblico.
  2. Se non puoi instradare internamente verso l'indirizzo IP pubblico, suggerisco di installare su un nome host. È necessario configurare il DNS in modo che internamente risolva all'indirizzo IP interno; ed esternamente risolva all'indirizzo IP pubblico.
20 lug 2017 20:44:18
Commenti

Per il punto 1 intendi reinstallare WP? Oppure modificare le 2 righe define in wp-config.php sarebbe sufficiente? Per il punto 2 intendi il DNS della rete interna? Ad esempio configurare il DNS sul firewall/router o modificare gli host in linux per risolvere l'indirizzo pubblico? Qualsiasi informazione aggiuntiva/link sarebbe molto apprezzato. (nota che testerò questo domani in ufficio) quindi il feedback e/o il contrassegno della risposta come corretta potrebbe richiedere del tempo. Grazie per l'aiuto finora!

vkoukou vkoukou
20 lug 2017 21:27:09

L'indirizzo IP (privato) con cui hai installato è nel database. O reinstalla WP se è nuovo e non ti dispiace perdere il lavoro. Oppure potresti fare una ricerca e sostituzione nel tuo database. Inoltre dovresti aggiornare l'indirizzo IP in wp-config.php.

user42826 user42826
20 lug 2017 21:55:54

Proverò a sostituirlo nel database con backup/modifica/sostituzione offline e poi caricherò i nuovi file sul server più cambiare sia home che site url con l'IP pubblico in wp-config.php grazie per tutto l'aiuto. Tornerò a verificare se ha funzionato o meno.

vkoukou vkoukou
20 lug 2017 22:00:21

L'accesso tramite IP pubblico funziona! Ho utilizzato il metodo di rilocazione da questo post e ho modificato anche il file di configurazione. Ora Wordpress non gestisce le richieste provenienti da dietro il firewall (c'è un modo per farlo? sia tramite la rete che apache? forse questo dovrebbe essere un altro argomento). Grazie per l'aiuto!

vkoukou vkoukou
21 lug 2017 00:00:43
0

Anche se non è considerato esattamente il modo previsto di funzionamento, WP_HOME e WP_SITEURL possono essere dichiarati dinamicamente in base alla singola richiesta, invece di essere impostati staticamente.

PHP ha pochissimo stato intrinseco, quindi se gli dici di gestire una specifica richiesta come se rispondesse a questo o quel nome host/IP — lo farà.

Ovviamente, anche se questo permetterà al core di WordPress di avviarsi, c'è comunque uno stato dal suo lato, come gli URL memorizzati nel contenuto e così via.

In sintesi, è certamente possibile, ma la sua praticità dipende molto dalle specifiche del sito.

25 lug 2017 17:52:19