Nu pot accesa site-ul WordPress de la adresa IP externă, dar funcționează în rețea internă

20 iul. 2017, 16:34:03
Vizualizări: 17.3K
Voturi: 0

Am configurat un mic website folosind LAMP (Raspbian) și WordPress.
Nu voi înregistra un nume de domeniu pentru website.
Momentan accesez site-ul doar din interiorul rețelei locale.
Pentru acces folosesc doar adresa IP internă a serverului.
Doresc să accesez site-ul din afara rețelei locale prin adresa IP publică.
IP-ul public este static și am configurat un Firewall pentru a traduce IP-ul intern/portul implicit(80) către IP-ul public static/(port aleatoriu) și invers. IP-ul intern este de asemenea static iar Raspberry Pi este conectat direct la Firewall prin cablu.

Când trimit o cerere de pe o adresă IP externă, pagina nu se încarcă niciodată, însă în panoul de administrare (prin plugin-ul WP Statistics) văd cererea.

Menționez că am modificat wp-config.php și anume aceste linii:

define('WP_HOME','http://internalIP/');
// Definește URL-ul principal al site-ului

define('WP_SITEURL','http://internalIP/');
// Definește URL-ul de bază pentru WordPress

Ce modificări trebuie să fac pentru ca site-ul să răspundă la cererile externe?

Există ceva ce ar trebui să verific în configurația WordPress/Apache/mySql/Linux?

Spuneți-mi dacă aveți nevoie de informații suplimentare despre configurație.

5
Comentarii

Nu toate adresele IP sunt rutabile. Există adrese IP private care nu sunt rutabile; sunt folosite doar intern. Dacă compania ta are un client VPN, de obicei acesta îți va permite accesul la adresele IP interne

user42826 user42826
20 iul. 2017 18:36:16

@user42826 Din câte știu, setările de rețea sunt corecte. O altă companie este responsabilă pentru infrastructura IT și Firewall-ul. Mai mult, setările au fost verificate și de producătorul Firewall-ului. Dintr-un scurt test de rețea, mi s-a spus că WordPress (sau Linux/Apache - nu știu exact) face o redirecționare către propria adresă IP și nu răspunde înapoi la adresa IP externă. Deoarece sunt nou în WordPress, vreau să aflu dacă un astfel de comportament ar putea fi rezultatul unor setări și cum pot modifica site-ul să fie accesibil doar din exterior.

vkoukou vkoukou
20 iul. 2017 19:25:08

Poți face ping la adresa IP? Poți să te conectezi la IPaddress:port 80? Scoate WordPress din ecuație. (Din exterior) Încearcă să accesezi o pagină html statică, de ex. http://ipaddress/readme.html

user42826 user42826
20 iul. 2017 19:46:08

@user42826 Mulțumesc pentru răspunsuri. IP-ul nu este pingabil (cel mai probabil din motive de securitate). Dar pot accesa ipaddress/readme.html și alte conținuturi statice de pe serverul web fără probleme. În cazul în care introduc manual index.php în browser, sunt redirecționat către URL-ul de login (am folosit pluginul Theme My Login pentru a permite accesul pe site doar utilizatorilor autentificați), tot ce văd este conținut static. Aceasta susține într-adevăr presupunerea că rețeaua este în regulă și Wordpress are o problemă. Aveți sugestii despre ce ar putea cauza acest comportament?

vkoukou vkoukou
20 iul. 2017 20:17:39

Înțeleg mai bine situația ta acum și am postat un răspuns. Reține că există și alte soluții alternative pentru situația ta.

user42826 user42826
20 iul. 2017 20:44:47
Toate răspunsurile la întrebare 2
4

Când instalați WordPress pe o adresă IP (sau un nume de gazdă), WordPress va răspunde doar la cererile pe acea adresă IP. Orice cerere de la o altă adresă IP, chiar dacă se rezolvă pe același server, va duce la o redirecționare către o pagină de eroare WordPress.

În această situație, aș proceda astfel:

  1. Instalați WordPress pe adresa IP publică. Acest lucru va funcționa dacă puteți direcționa traficul intern către adresa IP publică.
  2. Dacă nu puteți direcționa traficul intern către adresa IP publică, atunci vă sugerez să instalați pe un nume de gazdă. Trebuie să configurați DNS-ul astfel încât intern să se rezolve către adresa IP internă, iar extern să se rezolve către adresa IP publică.
20 iul. 2017 20:44:18
Comentarii

Prin 1 te referi la reinstalarea WP? Sau schimbarea celor 2 linii define în wp-config.php ar fi suficient? Prin 2 te referi la DNS-ul rețelei interne? de ex. configurarea DNS pe firewall/router sau modificarea fișierului hosts în Linux pentru a rezolva către adresa publică? Orice informație/link suplimentar ar fi foarte apreciat. (te rog să notezi că voi testa asta mâine la birou) așadar feedback-ul și/sau marcarea răspunsului ca corect ar putea dura puțin. Mulțumesc pentru ajutor până acum!

vkoukou vkoukou
20 iul. 2017 21:27:09

Adresa IP (privată) cu care ai instalat este în baza de date. Fie reinstalezi WP dacă este nou și nu te deranjează să pierzi munca. Sau poți face o căutare și înlocuire în baza ta de date. În plus, ar trebui să actualizezi adresa IP în wp-config.php.

user42826 user42826
20 iul. 2017 21:55:54

Voi încerca să o înlocuiesc în baza de date cu backup/modificare/înlocuire offline și apoi voi încărca noile fișiere pe server plus voi schimba atât home cât și siteurl la adresa IP publică în wp-config.php mulțumesc pentru tot ajutorul. Voi reveni și voi verifica dacă a funcționat sau nu.

vkoukou vkoukou
20 iul. 2017 22:00:21

Accesul prin IP public funcționează! Am folosit metoda de relocare din acest post și am modificat și fișierul de configurare. Acum WordPress nu mai procesează cererile din spatele firewall-ului (există vreo modalitate de a face asta? fie prin rețea, fie prin Apache? poate ar trebui să fie un alt subiect). Mulțumesc pentru ajutor!

vkoukou vkoukou
21 iul. 2017 00:00:43
0

Deși nu este considerat un mod intenționat de funcționare, WP_HOME și WP_SITEURL pot fi declarate dinamic în funcție de fiecare cerere individuală, în loc să fie hardcodate.

PHP nu are prea multă stare internă, așa că dacă îi spui să trateze o anumită cerere ca și cum ar răspunde la un anumit nume de gazdă/IP — o va face.

Desigur, deși acest lucru va face ca nucleul WordPress să pornească, există o anumită stare pe partea sa, cum ar fi URL-urile capturate în conținut și altele asemenea.

Pe scurt, acest lucru este cu siguranță posibil, dar practicitatea lui depinde foarte mult de specificul site-ului.

25 iul. 2017 17:52:19