Невозможно получить доступ к веб-серверу Apache из локальной домашней сети.

perl -pe '/^\d/g && s/\G(?:(\.\K\d+(?=\.))|\.\K\d+(?=,))/sprintf "%0".($1?2:3)."d",$&/ge'

Пояснение:

Используемый здесь метод заключается в просмотре окрестностей числовых значений и выполнении действий на их основе. Таким образом, 2-е и 3-е числа видят точку с обеих сторон, в то время как 4-е число видит точку слева и запятую справа.

$1 устанавливается, когда регулярное выражение выбирает путь 2-го или 3-го числа и, соответственно, точность заполнения равна 2. OTOH, для 4-го числа заполнение равно 3.

%cat файл.txt

1.00.3.4,Some Text Here
1.01.01.1,Some Text Here
1.0.01.1,Some Number 1 Here
1.1.1.1,Some Text Referring to Document XXX Heading 1.2.3.4
1.2.3.4,Some \n \s \text

Результаты:

1.00.03.004,Some Text Here
1.01.01.001,Some Text Here
1.00.01.001,Some Number 1 Here
1.01.01.001,Some Text Referring to Document XXX Heading 1.2.3.4
1.02.03.004,Some \n \s \text
1
13.10.2019, 00:57
4 ответа

Во-первых, убедитесь, что httpd работает с sudo systemctl httpd status. Прежде чем мы случайно добавим повторяющееся правило, давайте проверим правила iptables с помощьюiptables -L

Чтобы убедиться, что мы принимаем все входящие http, давайте добавим ACCEPT в нашу таблицу

sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Если это не решит проблему, обязательно проверьте настройки Apache, указанные в /etc/apache2/apache2.conf. У нас должна быть базовая модель безопасности внизу файла conf. Например, вот что найдено в моем

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>

        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

В ports.conf убедитесь, что мы прослушиваем порт 80 на всех устройствах (на данный момент, пока мы не настроим вас)Listen *:80

Если ни один из них не вызывает проблемы, убедитесь, что apache2 также работает

2
27.01.2020, 23:30

Вы можете использовать nmap с удаленного компьютера, чтобы узнать, фильтруется ли порт 80.

$ nmap 10.0.0.11 -p 80

Starting Nmap 7.01 ( https://nmap.org ) at 2019-10-10 17:14 EDT
Nmap scan report for 10.0.0.11
Host is up (0.070s latency).
PORT   STATE SERVICE
80/tcp open  http
MAC Address: B4:75:0E:24:E8:7E (Belkin International)

Nmap done: 1 IP address (1 host up) scanned in 1.10 seconds
-2
27.01.2020, 23:30

When I try to connect from another device, using the local IP address of the Apache server, I get error messages in the browser, such as: in Firefox on a Mac, I get 'Unable to connect. Firefox can't establish a connection to the server at localhost.'. If I try to connect using the DuckDuckGo browser on an Android phone, I get 'Webpage not available. The webpage at http://localhost/ could not be loaded because: net::ERR_CONNECTION_REFUSED'.

Если вы используете localhost в качестве имени хоста с других машин, они пытаются соединиться сами с собой... На других машинах вы должны использовать фактический адрес вашего сервера. Так

  • на вашем сервере выполните:ip address showэто перечислит все ваши сетевые интерфейсы и адреса(inetстроки, которые выглядят как:inet 192.168.0.44/24 brd 192.168.0.255 scope global dynamic enp0s31f6). Игнорируйте интерфейс lo(, который находится по адресу 127.0.0.1 ), и используйте интерфейс enp*или wlp*. Они, вероятно, будут иметь адрес, начинающийся с192.168...
  • используйте адрес из строки inetна вашем Mac/или Android:http://192.168.0.44/

Использование адреса напрямую имеет два неудобства:

  1. может измениться (хотя обычно, если адресов больше, чем компьютеров, компьютерам переназначаются одни и те же адреса)
  2. На самом деле это не мнемоника.

На Mac вы, скорее всего, сможете решить проблему #2, добавив имя и адрес вашего сервера в файл /etc/hosts(или его эквивалент в OSX ). Это может быть невыполнимо на Android.

Для #1, если вам очень повезло, все ваши устройства поддерживают разрешение имен NETBIOS, и вы можете использовать их имена NETBIOS (, обычно их имя хоста ).

1
27.01.2020, 23:30

Публикую свой ответ, просто чтобы уточнить, в чем проблема:

Я использовал curl --verbose [local-IP]с терминала своего Mac, и из вывода было ясно, что он попадал на сервер Apache, но Wordpress перенаправлял на http://localhost/. Итак, я проверил настройки Wordpress, и в качестве «адреса сайта» было установлено http://localhost/. Я изменил это на http://[local-IP], и теперь все работает нормально. Спасибо всем, кто внес полезные предложения!

(Думаю, мораль этой истории в том, чтобы в следующий раз использовать средства командной строки -для отладки...)

0
27.01.2020, 23:30

Теги

Похожие вопросы