На моем OSX-сервере есть папка, настроенная в приложении сервера для доступа через WebDAV. Эта папка используется для синхронизации OmniFocus. На моем роутере я настроил динамический днс. Когда я нахожусь вне моей домашней сети (физически отсутствует или когда подключен через vpn), я могу подключиться и выполнить точную синхронизацию через:

https://<server name from dyndns>/<username>/<path to WebDAV folder>

Однако, когда я нахожусь в моей домашней сети, соединение с WebDAV не работает (другие соединения, AFP, f.ex, работают).

По каким причинам я не могу подключиться к WebDAV из моей домашней сети? Какие файлы журналов могут давать подсказки и где они хранятся?

Я использую OSX сервер 10.9.3. и server.app. Спасибо за вашу помощь.

1 ответ1

0

Ваш роутер (NAT-шлюз), вероятно, не выполняет NAT шпильки правильно. NAT шпильки - это когда NAT должен выполнять и исходящий, и входящий NAT для одного и того же пакета. Это необходимо в вашем случае, потому что ваш клиент WebDAV пытается подключиться к внешнему IP-адресу вашего NAT. Таким образом, ваш NAT должен выполнить исходящий NAT для пакета, чтобы отправить его на этот публичный IP-адрес. Но затем он понимает, что общедоступный IP-адрес является его собственным адресом, и у него есть запись переадресации порта для того, как перенаправить попытки соединения на порт 80 (или 443 или что-то еще), поэтому он должен выполнить входящий NAT для того же пакета, чтобы правильно переслать его на ваш сервер WebDAV.

Некоторые домашние шлюзы, которые правильно выполняют функцию Hairpin NAT на большинстве портов, будут перегружены портом 80, потому что на этом порту запущен пользовательский интерфейс администрирования через Интернет. Иногда вы можете заставить их прекратить удушение, либо отключив веб-администрирование через интерфейс WAN, либо переместив веб-интерфейс на другой порт, если это позволяет вам это настроить. Но некоторые не позволяют вам изменить порт, и все еще задыхаются, даже если у вас не включено веб-администрирование для порта WAN.

Вот еще несколько вещей, которые стоит попробовать:

  1. Посмотрите в пользовательском интерфейсе вашего шлюза NAT или онлайн-справке, как включить функцию шпильки NAT, если она не включена по умолчанию. Если вы свернули свой собственный NAT-шлюз с, скажем, iptables в Linux, поищите в Интернете советы по добавлению правил Hairpin NAT в конфигурацию iptables.
  2. Убедитесь, что вы используете последнюю версию прошивки для вашей версии make/model/hardware вашего домашнего шлюза, на случай, если Hairpin NAT был недавно исправлен.
  3. Если ничего из вышеперечисленного не работает, подумайте о покупке лучшего домашнего шлюза или загрузке дистрибутива прошивки стороннего производителя, такого как DD-WRT, на свой компьютер.

Я предполагаю, что вы не используете базовую станцию AirPort (Extreme/Express/Time Capsule) в качестве домашнего шлюза. По моему опыту, Apple постоянно получает Hairpin NAT на всех своих шлюзах.

Если ваш кабельный или DSL-модемный блок - это тот же блок, который действует в качестве шлюза NAT, и у вас есть доступ к базовой станции AirPort, рассмотрите возможность отключения функций NAT и DHCP-сервера вашего модема, сделав его просто прозрачным мостом. Затем подключите порт WAN вашей базовой станции AirPort к порту LAN вашего модема и настройте базовую станцию AirPort для работы с NAT. Вы можете сделать это практически с любым маршрутизатором Wi-Fi, но я не могу поручиться за других, правильно ли они выполняют Hairpin NAT.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .