rpc mount export: RPC: Unable to receive; errno = No route to host

rpc mount export: RPC: Unable to receive; errno = No route to host

Red Hat Enterprise Linux Server release 5.5 (Tikanga)

Server 端配置如下:

[root@localhost u1]# cat /etc/exports 
/u1     192.168.150.0/24(rw,sync,no_root_squash)

[root@localhost u1]#

[root@localhost u1]# cat /etc/sysconfig/nfs 
MOUNTD_PORT=892
MOUNTD_PORT="4002"
STATD_PORT="4003"
LOCKD_TCPPORT="4004"
LOCKD_UDPPORT="4004"

 

关闭NFSserver端的iptables可以从client挂载NFS,开启就不行。
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
只加上面两条策略的时候,client端报:
[root@OA1 ~]#  showmount  -e  192.168.150.173
mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
再加了上面两条策略后,client端报:
[root@OA1 ~]# showmount  -e  192.168.150.173
rpc mount export: RPC: Unable to receive; errno = No route to host

客户端上:
[root@OA1 ~]# rpcinfo  -p  192.168.150.173
   程序 版本 协议   端口
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp    824  status
    100024    1   tcp    827  status
    100011    1   udp    944  rquotad
    100011    2   udp    944  rquotad
    100011    1   tcp    947  rquotad
    100011    2   tcp    947  rquotad
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100021    1   udp   4004  nlockmgr
    100021    3   udp   4004  nlockmgr
    100021    4   udp   4004  nlockmgr
    100021    1   tcp   4004  nlockmgr
    100021    3   tcp   4004  nlockmgr
    100021    4   tcp   4004  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100005    1   udp   4002  mountd
    100005    1   tcp   4002  mountd
    100005    2   udp   4002  mountd
    100005    2   tcp   4002  mountd
    100005    3   udp   4002  mountd
    100005    3   tcp   4002  mountd
[root@OA1 ~]#
把显示的端口加入到服务端的iptables里:
[root@localhost u1]#  cat  /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 23 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 944 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 947 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 892 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 944 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 947 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4002 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 4004 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 4004 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@localhost u1]#

服务端重启iptables后,客户端再挂在,ok。

其中,设置了no_root_squash:登入NFS主机使用共享目录的用户,如果是用户root,对于此共享目录具有root权限,不建议使用。

设置前再client端创建一个文件,查看下:

[root@DXTOA1 u1]# ls  -al
总计 48
drwxrwxrwx  3 root  root   4096 2012-06-29 .
drwxr-xr-x 27 root  root   4096 06-25 21:54 ..
-rw-r--r--  1 65534 65534     4 06-28 17:23 161.txt
-rw-r--r--  1 root  root      4 06-27 13:29 173.txt
-rw-r--r--  165534 65534     0 2012-06-29 aaa.txt
drwx------  2 root  root  16384 06-12 15:08 lost+found
[root@DXTOA1 u1]# rm  -f  aaa.txt
[root@DXTOA1 u1]#
设置后,重启nfs服务,再在client端创建一个文件,查看下:
[root@DXTOA1 u1]# touch  aaa.txt
[root@DXTOA1 u1]# ls  -al
总计 48
drwxrwxrwx  3 root  root   4096 2012-06-29 .
drwxr-xr-x 27 root  root   4096 06-25 21:54 ..
-rw-r--r--  1 65534 65534     4 06-28 17:23 161.txt
-rw-r--r--  1 root  root      4 06-27 13:29 173.txt
-rw-r--r--  1root  root      0 2012-06-29 aaa.txt
drwx------  2 root  root  16384 06-12 15:08 lost+found
[root@DXTOA1 u1]#

 

 

