У меня есть арендованный сервер с XenServer 6.2. У меня только 1 общедоступный IP-адрес, поэтому я сделал несколько NAT для перенаправления портов 22 и 80 на мою виртуальную машину WebServer. У меня проблема с перенаправлением порта 80.
Когда я использую это перенаправление, я могу войти в Apache веб-сервера, но этот сервер теряет доступ к сети.
Я получаю такую ошибку:
W: Failed to fetch http://http.debian.net/debian/dists/wheezy/main/source/Sources 404 Not Found [IP: 46.4.205.44 80]
но я могу пинговать где угодно.
XenserverIP: 80 перенаправлено на 10.0.0.2:80 (WebServer).
Это часть перенаправления порта 80 моего IPTables XenServer:
-A PREROUTING -i xenbr1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0
.2:80
-A INPUT -i xenbr1 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
COMMIT
Что не так в моей конфигурации? Есть проблема с XenServer?
Спасибо за вашу помощь !
Изменить: вот мой полный контент iptables:
*nat
:PREROUTING ACCEPT [51:4060]
:POSTROUTING ACCEPT [9:588]
:OUTPUT ACCEPT [9:588]
-A PREROUTING -p tcp -m tcp --dport 1234 -j DNAT --to-destination 10.0.0.2:22
-A PREROUTING -i xenbr1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0
.2:80
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [5434:4284996]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5014:6004729]
-A INPUT -i xenbr1 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
COMMIT
Обновить :
У меня есть второй сервер с IP-адресом 10.0.0.3, и у него та же проблема, что и у 10.0.0.2.
Думаю, я нашел небольшое объяснение:
У меня есть apache, который прослушивает 10.0.0.2:80 Поскольку у меня есть правило переадресации NAT на моем Xenserver, весь входящий трафик из внешней сети (запросы веб-сайтов, загрузки ...) направляется на 10.0.0.2:80, потому что он использует порт 80.
Вот почему у меня такая же проблема на моей второй виртуальной машине. Если я пытаюсь выполнить обновление apt-get, я делаю запрос на веб-сайты, которые возвращаются на порт 80, поэтому перенаправляются на apache.
Кто-нибудь может помочь мне решить эту проблему? (Это проблематично, я не могу получить доступ к веб-сайтам во внутренней сети, если мой сервер Apache работает ^^)
Ваше правило DNAT должно включать "-d your-public-external-ip", иначе правило NAT будет сопоставлять все пакеты на порт 80, включая исходящие пакеты. Вероятно, вы перенаправляете исходящие HTTP-запросы на свой собственный веб-сервер. Это должно подтвердить просмотр журналов доступа.