- Вопрос или проблема
- Ответ или решение
- Устранение проблем с подключением NFS между VPS: Анализ причин тайм-аутов
- 1. Сетевые настройки и маршрутизация
- 1.1. Проверка сетевых подключений
- 1.2. Проверьте настройки сети
- 2. Конфигурация NFS
- 2.1. Проверка настроек /etc/exports
- 2.2. Перезагрузка NFS сервера
- 3. Прослушивание порта NFS
- 3.1. Статус службы NFS
- 3.2. Проверка порта TCP 2049
- 4. Отладка и диагностика
- 4.1. Логи NFS
- 4.2. Тестирование подключения через Telnet
- 5. Провайдер и сетевые ограничения
- Заключение
Вопрос или проблема
Итак, у меня есть три VPS-сервера, к которым я получаю доступ по IP-адресам. Давайте назовем их A.B.C.1, A.B.C.2 и A.B.D.3. “D” отражает тот факт, что это другой номер – хотя провайдер и дата-центр те же. Информацию о настройке NFS было довольно трудно найти; также аутентификация, кажется, требует настройки Kerberos, поэтому я предпочел бы пока ограничить доступ по IP (а после того, как все будет работать без Kerberos, возможно, добавить его).
Я пытаюсь настроить доступ к общему каталогу на A.B.C.1. A.B.C.1 и A.B.C.2 работают на Debian 11; A.B.D.3 работает на Debian 12.
Я добавил следующую строку в /etc/exports
на A.B.C.1:
/home/user/shared-dir A.B.C.2(rw,sync,no_subtree_check,all_squash,anonuid=1001,anongid=1001) A.B.D.3(rw,sync,no_subtree_check,all_squash,anonuid=1001,anongid=1001)
Затем я убедился, что файл читается:
# exportfs -a
# systemctl restart nfs-kernel-server
На обеих клиентских машинах я создал каталог /home/user/shared-dir-mount
, а затем выполнил:
# mount -t nfs A.B.C.1:/home/user/shared-dir /home/user/shared-dir-mount
Эта команда успешно монтирует общий ресурс на A.B.C.2. Однако на A.B.D.3 соединение истекает по времени.
На A.B.D.3, пока я ждал истечения времени соединения, я вижу это:
# ss -nt | grep :2049
SYN-SENT 0 1 5.34.179.122:747 5.134.178.122:2049
Однако на A.B.C.1, сервере NFS, когда я выполняю ss -tap | grep 2049
, я ничего не вижу. Значит, никто на этом порту не слушает? Но тогда почему соединение работает с A.B.C.2?
На серверах не установлен ни один брандмауэр.
Я был бы очень признателен за советы по устранению неполадок в этом случае.
Одно предположение, которое у меня есть, это то, что это может быть брандмауэр, который провайдер имеет между подсетями или физическими коробками (A.B.C.1 и A.B.C.2 могут находиться на одной физической коробке); в этом случае, с чего мне вообще начать попытки обойти это? Другое подозрение – некоторые изменения по умолчанию между Debian 11 и 12. Но все это действительно выстрелы в темноте, и я надеюсь на какой-то экспертный свет в этом вопросе 🙂
Ответ или решение
Устранение проблем с подключением NFS между VPS: Анализ причин тайм-аутов
Ваша проблема с подключением NFS между VPS, A.B.C.1 и A.B.D.3, может зависеть от множества факторов. Давайте разберем возможные причины и шаги для их устранения.
1. Сетевые настройки и маршрутизация
1.1. Проверка сетевых подключений
Первоначально, убедитесь, что VPS A.B.C.1 может принимать подключение от A.B.D.3. Для этого выполните следующие команды:
# ping A.B.C.1
# traceroute A.B.C.1
Если пинг проходит, значит, сервер доступен. Если нет, проблема может быть связана с сетевой маршрутизацией.
1.2. Проверьте настройки сети
Поскольку у вас может быть проблема с сетевыми интерфейсами или маршрутизацией, следуйте этим шагам. Сравните настройки сети на A.B.C.1 и A.B.D.3, убедитесь, что подсеть правильно настроена.
2. Конфигурация NFS
2.1. Проверка настроек /etc/exports
Убедитесь, что ваш файл /etc/exports
настроен правильно для A.B.D.3:
/home/user/shared-dir A.B.C.2(rw,sync,no_subtree_check,all_squash,anonuid=1001,anongid=1001) A.B.D.3(rw,sync,no_subtree_check,all_squash,anonuid=1001,anongid=1001)
Проверьте, нет ли ошибок или лишних пробелов.
2.2. Перезагрузка NFS сервера
После изменения конфигурации выполните:
# exportfs -a
# systemctl restart nfs-kernel-server
3. Прослушивание порта NFS
3.1. Статус службы NFS
Проверьте, запущен ли NFS сервер на A.B.C.1:
# systemctl status nfs-kernel-server
Убедитесь, что он работает без ошибок.
3.2. Проверка порта TCP 2049
Убедитесь, что NFS слушает на порту 2049:
# ss -tuln | grep 2049
Если ничего не отображается, это может указывать на то, что служба не поднята или не настроена.
4. Отладка и диагностика
4.1. Логи NFS
Просмотрите логи системы для любых сообщений об ошибках NFS:
# journalctl -u nfs-kernel-server
# tail -f /var/log/syslog
Сообщения об ошибках могут дать направления для дальнейшего анализа.
4.2. Тестирование подключения через Telnet
Попробуйте проверить, доступен ли порт 2049 с A.B.D.3 используя telnet:
# telnet A.B.C.1 2049
Если подключение не удается, это подтверждает наличие проблемы на уровне сети.
5. Провайдер и сетевые ограничения
Если все предыдущие шаги не помогли, есть вероятность, что провайдер VPS применяет сетевые ограничения между разными подсетями. Обратитесь в службу поддержки вашего провайдера, чтобы выяснить, нет ли у них активных правил firewall или NAT, которые могут блокировать соединения между вашим VPS.
Заключение
Ваша проблема с подключением NFS скорее всего связана с сетевыми настройками или конфигурацией сервера. Следуя указанным шагам, вы сможете локализовать и, возможно, устранить проблему. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью, так как в некоторых случаях решение проблемы может требовать более детального анализа.