Подключение NFS между VPS машинами – выяснить, что блокирует это/вызывает таймаут.

Вопрос или проблема

Итак, у меня есть три 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 скорее всего связана с сетевыми настройками или конфигурацией сервера. Следуя указанным шагам, вы сможете локализовать и, возможно, устранить проблему. Если у вас возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью, так как в некоторых случаях решение проблемы может требовать более детального анализа.

Оцените материал
Добавить комментарий

Капча загружается...