導航:首頁 > IDC知識 > ubuntunfs伺服器配置

ubuntunfs伺服器配置

發布時間:2020-12-11 07:09:06

1、ubuntu怎麼開啟nfs v3伺服器

在ubuntu上 裝nfs server並運行服務 在開發板上 裝nfs client 然後,在開發板上執行mount命令。 比如 ubuntu上共享的是/home/test目錄專,Ubuntu IP為屬192.168.1.3 那麼 mount 192.168.1.3:/home/test /mnt/ 這樣就可以把test文件夾掛載到mnt上

2、為啥ubuntu要配置tftp和nfs的作用

tftp是FTP服務文件上傳下載用的,NFS server可以看作是一個FILE SERVER,它可以讓你的PC通過網路將遠端得NFS SERVER共享出來的檔案MOUNT到自己的系統中,在CLIENT看來使用NFS的遠端文件就象是在使用本地文件一樣。
配置tftp
方法一:(推薦方法)Ubuntu10.04 測試通過
1.安裝TFTP軟體
sudo apt-get install tftp-hpa tftpd-hpa
tftp-hpa是客戶端,tftpd-hpa是伺服器端
2.建立tftpboot目錄,作為伺服器的目錄
sudo mkdir ~/tftpboot
釋放許可權:(伺服器目錄,需要設置許可權為777,chomd 777)
sudo chmod 777 ~/tftpboot

3.配置TFTP伺服器
sudo gedit /etc/default/tftpd-hpa
將原來的內容為:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot" #修改為自己需要的路徑,與上面創建的目錄一致
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure" #可以通過查看mantftpd,看各種參數的意義
#修改為
TFTP_DIRECTORY="/home/shenhao/tftpboot"
TFTP_OPTIONS="-l -c -s"
3.重新啟動TFTP服務
sudo service tftpd-hpa restart
4.測試下
$ cd ~/tftpboot echo "hello tftp service">>a.txt
$ echo "hello tftp service,put to tftp serive">>b.txt
$ tftp localhost
tftp> get a.txt
tftp> put b.txt
tftp> quit
其中get是取得文件,put是將文件上傳到TFTP伺服器上。
方法二:
配置tftp服務的步驟:
1、安裝相關軟體包:tftpd(服務端),tftp(客戶端),xinetd
sudo apt-get install tftpd tftp xinetd
2、建立配置文件(藍色的目錄是可以更改為其他地址的,例如/home/user/tftpboot)
在/etc/xinetd.d/下建立一個配置文件tftp
sudo vi tftp
在文件中輸入以下內容:
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
保存退出
3、建立tftp服務文件目錄(上傳文件與下載文件的位置),並且更改其許可權
sudo mkdir /tftpboot
su chmod 777 /tftpboot
4、重新啟動服務
sudo /etc/init.d/xinetd restart
至此tftp服務已經安裝完成了,下面可以對其進行一下測試。(假設在當前目錄下有一個測試文件test.txt)
$tftp 192.168.16.2 (本機的ip地址)
tftp> get test.txt
tftp> quit
$
通過get命令,可以把當前目錄下的test.txt文件,通過tftp上傳到它的服務文件目錄。這時,在/tftpboot下面會出現test.txt文件。通過put命令,可以從/tftpboot下,下載test.txt文件。這樣就驗證了tftp服務配置的正確性。當文件上傳與下載結束後,可以通過quit命令退出。
嚴格按照以上步驟配置tftp服務,一般都可以成功。如果出現無法get或者put的時候,可以查看一下防火牆是否關閉。
-----------------------------------------------------------------------------------------------------
配置nfs伺服器

