У меня есть сервер nfs, работающий на Cent OS. iptables настроен, и я настроил фиксированные порты. Итак, сервер работает нормально. Я попытался смонтировать тома nfs на машине Fedora, и все работает.
Когда я пытаюсь смонтировать тома nfs на машине ubuntu, я получаю сообщение об ошибке, подразумевающее, что rpc.statd не запущен и удаленные блокировки не работают. Я проверил, и он работает. Когда я отключаю iptables на машине ubuntu, все работает нормально. Это наводит меня на мысль, что iptables на машине ubuntu не позволяет машине centos достигать rpc.statd на машине ubuntu.
Есть идеи, что происходит?
Редактировать:
Я добавил сервер nfs в файл / etc / hosts. portmap и rpc.statd уже установлены. Я открыл порты tcp и udp для portmap в iptables. Мои правила iptables следующие:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
iptables -A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
Редактировать:
Я еще немного покопался и обнаружил, что если я открою только все порты udp (вместо полного отключения брандмауэра) в iptables на машине ubuntu, все будет работать нормально. Это удивительно, потому что я использую опцию proto = tcp. Более того, если я выполняю tcpdump на машинах nfs client (ubuntu) или nfs server (centos), я не вижу никаких пакетов udp.
вам необходимо установить rpc.statd portmap. apt-get install portmap. и вы должны добавить целевой nfsserver в файл / etc / hosts.
Я добавляю следующее правило в iptables на машине Ubuntu, и оно начинает работать:
iptables -A INPUT -i lo -j ACCEPT