Fedora 10 で NFS サーバを動かす

Fedora 10 で NFS サーバを動かす簡単な方法は、ファイアウォールを無効にすればいい。

さすがにこれは良解ではないので、ちょっと設定をする。まず、/etc/sysconfig/nfs を下記のように変更する。

--- /etc/sysconfig/nfs.orig	2009-01-31 20:56:04.000000000 +0900
+++ /etc/sysconfig/nfs	2009-03-12 17:41:52.000000000 +0900
@@ -38,7 +38,7 @@
 # Optional arguments passed to rpc.mountd. See rpc.mountd(8)
 #RPCMOUNTDOPTS=""
 # Port rpc.mountd should listen on.
-#MOUNTD_PORT=892
+MOUNTD_PORT=892
 #
 #
 # Optional arguments passed to rpc.statd. See rpc.statd(8)

次に、system-config-firewall で NFS4 を「信頼したサービス」とする。さらに「その他のポート」に 111 と 892 の両ポートを加える。

これは、/etc/sysconfig/iptables に下記を加えるのと同様。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT

あとは、サービスを起動もしくは再起動すればいい。

ちなみに、ファイアウォールの設定がうまくいっていないと、マウントするときにこんなエラーが出る。

$ sudo mount -v -t nfs 192.168.1.68:/home /mnt/home
mount.nfs: timeout set for Thu Mar 12 17:46:00 2009
mount.nfs: text-based options: 'addr=192.168.1.68'
mount.nfs: mount(2): Input/output error
mount.nfs: mount system call failed

[追記]
Fedora 10 の nfs-utils のうち 1.1.4-5 から 1.1.4-7 あたりははずれなので、アップデートしたほうがいい。DNS 周辺で問題あり。