Apache2 Vhosts и DnsMasq, не удается получить доступ к веб-сайту с другого компьютера по локальной сети: ERR_CONNECTION_REFUSED

В настоящее время я настраиваю веб-сервер в своей локальной сети, чтобы удовлетворить некоторые потребности, например использование Phabricator или других служб интрасети. Для этого я установил apache2, php5, mysql и DNSMASQ, которые позволяют мне управлять DHCP- и DNS-серверами. Но теперь я m застрял с виртуальными хостами, которые отлично работают на локальном компьютере, но не могут быть доступны с другого компьютера в локальной сети, я получаю «ERR_CONNECTION_REFUSED».

Чтобы проверить свои настройки, я объявил виртуальный хост следующим образом:

Создание корневой папки нашего веб-сайта

$ sudo mkdir -p /var/www/test.devbox/public_html
$ chown -R $USER:$USER /var/www/test.devbox/public_html

Размещение индексного файла и добавление случайного текста

$ nano /var/www/test.devbox/public_html/index.html

Теперь мы создаем наш файл виртуального хоста

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/test.devbox.conf
$ sudo nano /etc/apache2/sites-available/test.devbox.conf

Файл конфигурации виртуального хоста

<VirtualHost *:80>
    ServerAdmin admin@test.devbox
    ServerName test.devbox
    ServerAlias www.test.devbox
    DocumentRoot /var/www/test.devbox/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Затем мы включаем его, используя

$ sudo a2ensite test.devbox

Затем я отредактировал свой файл hosts, чтобы он соответствовал директиве имени сервера в моем файле test.devbox.config (на стороне сервера)

$ sudo nano /etc/hosts

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

192.168.1.254   bbox

127.0.1.1       MyPie
127.0.0.1       MyPie
127.0.0.1       devbox
127.0.0.1       opcv.devbox www.opcv.devbox
127.0.0.1       test.devbox www.test.devbox

Здесь также находится мой файл dnsmasq.conf

$ sudo nano /etc/dnsmasq.conf

domain-needed
expand-hosts
bogus-priv
no-resolv
no-poll
localise-queries
no-negcache

# DNS
#interface=eth0
local=/devbox/
domain=devbox

cache-size=10000

server=8.8.4.4
server=8.8.8.8
#server=194.158.122.10
#server=194.158.122.15

# DHCP
dhcp-authoritative
dhcp-range=192.168.1.100,192.168.1.200,10h
dhcp-option=3,192.168.1.254

Затем я перезапустил все

$ sudo reboot 
   or
$ sudo /etc/init.d/dnsmasq restart
$ sudo service apache2 reload/restart

И на данный момент я не знаю, где мне искать, поскольку виртуальный хост работает локально, но не может быть доступен с другого компьютера в той же сети. Я больше не знаю, где искать.

Вот ответ команды apache2ctl

$ sudo apache2ctl -S

AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/apache2/ports.conf:5
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
     default server 127.0.0.1 (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost 127.0.0.1 (/etc/apache2/sites-enabled/000-default.conf:1)
     port 80 namevhost example.devbox (/etc/apache2/sites-enabled/example.devbox.conf:1)
             alias www.example.devbox
     port 80 namevhost opcv.devbox (/etc/apache2/sites-enabled/opcv.devbox.conf:1)
     port 80 namevhost phabricator.devbox (/etc/apache2/sites-enabled/phabricator.devbox.conf:1)
     port 80 namevhost test.devbox (/etc/apache2/sites-enabled/test.devbox.conf:1)
             alias www.test.devbox
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex rewrite-map: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

Спасибо, и я надеюсь, что мы сможем решить эту проблему вместе.

0
задан 30 September 2016 в 15:23
2 ответа

Я разобрался со своей проблемой, было две проблемы.

1: Мой DHCP-сервер все еще был включен на моем маршрутизаторе ... (хотя я уже отключил его, когда настраивал свой DHCP-сервер и DNS-сервер ...

2: Действительно, мой DNSMASQ был настроен неправильно. Теперь он настроен на перенаправление трафика со специфического домена (здесь devbox) на сервер apache. Я новичок, я понимаю, что сделал, но не смог бы это объяснить. (Не носитель языка)

dnsmasq.conf

#domain-needed not needed
no-hosts 
#expand-hosts not needed
bogus-priv
no-resolv
no-poll
localise-queries
no-negcache

# DNS
#interface=eth0
#local=/lan/
#domain=lan
address=/devbox/192.168.1.10 -> This is the line redirecting traffic. 


cache-size=10000

server=8.8.4.4
server=8.8.8.8
#server=194.158.122.10
#server=194.158.122.15

# DHCP
dhcp-authoritative
dhcp-range=192.168.1.100,192.168.1.200,10h
dhcp-option=3,192.168.1.254
0
ответ дан 24 November 2019 в 05:38

Как видно из вывода nslookup, у вас неверно настроена DNS запись, она указывает test.devbox на 127.0.0.1. Вместо этого он должен указывать на IP-адрес 192.168.x.x сервера.

После исправления этого (согласно вашим комментариям), чтобы сделать то, что вы хотите, вы должны убедиться, что каждая клиентская машина, на которой вы хотите перемещаться по сайтам, использует ваш сервер для разрешения DNS.

Что происходит, на клиентской машине A вы открываете браузер и ставите:

http://test.devbox/

В строке расположения.

Браузер на клиентской машине A запрашивает у DNS-сервера IP-адрес test.devbox и получает в результате 192.168.1.10.

Браузер открывает TCP соединение по порту 80 (HTTP) 192.168.1.80 и посылает этот запрос (здесь я опускаю неинтересные заголовки):

GET / HTP/1.1
Host: test.devbox
[...]

http сервер по этому адресу отвечает, как вы его настроили.

Короче говоря, если вы используете отдельные серверные и клиентские машины и хотите использовать вместо них FQDN, если для навигации по сайту используется IP, вы либо добавляете соответствующие записи в /etc/hosts машин (или эквивалент в окнах), либо следите за тем, чтобы обе машины использовали DNS-сервер под вашим контролем. И нет, доступ к 127.0.0.1 не может быть получен за пределами локальной машины :-)

.
0
ответ дан 24 November 2019 в 05:38

Теги

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