У меня есть две виртуальные машины на CentOS 6.5, работающие под управлением Plesk 12, а веб-сервер - Apache 2.2. Один является клоном другого, и я унаследовал их настройки от кого-то другого. Моя проблема в том, что я могу получить доступ к своим сайтам, размещенным на серверах, с любого компьютера. кроме самих серверов.
Скажем, example.com указывает на один из моих серверов. Если я подключусь по SSH к одному из серверов и запущу wget example.com
Я вернусь:
--2014-10-20 18:01:42-- http://example.com/ Resolving example.com... <ip address>
Connecting to example.com|<ip address>|:80... failed:
Connection timed out. Retrying.
Он разрешает правильный IP-адрес. Если я сбегу wget
на серверах, использующих IP-адрес напрямую, у меня такой же отрицательный результат.
Если я сбегу wget
к тому же домену на компьютере за пределами этих виртуальных машин я разрешаю тот же правильный IP-адрес, и я подключен. Использование localhost на виртуальных машинах работает нормально:
wget localhost
--2014-10-20 18:12:35-- http://localhost/
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:80... connected.
Проблема, похоже, в том, что серверы не знают, что им делать, когда они получают IP-адрес, и я исчерпал свои знания в этой области. Любые указания по этому поводу приветствуются!
Все комментарии помогли мне собрать все воедино и дали мне много материала для чтения, спасибо. Я нашел хорошее решение, которое не требовало никаких действий с маршрутизатором с NAT. Эта статья описал мою проблему и нашел хорошее решение, идя в том же направлении, что, я думаю, предлагал mc0e.
Вот команда, которую я выполнил, чтобы маршрутизировать это:
iptables -t nat -A OUTPUT -d <external ip addr> -s <subnet range> -j DNAT --to-destination <internal ip addr>
Вам нужен маршрут, который направляет трафик на ваш локальный интерфейс, и у вас может быть проблема с брандмауэром.
Добавьте вывод netstat -an
для маршрутизации. Скорее всего будет ipchains -L
или iptables -L
чтобы перечислить правила брандмауэра.