²�� NFS ���A���]�w
����w���A���@�A��s�峹�аѦ����B
�̪��s����G2003/09/10
�@
NFS�� Network FileSystem ��²�١A�̦����e�O�� Sun �o�a���q�ҵo�i�X�Ӫ��A�L���ت��N�O�Q�����P�������B���P���@�~�t�Υi�H�������ɭӧO���ɮװաI�ثe�b Unix Like �����ΨӰ��� file server �O�۷��������@�Ӥ�׳�I�򥻤W�A Unix Like �D���s����t�@�� Unix Like �D���Ӥ��ɩ������ɮ׮ɡA�ϥ� NFS �n�� SAMBA �ֳt�B��K���h�F�I���~�A NFS ���]�w�u����²��A�X�G�u�n�O�o�Ұ� Remote Procedure Call �o�өN�N ( �N�O portmap �o�ӮM��աI ) �N�@�w�i�H�[�]���_�ӡI�u�O�����ڡI���L�A�p�G�n�F�� Windows �P Linux ���������q�A�����٬O�H SAMBA ����e���ڡI�L�צp��A NFS �٬O�i�H�����p���q�ξǮճ�줺�� Unix Like �����@�� file ���@�� Server ��I
�@
NFS ���ѨӻP��\���G
�@�@�G����O NFS ( Network FileSystem )
�@�@�G����O RPC ( Remote Procedure Call )
�@�@�GNFS �Ұʪ� RPC daemons
�ݭn���M���G
Server �ݪ��]�w�G
�@�@�GNFS ���M�󵲺c
�@�@�G�D�����W���ޥ���ij
�@�@�G�]�w�y�{(/etc/exports)
�@�@�GRPC server ���������O
Client �ݪ��]�w�G
�����ε����ɪ��`�N�ƶ��G
�w���]�w(�Q������ױ��F)�G
��ںt�m�G
���I�^�U
�����P LPI �����Y
�ѦҸ귽�G
�������D�m��

NFS ���ѨӻP��\��
�ݭn���M��
Server �ݪ��]�w�G
Client �ݪ��]�w�G
OK�աI�ҥH�ڭ̱o�����D�@�U�ڭ̪��D���̭�������H���]�ڪ��D���W�٬O test.linux.org �A����ڭn���D���Y���Ǥ����ǥ� NFS ���ɥX�Ӫ��ؿ��A�N���L showmount �@�U�o�I
�@
[root@test root]# showmount -e test.linux.org
Export list for localhost:
/tmp         *
/home/linux  *.linux.org
/home/public (everyone)
/home/test   192.168.0.100
�@
�M��O�H���]�ڭn�N /home/public �����b�ڪ� /home/nfs/public ���U�A����ڴN�o�����o�ӥؿ��~��r�I�M��A�Q�� mount �o�ӫ��O�ӱ��� /home/public �o�ӥؿ��I���I���o�ˡG
�@
[root@test root]# mkdir -p /home/nfs/public <==�إ� public �o�ӥؿ��A�[ -p �i�H����W�[�ؿ�
[root@test root]# mount -t nfs test.linux.org:/home/public /home/nfs/public
�������榡�G
[root@test root]# mount -t nfs hostname(orIP):/directory /mount/point
[root@test root]# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda1              1904920   1235380    572776  69% /
/dev/hdb1               976344    115212    810736  13% /backup
test.linux.org:/home/public
                       1904920   1235376    572776  69% /home/nfs/public <==�o�ӬO���ݥD�����e�q
�@
���`�N�@�U���� NFS �ɮת��榡�d�ҳ�I�����I�o�˴N�i�H�N��Ʊ����i�ӰաI�Ъ`�N��I�H��A�u�n�z�i�J�z���ؿ� /home/nfs/public �N�����F test.linux.org �������ݥD���� /home/public ���ӥؿ����o�I�ܤ����a�I����p��N������ NFS �ؿ������O�H�N�ϥ� umount �ڡI
�@
[root@test root]# umount /home/nfs/public
�@
�i��o�ͪ����D�G
�q�`�L�k��������]�����U�o�X�ӡG
  1. �ϥΪ̪��v�������G�H�W�����Ҥl�ӻ����A�ڪ� /home/test �u�ണ�� 192.168.0.0/24 �o�Ӻ���A�ҥH�A�p�G�ڦb test.linux.org �o���������A�H localhost �ӱ����ɡA�N�|�L�k�����W�A�o���v�������S���D�a�I����z�i�H�ոլݡG
  2. [root @test root]# mount -t nfs localhost:/home/test /home/nfs
    mount: localhost:/home/test failed, reason given by server: Permission denied
    �ҥH�o�I�p�G�z�o�{�W������ܪ��T���ɡA�N���ܱz���D���v��������i�J�ӥؿ��o�I�p�G�T�w�z�� IP �S�����~�A����Ц^�� /etc/exports �o���ɮפ��A�w��z�ۤv�� IP �Ӷi��ץ��a�I
    �@
  3. �ѰO�Ұ� portmap �G

  4. �o�ӳ̮e���Q�ѰO�F�I�N�O�ѰO�F�Ұ� portmap �o�ӪA�ȰաI�p�G�z�o�{�z�� mount ���T���O�o�ˡG
    [root@test root]# mount -t nfs localhost:/home/test /home/nfs
    mount: RPC: Port mapper failure - RPC: Unable to receive
    �Ϊ̬O�G
    [root@test root]# mount -t nfs localhost:/home/test /home/nfs
    mount: RPC: Program not registered
    ����N����N portmap �Ұʧa�I�I�åB�]�ݭn�N nfs ���s�Ұʳ�I
    [root@test root]# /etc/rc.d/init.d/portmap start
    [root@test root]# /etc/rc.d/init.d/nfs restart
    �@
  5. �Q������ױ��F�G

  6. �o�Ӥ]�ܮe���ѰO�F�I���N�O���s�]�w�@�U�z��������A�o�]�t�F�ⳡ���A�]�A iptables �P TCP_Wrappers �I�]���ڭ̱ҰʤF portmap �A�o�ӪF�観��Ӹ�ƻݭn���ɥX�ӡA�@�ӬO port 111 �ݭn���ѥX�h�A�]���z�� iptables �W�h�����A�ݭn�}��o�� port ��I���I���o�˪��X��r�n�[�J�z�� iptables rules �����G
    iptables -A INPUT -p TCP --dport 111 -j ACCEPT
    iptables -A INPUT -p UDP --dport 111 -j ACCEPT
    �p�G�z�w�g�}��F�o�� port ���s���v���A�o�٬O�L�k�s�����\�A�������ӴN�O TCP_Wrappers �����D�F�I�ˬd�@�U�z�� /etc/hosts.deny ���Y�O�_���o��G
    [root@test root]# vi /etc/hosts.deny
    ALL: ALL
    �G�u�p�����ܡA�ѩ� portmap �O�� portmap �o�� daemon �ұҰʪ��A�ҥH�z�N�����n�b /etc/hosts.allow �̭��[�J�o�@��G
    [root@test root]# vi /etc/hosts.allow
    portmap: ALL 
    �Ϊ̬O�N ALL �令�z�ҷQ�n���L�ϥ� NFS ������Y�i�I�o�˻��i�H�A�ѤF�ܡH�Y�Q�i�@�B�A�Ѥ@�U������A�аѦҫe�����`���L���G²��������ظm�C

�����ε����ɪ��`�N�ƶ��G
�ݭn�`�N���O�A�ѩ� NFS �ϥΪ��o�� RPC �b client �ݳs�W�D���ɡA����z���D���Q�n�����A���i�N�|�����y���i�઺���ȡz�I�p�G�z�� Server �W���٦� Client �b�s�u�A����z�n�����A�i��o�n����ƭ����Y�~������`���������\�I�ӡI�u�������I���۫H�ܡH���M�z�ۭӨ�ոլݡI ^_^�I�ҥH�o�A��ij�z�� NFS Server �Q�n�������e�A����y���� portmap �P nfs �z�o��ӪF��I�p�G�L�k���T���N�o��� daemons �����A������H netstat -utlp ��X PID �A�M��H kill �N�L�������I�o�ˤ~����k���`���������\��I�o�ӽЯS�O�S�O���`�N�O�I

�w���]�w(�Q������ױ��F)�G
�n�F�I�@�Ǫ`�N�ƶ������F����A�A�өO�H��F�I�S�O�̭��n���w���]�w�譱�����D�F�I���� NFS �i�H�]�w�w�����a�観���̩O�H����٤��֩O�H�ѥ~�Ӥ��i�H�o�ˬݡG
  1. iptables ������]�w�F
  2. TCP_Wrappers ������]�w�F
  3. /etc/exports �v���]�w�C
�����𪺰򥻷����аѦҡy²��������ظm�z�@��A�̦n��N�ӽg�峹���L�ݧ��A�_�h�ٯu���A�ѩ��U�b�F�����I���]�z�w�g�ݧ��ӽg�u��F�A���ۤU�ӧڭ̴N�o�n�@�B�@�B�����۫إߨ������o�I �q�`�ڭ̳��|��������ij�A���n�Ұ� NFS Server �A�Y�ϭn�ҰʡA�̦n�]�O�w��Y�ӽd��Ӷi��ؿ������ɡI�åB�A�y�n���ϥΪ̼h�ŨӺ޲z�z�|����n�@�dz�I���U�ڭ̴N�ӹ�ڪ��b�z�������W���d�@��²�檺 NFS server �a�I