在ubuntu下安裝、配置nfs服務的步驟如下:
1、安裝nfs
Ubuntu上默認是沒有安裝nfs伺服器的,因此我們首先安裝nfs伺服器端:
$sudo apt-get install nfs-kernel-server
在一些文檔中,提出還需要使用apt-get來手動安裝nfs的客戶端nfs-common,以及埠映射器portmap,但其實這是沒有必要的,因為在安裝nfs-kernel-server時,apt會自動為我們把它們安裝好。
2、配置/etc/exports
nfs允許掛載的目錄及許可權在文件/etc/exports中進行了定義。
例如,我們要將根目錄下的rootfs目錄共享出來,那麼我們需要在/etc/exports文件末尾添加如下一行:
/rootfs *(rw,sync,no_root_squash)
其中: /rootfs是要共享的目錄,
*代表允許所有的網路段訪問,
rw是可讀寫許可權,sync是資料同步寫入內存和硬碟,
no_root_squash是nfs客戶端分享目錄使用者的許可權,如果客戶端使用的是root用戶,那麼對於該共享目錄而言,該客戶端就具有root許可權。
其它nfs常用的參數有:
ro
只讀訪問
rw 讀寫訪問sync 所有數據在請求時寫入共享
async
nfs在寫入數據前可以響應請求
secure
nfs通過1024以下的安全TCP/IP埠發送
insecure
nfs通過1024以上的埠發送
wdelay
如果多個用戶要寫入nfs目錄,則歸組寫入(默認)
no_wdelay
如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置。
hide 在nfs共享目錄中不共享其子目錄
no_hide
共享nfs目錄的子目錄
subtree_check
如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的許可權(默認)
no_subtree_check
和上面相對,不檢查父目錄許可權
all_squash
共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash
保留共享文件的UID和GID(默認)
root_squash
root用戶的所有請求映射成如anonymous用戶一樣的許可權(默認)
no_root_squas
root用戶具有根目錄的完全管理訪問許可權
anonuid=xxx
指定nfs伺服器/etc/passwd文件中匿名用戶的UID
anongid=xxx
指定nfs伺服器/etc/passwd文件中匿名用戶的GID
3、重啟服務
$sudo /etc/init.d/portmap restart
$sudo /etc/init.d/nfs-kernel-server restart
4、測試nfs
此時可以運行以下命令來顯示一下共享出來的目錄:
$showmount -e
或者可以使用以下命令把它掛載在本地磁碟上,例如將/rootfs掛載到/mnt下:
$sudo mount -t nfs localhost:/rootfs /mnt
可以運行df命令查看是否掛載成功。查看後可以使用以下命令卸載:
$ sudo umount /mnt

3、怎麼在vmware下的ubuntu中搭建nfs伺服器

1.1 搭建NFS伺服器

NFS(Network FileSystem,網路文件系統)是由SUN公司發展,並於1984年推出的技術,用於在不同機器,不同操作系統之間通過網路互相分享各自的文件。NFS設計之初就是為了在不同的系統間使用,所以它的通訊協議設計與主機及操作系統無關。

NFS分伺服器和客戶機,當使用遠端文件時只要用mount命令就可把遠端NFS伺服器上的文件系統掛載在本地文件系統之下,操作遠程文件與操作本地文件沒有不同。NFS伺服器所共享文件或目錄記錄在/etc/exports文件中。

嵌入式Linux開發中,會經常使用NFS,目標系統通常作為NFS客戶機使用,Linux主機作為NFS伺服器。在目標系統上通過NFS,將伺服器的NFS共享目錄掛載到本地,可以直接運行伺服器上的文件。在調試系統驅動模塊以及應用程序,NFS都是十分必要的,並且Linux還支持NFS根文件系統,能直接從遠程NFS root啟動系統,這對嵌入式Linux根文件系統裁剪和集成也是十分有必要的。

安裝nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

設置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS伺服器目錄。 一個NFS伺服器可以共享多個NFS目錄,在/etc/exports文件中,每個目錄的設置獨佔一行,編寫格式如下:

NFS共享目錄路徑 客戶機IP或者名稱(參數1,參數2,...,參數n)

說明:

q NFS共享目錄可以是主機的任何一個目錄,為了方便使用,最好將許可權設置為777。

