В настоящее время я настраиваю веб-сервер в своей локальной сети, чтобы удовлетворить некоторые потребности, например использование 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
Спасибо, и я надеюсь, что мы сможем решить эту проблему вместе.
Я разобрался со своей проблемой, было две проблемы.
1: Мой DHCP-сервер все еще был включен на моем маршрутизаторе ... (хотя я уже отключил его, когда настраивал свой DHCP-сервер и DNS-сервер ...
2: Действительно, мой DNSMASQ был настроен неправильно. Теперь он настроен на перенаправление трафика со специфического домена (здесь devbox) на сервер apache. Я новичок, я понимаю, что сделал, но не смог бы это объяснить. (Не носитель языка)
#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
Как видно из вывода 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 не может быть получен за пределами локальной машины :-)
.