Это зависит от версии протокола, который вы собираетесь использовать. NFS 4 требует только 2049, в то время как более старые версии требуют большего.
lzap
Ответы:
97
$ rpcinfo -p | grep nfs
Порты 111 (TCP и UDP) и 2049 (TCP и UDP) для сервера NFS.
Есть также порты для статуса кластера и клиента (порт 1110 TCP для первого и 1110 UDP для второго), а также порт для диспетчера блокировки NFS (порт 4045 TCP и UDP). Только вы можете определить, какие порты вам нужно разрешить, в зависимости от того, какие сервисы необходимы кросс-шлюзу.
Я не знал о rpcinfo, это довольно полезно. Я не видел порт 111 с grep nfs, но я остановил grep, чтобы узнать, что 111 для portmapper. Также приятно знать! (и, как вы упомянули, необходимо)
Кенни
@KennyYounger rpcinfo также полезен. Если это ответило на ваш вопрос, не забудьте пометить его как ответ для будущих зрителей.
Уэсли
6
Вам нужно mountd open при первом монтировании файловой системы. Он работает на динамическом порту, поэтому он не всегда будет одинаковым. Я поставил ссылку на руководство в моем ответе.
Бонсайвинг
1
Спасибо @bonsaiviking. Критическая информация для этого процесса. Я проголосовал за ваш ответ!
Кенни
Не могли бы вы дать краткое описание того, что делают эти службы («статус кластера и клиента», «диспетчер блокировки NFS») и когда они могут понадобиться? Если эти службы заблокированы брандмауэром, будут ли серверы и клиенты NFS изящно деградировать или просто заблокируют ожидание ответа?
Натан Крейк
27
В дополнение к 111 для portmapper и 2049 для nfs вам потребуется разрешить порт mountd и, возможно, rquotad, lockd и statd, которые могут быть динамическими. Это превосходное руководство по безопасности NFS рекомендует изменить сценарии запуска и настройки модуля ядра, чтобы заставить их использовать статические порты.
В дополнение к приведенному выше руководству, в котором есть раздел о брандмауэрах , см. Мой ответ на еще один вопрос об усилении защиты NFS.
Мы действительно предпочитаем контент, а не указатели на контент. Точность содержания со ссылкой тоже в порядке и предпочтительнее ссылки.
user9517 поддерживает GoFundMonica
2
Не уверен насчет 2012 года, но рекомендация в ссылках кажется сильно устаревшей. NFS через TCP предпочтительнее по разным причинам, а NFS через UDP может вызывать тихое повреждение данных на быстром канале из-за ограничений протокола. Руководство по безопасности не упоминает Kerberos / GSS и т. Д.
Maciej Piechotka
Что касается mountd, то жизнь намного проще, если вы переконфигурируете, чтобы убедиться, что порт mountd зафиксирован. В Debian системах, редактировать значение RPCMOUNTDOPTS к чему - то , как RPCMOUNTDOPTS="--port 34567"и затем перезапустить sysctl --systemи/etc/init.d/nfs-kernel-server restart
user45793
14
На этой странице я нашел полезные указания для своей проблемы, но не было простого рецепта. Итак, вот мой рецепт.
TL; DR - необходимо разрешить порты nfs (111, 2049) и порт mountd после его исправления.
Инструкции:
Настройка фиксированного порта для mountd
gksudo gedit /etc/default/nfs-kernel-server
закомментируйте эту строку: RPCMOUNTDOPTS=--manage-gids
добавьте это вместо этого: RPCMOUNTDOPTS="--port 33333"
Или любой другой номер порта.
Теперь попробуйте сбросить NFS с помощью:
sudo service nfs-kernel-server restart
И проверьте, помогло ли это с помощью:
rpcinfo -p | grep "tcp.*mountd"
Для меня этого было недостаточно, но полная перезагрузка исправила проблему.
(1) удалить старые правила, сделать это вручную или сбросить, если это единственное использование для брандмауэра:
sudo ufw reset
sudo ufw enable
(2) добавить порты nfs и mountd
sudo ufw allow in from 10.0.0.1/20 to any port 111
sudo ufw allow in from 10.0.0.1/20 to any port 2049
sudo ufw allow in from 10.0.0.1/20 to any port 33333
(Измените на свои локальные IP-адреса или на " any" вместо 10.0.0.1/20)
Вам не нужно перезагружать всю коробку. Простое sudo service nfs-config restartперед перезапуском nfs-kernel-serverподойдет просто отлично.
showp1984
@ showp1984 спасибо, попробую в следующий раз
Амир Увал
Или, если ваша система использует systemctl, это systemctl restart nfs-kernel-server.service.
fbicknel
Вы также можете сделать все это одним циклом: sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333затем два (хорошо) sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333. Примечание: порт 33333 соответствует приведенному выше примеру. Вы можете использовать другой порт в качестве ответа.
fbicknel
5
Это даст список всех портов, используемых всеми программами, связанными с NFS:
Для записей мне пришлось добавить разрешения для портов 111, 2049 и 1048 для конфигурации, где общий ресурс NFS экспортируется сервером Windows 2008 R2, а клиенты - Ubuntu 12.04.4.
Это может помочь объяснить, зачем вам нужен порт 1048 и как вы это определили.
HBruijn
3
Честно говоря, я понятия не имею, почему мне нужно было добавить разрешение для 1048, но это решило мою проблему. Я просто хотел поделиться, если это может сэкономить время кого-то еще в будущем. Прошу прощения, что не смог ответить на вопрос.
Ответы:
Порты 111 (TCP и UDP) и 2049 (TCP и UDP) для сервера NFS.
Есть также порты для статуса кластера и клиента (порт 1110 TCP для первого и 1110 UDP для второго), а также порт для диспетчера блокировки NFS (порт 4045 TCP и UDP). Только вы можете определить, какие порты вам нужно разрешить, в зависимости от того, какие сервисы необходимы кросс-шлюзу.
источник
grep nfs
, но я остановил grep, чтобы узнать, что 111 дляportmapper
. Также приятно знать! (и, как вы упомянули, необходимо)В дополнение к 111 для portmapper и 2049 для nfs вам потребуется разрешить порт mountd и, возможно, rquotad, lockd и statd, которые могут быть динамическими. Это превосходное руководство по безопасности NFS рекомендует изменить сценарии запуска и настройки модуля ядра, чтобы заставить их использовать статические порты.
В дополнение к приведенному выше руководству, в котором есть раздел о брандмауэрах , см. Мой ответ на еще один вопрос об усилении защиты NFS.
источник
RPCMOUNTDOPTS="--port 34567"
и затем перезапуститьsysctl --system
и/etc/init.d/nfs-kernel-server restart
На этой странице я нашел полезные указания для своей проблемы, но не было простого рецепта. Итак, вот мой рецепт.
TL; DR - необходимо разрешить порты nfs (111, 2049) и порт mountd после его исправления.
Инструкции:
Настройка фиксированного порта для mountd
RPCMOUNTDOPTS=--manage-gids
RPCMOUNTDOPTS="--port 33333"
Или любой другой номер порта.
Теперь попробуйте сбросить NFS с помощью:
И проверьте, помогло ли это с помощью:
Для меня этого было недостаточно, но полная перезагрузка исправила проблему.
( кредит )
Настройка брандмауэра
(1) удалить старые правила, сделать это вручную или сбросить, если это единственное использование для брандмауэра:
(2) добавить порты nfs и mountd
(Измените на свои локальные IP-адреса или на "
any
" вместо10.0.0.1/20
)Это все, что нужно.
источник
sudo service nfs-config restart
перед перезапускомnfs-kernel-server
подойдет просто отлично.systemctl
, этоsystemctl restart nfs-kernel-server.service
.sudo nfs allow proto tcp from 10.0.0.1/20 to any port 111,2049,33333
затем два (хорошо)sudo nfs allow proto udp from 10.0.0.1/20 to any port 111,2049,33333
. Примечание: порт 33333 соответствует приведенному выше примеру. Вы можете использовать другой порт в качестве ответа.Это даст список всех портов, используемых всеми программами, связанными с NFS:
источник
С FERM можно использовать Backticks для получения портов от rpcinfo, например:
Сервер:
Клиент:
(Если вы собираетесь использовать только TCP, вам нужна только
proto tcp
часть).источник
Для записей мне пришлось добавить разрешения для портов 111, 2049 и 1048 для конфигурации, где общий ресурс NFS экспортируется сервером Windows 2008 R2, а клиенты - Ubuntu 12.04.4.
Я надеюсь, что это поможет кому-то.
источник