q 客戶機指的是可以訪問共享目錄的客戶機的IP或者主機名,可以是指定的IP或者主機名。如果使用IP,可以使用通配符。假如指定IP為192.168.1.x的客戶機可以訪問,可以寫成192.168.1.*,如果設置為*,則表示任何客戶機都可以訪問。

q 訪問參數可以是一個,也可以是多個,用逗號分開。可能的參數和說明如 REF _Ref286733518 \h 表 5. 所列。

表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS設置參數和說明

參數

說明

ro

只讀訪問

rw

讀寫訪問

sync

所有數據在請求時寫入共享

async

nfs在寫入數據前可以響應請求

secure

nfs通過1024以下的安全TCP/IP埠發送

insecure

nfs通過1024以上的埠發送

wdelay

如果多個用戶要寫入nfs目錄,則歸組寫入(默認)

no_wdelay

如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置

hide

在nfs共享目錄中不共享其子目錄

no_hide

共享nfs目錄的子目錄

subtree_check

如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的許可權(默認)

no_subtree_check

不檢查父目錄許可權

all_squash

共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄

no_all_squash

保留共享文件的UID和GID(默認)

root_squash

root用戶的所有請求映射成如anonymous用戶一樣的許可權(默認)

no_root_squash

root用戶具有根目錄的完全管理訪問許可權

anonuid=xxx

指定nfs伺服器/etc/passwd文件中匿名用戶的UID

anongid=xxx

指定nfs伺服器/etc/passwd文件中匿名用戶的GID

假定NFS共享目錄是/home/ky/nfs,允許所有客戶機訪問,/etc/exports文件可寫為:

/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)

啟動NFS伺服器。啟動portmap(如果有必要)和nfs-kernel-server服務:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

本地驗證NFS伺服器。將NFS伺服器目錄掛載到本機另外一個目錄下,可以看到掛載點目錄下可以看到NFS伺服器目錄中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用開發板驗證NFS伺服器是否可用。啟動開發板,進入系統,配置好開發板的IP地址後,用mount命令掛載NFS伺服器的NFS目錄:

target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

掛載成功後,可以在開發板的/mnt目錄下看到NFS伺服器上的文件。

說明,使用開發板與虛擬機安裝的客戶系統進行NFS掛載,需要將虛擬網卡設置為Bridged模式,並建議使用靜態IP地址。

如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件後,可以不用重啟NFS服務,用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:

exportfs [-aruv]

選項說明:

-a:全部掛載(或卸載) /etc/exports的設置;

-r:重新掛載/etc/exports的設置;

-u:卸載某一個目錄;

-v:在輸出的時候,把共享目錄顯示出來。

如果NFS已經啟動,修改了/etc/exports文件,執行如下命令,新的設置即可生效:

ky@ubuntu:~$ exportfs -ra

4、在ubuntu中進行nfs配置,關閉防火牆,然後在對/etc/exports編輯,然後開啟portmap和nfs-kernel-server

1,伺服器端軟體:安裝nfs-utils和portmap(rpcbind)
nfs-utils: 提供rpc.nfsd 及 rpc.mountd這兩個NFS DAEMONS的套件
portmap: NFS其實可以被看作是一個RPC SERVER PROGRAM,而要啟動一個RPC SERVER PROGRAM,都要做好PORT的對應工作,而且這樣的任務就是由PORTMAP來完成的。通俗的說PortMap就是用來做PORT的mapping的。
NFS需要啟動的DAEMONS:參考NFS daemons

pc.nfsd:主要復雜登陸許可權檢測等 必須
portmap:處理RPC程序客戶端和伺服器端的埠對應 必須
rpc.mountd:負責NFS的檔案系統,當CLIENT端通過rpc.nfsd登陸SERVER後,對clinet存取server的文件進行一系列的管理 必須
lockd:處理通過RPC包的鎖定請求
statd:為nfs鎖定服務提供crash恢復功能
rquotad:處理當用戶通過nfsmount到遠程伺服器時的配額
守護進程啟動順序:rpc.portmap, rpc.mountd, rpc.nfsd, rpc.statd, rpc.lockd (新版本會自動跟著nfsd啟動起來), rpc.rquotad
NF伺服器端命令:
•yum install nfs-utils portmap
•chkconfig rpcbind on #chkconfig:更新和查詢各運行級別的系統服務
•chkconfig nfs on
•service rpcbind start
•service nfs start
2,伺服器端配置文件/etc/exports:指定要共享的目錄及許可權 man exports

