- Вопрос или проблема
- Ответ или решение
- Установка статических портов для NFS v3 на сервере Ubuntu 20.x
- Шаг 1: Измените конфигурацию NFS
- 1.1. Настройка /etc/default/nfs-kernel-server
- 1.2. Настройка /etc/default/nfs-common
- 1.3. Настройка /etc/modprobe.d/lockd.conf
- 1.4. Настройка /etc/sysctl.conf
- Шаг 2: Проверка конфигурации
- Устранение ошибок
Вопрос или проблема
Я пытаюсь использовать NFSv3 на сервере Ubuntu 20.x и мне нужно установить статические порты для использования UFW. К сожалению, Windows 10, который должен подключаться к этому серверу, поддерживает только NFSv3, поэтому оставлять открытым только порт 2049 недостаточно.
Я пытался добавить порты в файл /etc/default/nfs-kernel-server:
# Количество серверов для запуска
RPCNFSDCOUNT=64
# Приоритет выполнения сервера (см. nice(1))
RPCNFSDPRIORITY=0
# Опции для rpc.mountd.
# Если у вас есть брандмауэр на основе портов, вы можете установить
# фиксированный порт здесь, используя опцию --port. Для получения дополнительной информации
# смотрите rpc.mountd(8) или http://wiki.debian.org/SecuringNFS
# Чтобы отключить NFSv4 на сервере, укажите '--no-nfs-version 4' здесь
RPCMOUNTDOPTS="--manage-gids"
# Хотите ли вы запустить демон svcgssd? Он необходим только для экспорта Kerberos.
# Действительные альтернативы - "yes" и "no"; по умолчанию "no".
NEED_SVCGSSD=""
# Опции для rpc.svcgssd.
RPCSVCGSSDOPTS=""
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662
RQUOTAD_PORT=875
Хотя конфигурация приняла количество серверов 64 для запуска, она не приняла настройки портов внизу, даже после перезагрузки.
Кто-нибудь знает, где я могу правильно установить эти параметры?
Я выяснил это, для статических портов необходимо редактировать следующие файлы:
/etc/default/nfs-kernel-server для MOUNTD:
Исходный:
RPCMOUNTDOPTS="--manage-gids"
Новый:
RPCMOUNTDOPTS="--manage-gids -p 892"
/etc/default/nfs-common для STATD:
Исходный:
STATDOPTS=
Новый:
STATDOPTS="--port 662"
/etc/default/quotas для квот:
Я решил не использовать квоты для этого проекта. Тем не менее, это должно быть:
RPCRQUOTADOPTS="-p 875"
/etc/sysctl.conf для LOCKD:
Добавить:
fs.nfs.nlm_tcpport = 32803
fs.nfs.nlm_udpport = 32769
Затем просто выполните:
sysctl -p
systemctl restart nfs-kernel-server
Мне нужно использовать версию nfs 3 в организации для Bitbucket Data Center.
Я выполнил следующие шаги.
1) Обновления конфигурации NFS сервера
Отредактировал /etc/default/nfs-kernel-server
, чтобы отключить версии NFS 2 и 4 и установить фиксированный порт для mountd:
RPCMOUNTDOPTS=”–manage-gids –port 9024″
RPCNFSDOPTS=”-N 4 -N 2″
Настроил /etc/default/nfs-common
, чтобы установить фиксированные порты для statd и lockd:
NEED_STATD=yes
STATDOPTS=”–port 9028 –outgoing-port 9029″
LOCKD_OPTS=”-p 9027 -o 9026″
Обновил /etc/modprobe.d/lockd.conf
, чтобы установить конкретные TCP и UDP порты для lockd:
options lockd nlm_tcpport=9027
options lockd nlm_udpport=9028
Применил конфигурации и перезапустил службы:
sudo systemctl restart nfs-kernel-server rpcbind
sudo systemctl daemon-reload
Наблюдения из вывода rpcinfo -p:
После применения вышеуказанных конфигураций вывод rpcinfo -p
показал следующее:
program vers proto port service
…
100005 1 udp 40661 mountd
100005 1 tcp 45805 mountd
100005 2 udp 55256 mountd
100005 2 tcp 50431 mountd
100005 3 udp 34768 mountd
100005 3 tcp 47275 mountd
Несмотря на установку RPCMOUNTDOPTS="--port 9024"
в /etc/default/nfs-kernel-server
, mountd
продолжал использовать случайные порты (например, 40661, 45805). Это предполагает, что конфигурация могла не примениться корректно.
Ошибка монтирования (mount.nfs: Подключение завершилось таймаутом
) может возникнуть из-за того, что служба mountd
связывается со случайными портами вместо указанного порта (9024). Это приводит к несоответствию конфигураций брандмауэра и групп безопасности, что в итоге вызывает таймаут во время попытки монтирования.
Пожалуйста, не пропустил ли я что-то? Нужно ли мне где-то изменить настройки, чтобы использовать фиксированный порт для mountD?
Ответ или решение
Установка статических портов для NFS v3 на сервере Ubuntu 20.x
Настройка NFS v3 на сервере Ubuntu 20.x с использованием статических портов необходима, чтобы обеспечить корректную работу с файрволом UFW. Это важно в случаях, когда клиенты, такие как Windows 10, требуют специфических настроек для подключения.
Шаг 1: Измените конфигурацию NFS
Начальное редактирование конфигурационных файлов для достижения статических портов является ключевым моментом в этой задаче. Рассмотрим изменения, которые необходимо внести.
1.1. Настройка /etc/default/nfs-kernel-server
Для управления портами, связанными с mountd
, следует внести изменения в следующий пропертю файл:
# Редактируйте файл /etc/default/nfs-kernel-server и укажите:
RPCMOUNTDOPTS="--manage-gids --port 9024"
# Чтобы отключить NFS версии 2 и 4, можно дополнительно указать:
RPCNFSDOPTS="-N 2 -N 4"
Эти параметры определяют, что mountd
будет привязан к статическому порту 9024.
1.2. Настройка /etc/default/nfs-common
Файл /etc/default/nfs-common
также требует доработки для настройки портов statd
и lockd
:
# Редактируйте файл /etc/default/nfs-common и укажите:
NEED_STATD=yes
STATDOPTS="--port 9028 --outgoing-port 9029"
LOCKD_OPTS="-p 9027 -o 9026"
1.3. Настройка /etc/modprobe.d/lockd.conf
Чтобы статические порты для lockd
также были правильно определены, необходимо отредактировать файл, как показано ниже:
# Добавьте следующие строки в /etc/modprobe.d/lockd.conf
options lockd nlm_tcpport=9027
options lockd nlm_udpport=9028
1.4. Настройка /etc/sysctl.conf
Дополнительно, для корректной работы lockd
, добавьте настройки в /etc/sysctl.conf
:
# Добавьте следующие строки:
fs.nfs.nlm_tcpport = 32803
fs.nfs.nlm_udpport = 32769
После этого выполните команды для применения изменений:
sudo sysctl -p
sudo systemctl restart nfs-kernel-server rpcbind
sudo systemctl daemon-reload
Шаг 2: Проверка конфигурации
После внесения всех изменений рекомендуется проверить, какие порты используются rpcbind
:
rpcinfo -p
Вы должны увидеть, что порты, указанные вами, используются для соответствующих сервисов.
Устранение ошибок
Если после изменений mountd
по-прежнему использует случайные порты, это может быть связано с неверной структурой конфигураций или тем, что нужные параметры не были правильно применены. Убедитесь, что:
- Вы сохраняли изменения в файлах.
- Вы перезапустили соответствующие сервисы.
- Вы проверили наличие ошибок в журнале системы, которые могут дать подсказки о проблемах.
Следуя указанным шагам и рекомендациям, вы сможете успешно настроить статические порты для NFS v3 на сервере Ubuntu 20.x и обеспечить стабильную работу с клиентами, включая Windows 10. Обязательно проведите тестирование после всех изменений, чтобы удостовериться в успешной настройке и совместимости.