参考文档如下:
NFS:Network File System,linux中共享文件的服务。
使用NFS需要启用RPC(remoteprocedure call),RPC可以指定每个NFS功能所对应的端口号,重启RPC后,RPC所管理的所有NFS功能服务都需重新向RPC注册。
设置NFS需要安装nfs-utils和portmap程序,使用rpm –q可以查看是否安装
Nfs-utils:提供rpc.nfsd和rpc.mountd两个daemon与其他document说明文件。
rpc.nfsd:管理client是否能够登入主机,及对登入者ID的辨别。
rpc.mountd:管理NFS文件系统,读取/etc/exports对比client取得相应的权限。
Portmap:端口映射;在启动rpc之前做好端口映射工作。
NFS的配置文件有两个:
/etc/exports:NFS配置文件
/var/lib/nfs/*tab:NFS服务器日志放置路径;etab记录共享出来的目录完整权限设置值;xtab记录曾经连接到此NFS主机的相关客户端数据
两个命令:
/usr/sbin/exportfs:维护NFS共享资源;重新共享/etc/exports变更目录或将NFSserver共享目录卸载或重新共享
/usr/sbin/showmount:在客户端查看NFS服务器共享出来的目录资源
/etc/exports配置文件
首先需要手动编辑/etc/exports配置文件
共享目录必须使用绝对路径,权限部分依照不同的权限共享给不同的主机,括号内是设置权限参数的位置,权限不止一个时,使用,隔开,主机名和括号连在一起。
主机名设置可以使用网段:192.168.1.0/24或完整IP:192.168.1.23也可以使用主机名称,但此主机名称需要存在于/etc/hosts中或使用DNS可以找到,找到IP即可,主机名支持通配符,如*?
/mnt/sda4/share/a      192.168.23.129(rw)
设置共享目录/mnt/sda4/share/a,仅192.168.23.129主机允许访问此共享目录,具有读写权限
/mnt/sda4/share/b      192.168.23.129(rw) *(ro)
设置共享目录/mnt/sda4/share/b,192.168.23.129可以读写该共享目录,其他主机只可以读取该共享目录
/mnt/sda4/share/c       192.168.23.129(no_root_squash)
设置共享目录/mnt/sda4/share/c,仅192.168.23.129可以访问和读写,root登录时拥有root权限
/mnt/sda4/share/d      192.168.23.0/24(rw)
设置共享目录/mnt/sda4/share/d,仅有192.168.23.0/24网段的主机才可访问和读写此目录文件
/mnt/sda4/share/e      *(rw,all_squash,anonuid=500,anongid=500)
设置共享目录/mnt/sda4/share/e,所有主机都允许访问此共享目录,具有读写权限,但他们访问该共享目录时,已将其UID、GID设置成500。NFSserver主机中UID、GID=500的权限已经设置好
权限参数说明如下:
Rw:read-write可读写的权限
Ro:read-only只读权限
no_root_squash:登入NFS主机使用共享目录的用户,如果是用户root,对于此共享目录具有root权限,不建议使用。
root_squash:登入NFS主机使用共享目录的用户,如果是用户root,此用户权限将被压缩为匿名用户,其UID和GID都会被压缩为nobody(nfsnobody)系统账号的身份。
all_squash:不论登入NFS的用户身份为何,其身份都被转换成为匿名用户,即nobody。
Anonuid:anonymous;即nobody,可以自行设定此UID值,但此UID必须存在于/etc/passwd中。
Anongid:同anonuid,变成group ID即可。
Sync:数据同步写入到内存与硬盘中
Async:数据先暂存于内存中,而非直接写入硬盘
权限说明:
1.NFS server和NFS client具有相同的UID和账号
如果NFSserver和NFSclient具有相同共享文件账号和相同UID,客户端登入NFSserver时,就会拥有/etc/exports设置的权限
2.NFS server和NFS client具有不同的账号
如果NFSclient不拥有NFSserver共享文件账号,或NFSclient的账号在NFSserver不存在,是否可以读写共享目录,需要查看NFSserver的权限而定,其身份会变为匿名用户nobody
3.NFS client的身份为root
默认情况下,客户端的root身份会被压缩成匿名用户nobody
启动NFS
启动NFS只需启动portmap和NFS服务即可。如果需要启动数据一致性检查,则需启动nfslock服务。
使用netstat–tnlu可以查看nfs开放了哪些端口。Portmap的端口为111,nfs的端口为2049
[root@localhost share]# rpcinfo -p
程序       版本 协议   端口               服务名称
100000    2   tcp   111        portmapper
100000    2   udp  111        portmapper
100024    1   udp  695        status
100003    2   udp  2049     nfs
100021    1   udp   46017  nlockmgr
………………………………………………
如果rpcinfo–p的数据无法输出,表示注册的数据有问题,重新启动portmap和nfs即可。
client查看Server有提供哪些NFS服务,可以使用showmount
# showmount -e  显示某台主机的/etc/exports所共享的目录数据
# showmount -a  显示当前主机与客户端NFS联机共享状态
# showmount -e
Export list for localhost.localdomain:
/mnt/sda4/share/e *
/mnt/sda4/share/d 192.168.23.0/24
/mnt/sda4/share/c 192.168.23.129
/mnt/sda4/share/b (everyone)
/mnt/sda4/share/a 192.168.23.129
需要扫描某台主机提供的NFS共享目录,使用showmount–e ip(hostname)即可
查看/var/lib/nfs/etab可以查看NFSserver目录权限设置情况
# cat /var/lib/nfs/etab
/mnt/sda4/share/a      192.168.23.129(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,mapping=identity,anonuid=65534,anongid=65534)
…………………………………………………………
如果修改/etc/exports文件之后无需重启nfs,只需重新扫瞄一次文件/etc/exports,并且重新将设定加载即可;
Exportfs:
-a:全部挂载(或卸载)/etc/exports 文件内的设置。
-r:重新挂载/etc/exports里的设置,同时同步更新/etc/exports及/var/lib/nfs/xtab的内容。
-u:卸载某一目录。
-v:在export时,将共享的目录显示在屏幕上。
重新挂载/etc/exports的设置:#exportfs–arv
全部卸载/etc/exports的设置:#exportfs–auv
客户端配置:
# mkdir -p /mnt/share/client/b
# mount -t nfs192.168.23.128:/mnt/sda4/share/b /mnt/share/client/b
# df
文件系统                                                             1K-块      已用    可用        已用%   挂载点
/dev/sda2                                                            5952284    3158868  2486176 56%               /
/dev/sda1                                                            101086     11481   84386                    12%      /boot
tmpfs                                                    127720     0          127720    0%        /dev/shm
192.168.23.128:/mnt/sda4/share/b   3905632   73408          3633824   2%       /mnt/share/client/b
设置成开机启动挂载
修改/etc/fstab文件
192.168.23.128:/mnt/sda4/share/e  /mnt/share/client/e  nfs  defaults,rw   0 0
此外可以使用autofs设置客户端需要时自动挂载,不需要时若干分钟后自动卸载,还可在/etc/fstab或客户端手动挂载时设置一些参数,方便客户端使用。




更多参考:

AIX mount RedHat的NFS

误删除/dev/dsk 和/dev/rdsk 下的文件怎么办?

unary operator expected

bash: /root/.bash_profile: line 15: syntax error: unexpected end of file

Linux下如何查看文件秒级修改及访问时间

EM乱码解决

linux里端口转发

windows xp 下使用FileZilla密钥

java.net.SocketException: Too many open files 问题的解决办法

UNExcepted inconsistency; run fsck manually

如何修改linux的mac地址?

mysqldump: Got error: 1066: Not unique table/alias

rsync详解一

rsync详解二

更改mysql的默认安装目录

httpd: apr_sockaddr_info_get() failed for centos1113

Real domain name required for sender address

Connection refused by [127.0.0.1]

MySQL bin_log文件占用空间太大

Centos 5 多路径配置步骤

rpc mount export: RPC: Unable to receive; errno = No route to host

nohup和screen的比较

vmware workstation 8 共享磁盘


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值