復制代碼代碼如下:

#:允許ip地址范圍在192.168.0.*的計算機以讀寫的許可權來訪問/home/work 目錄。
/home/work 192.168.0.*(rw,sync,root_squash)
/home 192.168.1.105 (rw,sync)
/public * (rw,sync)

配置文件每行分為兩段:第一段為共享的目錄,使用絕對路徑,第二段為客戶端地址及許可權。
地址可以使用完整IP或網段,例如10.0.0.8或10.0.0.0/24,10.0.0.0/255.255.255.0當然也可以地址可以使用主機名,DNS解析的和本地/etc/hosts解析的都行,支持通配符,例如:*.chengyongxu.com
許可權有:
rw:read-write,可讀寫; 注意,僅僅這里設置成讀寫客戶端還是不能正常寫入,還要正確地設置共享目錄的許可權,參考問題7
ro:read-only,只讀;
sync:文件同時寫入硬碟和內存;
async:文件暫存於內存,而不是直接寫入內存;
no_root_squash:NFS客戶端連接服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,也擁有root許可權。顯然開啟這項是不安全的。
root_squash:NFS客戶端連接服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,擁有匿名用戶許可權,通常他將使用nobody或nfsnobody身份;
all_squash:不論NFS客戶端連接服務端時使用什麼用戶,對服務端分享的目錄來說都是擁有匿名用戶許可權;
anonuid:匿名用戶的UID值,通常是nobody或nfsnobody,可以在此處自行設定;
anongid:匿名用戶的GID值。

NFS客戶端用戶映射:客戶端登陸用戶為root或者其他用戶,然後根據伺服器端nfs server配置,相應客戶端連接映射到nfs伺服器端的用戶為root或者指定用戶(通過anonuid或者anongid來設定)、nfsnobody等。最後這個映射用戶和共享目錄的許可權共同影響該客戶端連接是否有讀寫許可權。
手動設定客戶端、伺服器端用戶映射,參數:map_static=/etc/nfs.map
/etc/nfs.map文件映射內容如下:
# remote local
gid 500 1000
uid 500 2003

參考:NFS 學習筆記中關於nfs客戶連接用戶身份的描述,沒有驗證過下述的描述:
•客戶端連接時候,對普通用戶的檢查,NO.1如果明確設定了普通用戶被壓縮的身份,那麼此時客戶端用戶的身份轉換為指定用戶,NO.2如果NFS server上面有同名用戶,那麼此時客戶端登錄賬戶的身份轉換為NFS server上面的同名用戶,NO.3如果沒有明確指定,也沒有同名用戶,那麼此時 用戶身份被壓縮成nfsnobody
•客戶端連接的時候,對root的檢查,NO.1如果設置no_root_squash,那麼此時root用戶的身份被壓縮為NFS server上面的root,NO.2如果設置了all_squash、anonuid、anongid,此時root 身份被壓縮為指定用戶,NO.3如果沒有明確指定,此時root用戶被壓縮為nfsnobody,NO.4如果同時指定no_root_squash與all_squash 用戶將被壓縮為 nfsnobody,如果設置了anonuid、anongid將被壓縮到所指定的用戶與組
3,防火牆設置修改
默認情況下,CentOS6伺服器版安裝完成後,防火牆iptables配置中只放開了22埠。
在nfs配置文件/etc/sysconfig/nfs中指定nfs服務相關埠,並修改防火牆放開相應埠

復制代碼代碼如下:

#Port rpc.mountd should listen on.
#MOUNTD_PORT=892