��ںt�m�G
���]���ҡG
  1. ���]�ڪ� Linux �D���� 192.168.0.100 �o�@���F
  2. �w�p�N /tmp �H�iŪ�g�A�åB������ϥΪ̨������覡���ɵ��Ҧ� 192.168.0.0/24 �o�Ӻ��줤���Ҧ� Linux �u�@���F
  3. �w�p�}�� /home/nfs �o�ӥؿ��A�ϥΪ��ݩʬ���Ū�A�i���Ѱ��F���줺���u�@���~�A�V�~�紣�Ѹ�Ƥ��e�F
  4. �w�p�}�� /home/upload ���� 192.168.0.0/24 �o�Ӻ��쪺��ƤW�ǥؿ��A�䤤�A�o�� /home/upload ���ϥΪ̤Ω��ݸs�լ� nfs-upload �o�ӦW�r�A�L�� UID �P GID ���� 210�F
  5. �w�p�N /home/andy �o�ӥؿ��Ȥ��ɵ� 192.168.0.50 �o�� Linux �D���A�H���ѸӥD���W�� andy �o�ӨϥΪ̨ӨϥΡA�]�N�O���A andy �b 192.168.0.50 �� 192.168.0.100 �����b���A�B�b������ andy �A�ҥH�w�p�}�� /home/andy �� andy �ϥΥL���a�ؿ��աI
��a�t�m�G
�n�F�A����бz�����n�ݩ��U�����סA���ۤv�ʵ��Ϊ̪����b�ۤv�������W���ʤ�@�@�ݡA����o��z�n�����פ���A�b�ݩ��U�������a�I ��ӨB�J�j�P�W�N�O�o�˧o�I�[�o��I

���I�^�U
�����P LPI �����Y
�b LPI ���� http://www.lpi.org �̭����쪺�A���� NFS ���Ҹ��D�w���a��A�u���b LPI level 1 �� 102 �A�̭��� topic 113 Networking Services �A�ĥ|�I�����A²���� NFS �]�w�C�j�ժ��O�y���ժ̻��A�� NFS ���]�w�B�ҰʻP���������Y�z�ܩ�|�Ҫ��ɮ׻P���O�i�঳�o�ǡG

�ѦҸ귽�G
�������D�m��
²�� NFS ���A�����]�w

2002/11/17�G�Ĥ@������
2003/03/09�G�קﳡ�����e�A�åB�s�W LPI �����ʻP���I��z�����I
2003/09/10�G�S���s�ק睊���A�H�ηs�W�D�����W���������C