Я довольно озадачен этим, я часами возился с этим без всякой радости - я знаю, что это будет что-то глупое, что я пропустил.
В нашем старом офисе у нас есть маршрутизатор Netgear DG834PN, у которого есть несколько настроек переадресации портов - несколько на машину с сервером 2003, работающую там, и несколько на резервную машину NAS.
Все это работало нормально до следующей недели. Я установил DHCP-сервер на Server 2003, но с тех пор я не авторизовал / остановил его, поэтому он больше не должен ничего делать. С тех пор все было перезагружено.
Переадресация портов на офисный сервер работает нормально, но не на другие машины. Я даже пробовал перенаправить порт 80 с Server 2003 (который отлично работает) на другую машину (у которой открыт порт 80), но это все равно не удается - я подтвердил это, пытаясь подключиться из нескольких внешних мест.
Из сети или через удаленный рабочий стол на сервер я могу получить доступ ко всему, если я подключусь к серверу через VPN, я могу получить доступ ко всему (как я полагаю, в обход NAT).
SSH-подключение к маршрутизатору или просмотр его журналов в веб-админке, все выглядит нормально, он переходит на правильный IP-адрес, правильный порт, и клиенты не должны блокировать соединение (их не было раньше, и я тоже не вижу что-нибудь в их журналах), но соединение никогда не происходит. Я пробовал тестировать с веб-браузерами, FileZilla и telnet.
Вот журнал от маршрутизатора, когда я пытаюсь подключиться к правилу переадресации рабочего порта на Server 2003 (HTTP) и правилу переадресации неработающего порта к резервному NAS (FTP, работающему на порту 2121, но порты / протоколы кажутся несущественными ):
// server 2003, works
Sun, 2011-05-15 00:22:04 - TCP Packet - Source:88.110.x.x,32444 Destination:192.168.0.7,80 - [HTTP match]
// NAS machine, fails (2121 is the correct port)
Sun, 2011-05-15 00:21:41 - TCP Packet - Source:88.110.x.x,32443 Destination:192.168.0.90,2121 - [FTP_NAS match]
Вот записи в iptables от маршрутизатора (они были настроены с помощью веб-интерфейса) для порта 2121 (я заменил наше настоящее доменное имя на example.co.uk):
# iptables --list | grep :2121
LOG tcp -- anywhere anywhere state NEW tcp dpt:2121 LOG level warning prefix `[FTP_NAS match]'
ACCEPT tcp -- anywhere nas.ads1.example.co.uktcp dpt:2121
Есть ли у кого-нибудь еще идеи? Заранее спасибо!
Ваши маршруты по умолчанию на рассматриваемых хостах все еще проходят через DG834? Если вы испортили DHCP, вы могли это изменить.
Кроме того, я бы предложил использовать сниффер протокола, такой как Wireshark, чтобы проверить, а) ваши запросы правильно перенаправляются на хосты б) запросы инициируют ответы в) ответы направляются на MAC-адрес DG834
Если все это применимо, у вас, вероятно, будет какая-то фильтрация, которая предотвращает прохождение исходящего трафика.
Исправлена! Поскольку я знаю, как раздражает, когда кто-то не оставляет ответа, я объясню, что я сделал.
Похоже, что произошло то, что на резервном ящике (Netgear ReadyNAS) он потерял свои настройки шлюза, что должно было означать, что он запутался и не мог направить данные обратно на удаленные хосты (но не имел проблем с внутренним ).
Я начал становиться немного подозрительным, когда мог пинговать внутренние сайты с NAS, но когда я попытался пинговать внешний сайт, я получил ошибку:
NAS:~# ping www.google.com
connect: Network is unreachable
У меня есть SSH-доступ к коробке, поэтому, когда я запустил:
route -nee
Я бы получил такой ответ:
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0 0 0
Когда я искал информацию об этом в Google, я где-то читал, что должна быть запись для сопоставления адреса шлюза 0.0.0.0 с маршрутизатором.
После того, как я добавил IP-адрес шлюза обратно в NAS, я получил следующий результат:
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0 0 0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0 0 0 0
В результате и пинг с NAS, и переадресация портов работают сразу.
По-видимому, это должно было случиться и с другими хостами, на которые я пытался выполнить переадресацию.
Спасибо всем за вашу помощь, она указала мне правильное направление.
«Из сети или через удаленный рабочий стол на сервер я могу получить доступ ко всему, если я подключусь к серверу через VPN, я могу получить доступ ко всему (как я полагаю, в обход NAT)».
Вы можете более внимательно изучить отдельные серверы в их правилах брандмауэра, чтобы убедиться, что там нет ничего, ограничивающего доступ только с внутренних адресов. Взглянув на ваш рабочий сервер, можно также проверить, как обычно регистрируется внешний доступ (внутренний или внешний адрес (а)).