#Port rpc.statd should listen on.
#STATD_PORT=662

#/usr/sbin/rpc.rquotad Port rquotad should listen on.
#RQUOTAD_PORT=875

#TCP port rpc.lockd should listen on.
#LOCKD_TCPPORT=32803

#UDP port rpc.lockd should listen on.
#LOCKD_UDPPORT=32769

修改iptables配置文件/etc/sysconfig/iptables,放開111(portmap服務埠),2049(nfs服務埠)
4,/etc/hosts.allow配置修改
/etc/hosts.allow,/etc/hosts.deny 描述哪些主機允許使用本地的INET服務。
默認這里好像可以不需要修改,不過最好設置成只允許需要的客戶端機器連接,然後其他機器的連接都deny
#服務進程名:主機列表:當規則匹配時可選的命令操作
server_name:hosts-list[:command]
在/etc/hosts.allow中添加允許客戶端訪問的規則
ALL:127.0.0.1 #允許本機訪問本機所有服務進程
ALL:192.168.0.135 #允許192.168.0.135客戶端機器訪問本機所有服務進程
smbd:192.168.0.0/255.255.255.0 #允許網段的IP訪問smbd服務
sshd:192.168.100.0/255.255.255.0 #允許192.168.100.網段的IP訪問伺服器上的sshd進程
sshd:60.28.160.244 #允許外網的60.28.160.244訪問這個伺服器上的sshd進程
在/etc/hosts.deny中 被禁制登陸的嘗試連接信息也可以設置成記錄下來並發到用戶郵箱
sshd:ALL #禁止所有
5,修改共享出去的目錄許可權為760,並修改目錄所有組為nfsnobody
參考:問題7
6,客戶端掛載:執行下面的指令就可以把NFS伺服器(IP地址為192.168.1.45)共享出來的/home掛裝到本地的/mnt/nfs/home目錄下。
showmount -e nfs-serverip: 查看nfs伺服器共享出來的資源
mount -t nfs 192.168.1.45:/home /mnt/nfs/home
7,NFS性能測試:
•根據命令time dd if=/dev/zero of=/mnt/home bs=16k count=16384 來設置合理的WSIZE,RSIZE值
•根據nfs客戶端數,在/etc/sysconfig/nfs配置文件中設置合適的nfs伺服器端進程數RPCNFSDCOUNT,默認為8
exportfs命令:如果我們在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv] -a :全部mount或者unmount /etc/exports中的內容 -r :重新mount /etc/exports中分享出來的目錄 -u :umount 目錄 -v :在 export 的時候,將詳細的信息輸出到屏幕上。
showmount命令:顯示NFS伺服器的掛載信息。
showmount -e [nfs-server]:顯示指定的NFS SERVER上export出來的目錄,不指定後面IP時查看的是本機作為NFS Server時,對外共享的目錄。。
rpcinfo -p命令:顯示RPC信息 -p參數:用rpc協議來探測主機host上使用的rpcbind,並顯示所有已注冊的RPC程序。
nfsstat命令:查看NFS的運行狀態,對於調整NFS的運行有很大幫助
過程中出現的問題解決:
1, 通過yum或者rpm安裝完portmap後,發現執行命令service portmap start時報如下錯誤:portmap: unrecognized service。
CentOS6(Linux Kernel 2.6.32)中,portmap已經被rpcbind代替了,仔細查看安裝信息就會發現,執行命令yum install portmap時安裝的就是rpcbind。安裝完成後也可以通過命令:yum whatprovides portmap來查看詳細信息。
2, 客戶端掛載時,報錯誤mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive。
•1,通過命令rpcinfo -p來查看portmap服務時候正常啟動以及相應的埠(默認111)
•2,檢查/etc/sysconfig/iptables防火牆設置,允許tcp,udp的111埠訪問,然後service iptables restart
•3,檢查/etc/hosts.deny,/etc/hosts.allow看客戶端連接是否被阻止了
3, 客戶端執行命令showmount -e nfs-server時,報錯誤:mount clntudp_create: RPC: Program not registered。
nfs、rpcbind服務沒有啟動,使用chkconfig把nfs、rpcbind加到系統服務中並用service來啟動
或者在/etc/hosts.allow中添加允許客戶端訪問的規則 ALL:192.168.0.135
4, 客戶端執行命令showmount -e nfs-server時,報錯誤:rpc mount export: RPC: Unable to receive; errno = No route to host
配置文件:/etc/sysconfig/nfs
找到nfs服務相關埠設置的地方,並移除注釋後,在iptables防火牆設置中指定允許相應埠的Udp,tcp流通過。
#MOUNTD_PORT=892
#STATD_PORT=662
#LOCKD_TCPPORT=32803
#LOCKD_UDPPORT=32769
iptables -A INPUT -p TCP --dport 662 -m state --state NEW -j ACCEPT
iptables -A INPUT -p UDP --dport 661 -m state --state NEW -j ACCEPT
5, showmount -e nfs-server成功,正式掛載時報錯:mount: mount to NFS server '192.168.1.5' failed: System Error: No route to host.這是由於nfs服務的默認埠2049被防火牆阻塞了,和上面類似修改iptables允許2049埠通過
6, showmount -e nfs-server成功,正式掛載時報錯:mount: mount to NFS server '192.168.1.5' failed: timed out (retrying).
編輯/etc/sysconfig/iptables時,相關埠的tcp埠允許通過,而udp不允許。其他可能的原因參考:mount command fails with NFS server failed error.
Disable name lookup requests from NFS server to a DNS server.
or NFS version used by the NFS client is other than version 3.
7,exports配置文件中目錄許可權屬性設置為rw(默認為root_squash),但是在客戶端mount目錄執行touch命令時報錯誤:touch: cannot touch `a': Permission denied。解決:
•伺服器端共享目錄許可權查看ll -d /home
•修改伺服器端共享目錄許可權chown 760 /home(文件所有者root有全許可權、文件所有組用戶有讀寫許可權、其他用戶無許可權,然後把目錄的組設置為nfsnobody)
•修改伺服器端共享目錄許可權組擁有者為nfsnobody(cat /etc/passwd | grep nob)
•chgrp nfsnobody /home
•成功在客戶端創建新的文件!

5、如下圖的提示,我在用Ubuntu配置NFS伺服器里,出現下圖的提示,我該如何處理?在線等

你先把那些需要安裝的軟體包先安裝了,之後再安裝NFS的吧,請參考以下步驟

1、這個是專提示信息屬裡面沒有提到的,但是也需要安裝:sudo apt-get install libevent1
2、下面連續三個提示信息裡面都有的:sudo apt-get install libgssglue1
3、sudo apt-get install libnfsidmap2
4、sudo apt-get install librpcsecgss3
5、sudo apt-get install nfs-common
6、最後再安裝你nfs:sudo apt-get install nfs-kernel-server

安裝之後另外還需要一些配置,你應該懂的,我就不羅嗦了。

6、在ubuntu中怎麼啟動nfs服務

安裝用 sudo apt-get install portmap nfs-kernel-server 安裝完之後修改你的/etc/exports文件,按照裡面的格式添加你要回分享的文件夾就好了答 添加完之後開啟服務 sudo /etc/init.d/portmap restart sudo /etc/init.d/nfs-kernel-server restart

7、Ubuntu下如何安裝NFS服務及其配置

安裝抄用
sudo apt-get install portmap nfs-kernel-server

安裝完之後修改你的/etc/exports文件,按照裡面的格式添加你要分享的文件夾就好了
添加完之後開啟服務
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart

8、ubuntu nfs伺服器怎麼用

嵌入式Linux開發中,會經常使用NFS,目標系統通常作為NFS客戶機使用,Linux主機作為NFS伺服器版。權在目標系統上通過NFS,將伺服器的NFS共享目錄掛載到本地,可以直接運行伺服器上的文件。在調試系統驅動模塊以及應用程序,NFS都是十分必要的,並且Linux還支持NFS根文件系統,能直接從遠程NFS root啟動系統,這對嵌入式Linux根文件系統裁剪和集成也是十分有必要的。
安裝nfs-kernel-server:
ky@ubuntu:~$ sudo apt-get install nfs-kernel-server
設置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS伺服器目錄。 一個NFS伺服器可以共享多個NFS目錄,在/etc/exports文件中,每個目錄的設置獨佔一行

9、怎麼在ubuntu中搭建nfs伺服器

1.1 搭建NFS伺服器

NFS(Network FileSystem,網路文件系統)是由SUN公司發展,並於1984年推出的技術,用於在不同機器,不同操作系統之間通過網路互相分享各自的文件。NFS設計之初就是為了在不同的系統間使用,所以它的通訊協議設計與主機及操作系統無關。

NFS分伺服器和客戶機,當使用遠端文件時只要用mount命令就可把遠端NFS伺服器上的文件系統掛載在本地文件系統之下,操作遠程文件與操作本地文件沒有不同。NFS伺服器所共享文件或目錄記錄在/etc/exports文件中。

嵌入式Linux開發中,會經常使用NFS,目標系統通常作為NFS客戶機使用,Linux主機作為NFS伺服器。在目標系統上通過NFS,將伺服器的NFS共享目錄掛載到本地,可以直接運行伺服器上的文件。在調試系統驅動模塊以及應用程序,NFS都是十分必要的,並且Linux還支持NFS根文件系統,能直接從遠程NFS root啟動系統,這對嵌入式Linux根文件系統裁剪和集成也是十分有必要的。

安裝nfs-kernel-server:

ky@ubuntu:~$ sudo apt-get install nfs-kernel-server

設置NFS-Server目錄。修改/etc/exports文件,在其中增加NFS伺服器目錄。 一個NFS伺服器可以共享多個NFS目錄,在/etc/exports文件中,每個目錄的設置獨佔一行,編寫格式如下:

NFS共享目錄路徑 客戶機IP或者名稱(參數1,參數2,...,參數n)

說明:

q NFS共享目錄可以是主機的任何一個目錄,為了方便使用,最好將許可權設置為777。

q 客戶機指的是可以訪問共享目錄的客戶機的IP或者主機名,可以是指定的IP或者主機名。如果使用IP,可以使用通配符。假如指定IP為192.168.1.x的客戶機可以訪問,可以寫成192.168.1.*,如果設置為*,則表示任何客戶機都可以訪問。

q 訪問參數可以是一個,也可以是多個,用逗號分開。可能的參數和說明如 REF _Ref286733518 \h 表 5. 所列。

表 STYLEREF 1 \s 5. SEQ 表 \* ARABIC \s 1 1 NFS設置參數和說明

參數

說明

ro

只讀訪問

rw

讀寫訪問

sync

所有數據在請求時寫入共享

async

nfs在寫入數據前可以響應請求

secure

nfs通過1024以下的安全TCP/IP埠發送

insecure

nfs通過1024以上的埠發送

wdelay

如果多個用戶要寫入nfs目錄,則歸組寫入(默認)

no_wdelay

如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置

hide

在nfs共享目錄中不共享其子目錄

no_hide

共享nfs目錄的子目錄

subtree_check

如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的許可權(默認)

no_subtree_check

不檢查父目錄許可權

all_squash

共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄

no_all_squash

保留共享文件的UID和GID(默認)

root_squash

root用戶的所有請求映射成如anonymous用戶一樣的許可權(默認)

no_root_squash

root用戶具有根目錄的完全管理訪問許可權

anonuid=xxx

指定nfs伺服器/etc/passwd文件中匿名用戶的UID

anongid=xxx

指定nfs伺服器/etc/passwd文件中匿名用戶的GID

假定NFS共享目錄是/home/ky/nfs,允許所有客戶機訪問,/etc/exports文件可寫為:

/home/ky/nfs *(rw,sync,no_subtree_check, no_root_squash)

啟動NFS伺服器。啟動portmap(如果有必要)和nfs-kernel-server服務:

ky@ubuntu:~$ sudo service portmap start

ky@ubuntu:~$ sudo service nfs-kernel-server start

本地驗證NFS伺服器。將NFS伺服器目錄掛載到本機另外一個目錄下,可以看到掛載點目錄下可以看到NFS伺服器目錄中的文件。

ky@ubuntu:~$ ls /home/ky/nfs/

aaaa

ky@ubuntu:~$ sudo mount -t nfs 127.0.0.1:/home/ky/nfs /mnt

ke@ubuntu:~$ ls /mnt

aaaa

ky@ubuntu:~$ sudo umount /mnt/

用開發板驗證NFS伺服器是否可用。啟動開發板,進入系統,配置好開發板的IP地址後,用mount命令掛載NFS伺服器的NFS目錄:

target# mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -o nolock

target# ls /mnt

kingyee

target# umount /mnt/

掛載成功後,可以在開發板的/mnt目錄下看到NFS伺服器上的文件。

說明,使用開發板與虛擬機安裝的客戶系統進行NFS掛載,需要將虛擬網卡設置為Bridged模式,並建議使用靜態IP地址。

如果在使用中需要增加新的NFS共享目錄,直接修改/etc/exports文件即可。修改該文件後,可以不用重啟NFS服務,用exportfs命令讀取/etc/exports文件,重新共享輸出。exportfs命令語法如下:

exportfs [-aruv]

選項說明:

-a:全部掛載(或卸載) /etc/exports的設置;

-r:重新掛載/etc/exports的設置;

-u:卸載某一個目錄;

-v:在輸出的時候,把共享目錄顯示出來。

如果NFS已經啟動,修改了/etc/exports文件,執行如下命令,新的設置即可生效:

ky@ubuntu:~$ exportfs -ra

10、怎麼去頂ubuntu搭建nfs文件系統成功

1、安裝nfs伺服器和客戶端

sudo apt-get install nfs-kernel-server nfs-common portmap

2、配置portmap 兩種方式任選一種(ubuntu下portmap被rpcbind替代了,不需要此步)

(1)sudo vim /etc/default/portmap 去掉 -i 127.0.0.1

(2)sudo dpkg-reconfigure portmap 選擇"否"

3、配置掛載目錄和許可權

vim /etc/exports

在最後添加 /nfsroot *(rw,sync) #nfsroot為nfs伺服器根目錄

*可替換成對應的主機名

比如我要將將我的home目錄中的/home/lin/NFSshare目錄讓192.168.1.*的IP共享, 則在該文件末尾添加下列語句:
/home/lin/NFSshare 192.168.1.*(rw,sync,no_root_squash)

然後保存退出。

/home/lin/NFSshare就表示共享目錄,當然,你可以隨便換成自己喜歡的目錄。

192.168.1.*:前面三位是你主機(NFS客戶端)的ip地址(本機終端ifconfig命令就可以獲得本機的ip地址)。
rw:讀/寫許可權,只讀許可權的參數為ro;
sync:數據同步寫入內存和硬碟,也可以使用async,此時數據會先暫存於內存中,而不立即寫入硬碟。

no_root_squash:NFS 伺服器共享目錄用戶的屬性,如果用戶是 root,那麼對於這個共享目錄來說就具有 root 的許可權。

4、更新exports文件

sudo exportfs -r

5、重啟rpcbind,nfs服務

sudo /etc/init.d/rpcbind restart

sudo /etc/init.d/nfs-kernel-server restart

6.前往客戶機掛載nfs伺服器共享目錄

sudo mount -t nfs 192.168.10.62:/home/share/nfs /home/share/nfs

注意:這個命令是在客戶機上執行的,

192.168.10.62是nfs伺服器ip,後面的 :/home/share/nfs是伺服器的共享目錄,

最後面的/home/share/nfs是客戶機上的共享目錄

與ubuntunfs伺服器配置相關的知識