天天看點

NFS與FTP服務搭建與配置

14.1 NFS介紹

14.2 NFS服務端安裝配置

14.3 NFS配置選項

14.4 exportfs指令

14.5 NFS用戶端問題

15.1 FTP介紹

15.2/15.3 使用vsftpd搭建ftp

15.4 xshell使用xftp傳輸檔案

15.5 使用pure-ftpd搭建ftp服務

擴充

vsftp使用mysql存放虛拟使用者并驗證 http://www.aminglinux.com/bbs/thread-342-1-1.html

ftp的主動和被動模式  http://www.aminglinux.com/bbs/thread-961-1-1.html

一、NFS介紹

1、NFS簡介

NFS,Network File System的縮寫。網絡檔案系統,即通過網絡,對在不同主機上的檔案進行共享。
NFS最早由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與并主導開發,最新為4.1版本,更新比較慢其實4.1是從2010年就開始使用了。
NFS資料傳輸基于RPC協定,RPC為Remote Procedure Call的簡寫。NFS服務需要借助于RPC協定實作通信
NFS應用場景是:A,B,C三台機器上需要保證被通路到的檔案是一樣的,A共享資料出來,B和C分别去挂載A共享的資料目錄,進而B和C通路到的資料和A上的一緻      
NFS與FTP服務搭建與配置

2、NFS原理:

  • 首先:NFS包括兩部分,服務端及用戶端
  • 由于NFS服務功能很多,會有很多端口,這些端口還有可能不固定,那麼用戶端就無法與伺服器進行通信,因為程式間通信必須通過端口(tcp/udp都是端到端通信),那麼就需要一個中間的橋接機制,RPC程序即充當這樣一個角色,RPC的端口是一定的(111),當NFS啟動時,會向RPC進行注冊, 那麼用戶端PRC就能與伺服器RPC進行通信, 進而進行檔案的傳輸。
  • 當用戶端使用者打開一個檔案或目錄時,核心會判斷,該檔案是本地檔案還是遠端共享目錄檔案,如果是遠端檔案則通過RPC程序通路遠端NFS服務端的共享目錄,如果是本地檔案,則直接打開。
  • 為了更好的并發,RPC程序及NFS程序都有多個。
NFS與FTP服務搭建與配置

二、NFS服務端安裝配置

用兩台機器做實驗,一台作為服務端(001 192.168.83.3),一台作為用戶端(002 192.168.83.33);

在兩台機器上安裝:    yum install -y nfs-utils rpcbind

在001上,編輯配置檔案 :vim /etc/exports

寫入以下語句

/home/nfstestdir 192.168.83.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

語句釋義:

  • /home/nfstestdir :共享的目錄
  • rw: 讀寫
  • ro: 隻讀
  • sync: 同步模式,記憶體資料實時寫入磁盤
  • async :非同步模式
  • no_root_squash: 用戶端挂載NFS共享目錄後,root使用者不受限制,權限很大
  • root_squash: 與上面選項相對,用戶端上的root使用者收到限制,被限定成某個普通使用者
  • all_squash:用戶端上所有使用者在使用NFS共享目錄時都被限定為一個普通使用者
  • anonuid/anongid: 和上面幾個選項搭配使用,定義被限定使用者的uid和gid
  • 192.168.83.0/24:為用戶端的網段;

建立nfstestdir要分享的目錄,并給予777權限

NFS與FTP服務搭建與配置

 開啟nfs服務 :    systemctl start nfs

檢視監聽端口,端口111為rpcbind預設端口     

NFS與FTP服務搭建與配置

設定開機啟動:systemctl enable nfs

NFS與FTP服務搭建與配置

三、NFS配置選項

1、挂載NFS

showmount -e 192.168.83.3 //該ip為NFS服務端ip

如果沒有出現共享目錄,有下面可能,注意排查:

  • 1、兩者通信問題
  • 2、把兩者的防火牆關閉

此處關閉服務端和用戶端的防火牆:     systemctl stop firewalld

selinux也要關掉   

NFS與FTP服務搭建與配置
NFS與FTP服務搭建與配置
NFS與FTP服務搭建與配置

showmount -e 192.168.83.3 //該ip為NFS服務端ip

NFS與FTP服務搭建與配置

開始挂載:    

 mount -t nfs 192.168.83.3:/home/nfstestdir /mnt

NFS與FTP服務搭建與配置

在用戶端挂載目錄/mnt/下,就是NFS共享的目錄,建立一個測試檔案tobe.php

NFS與FTP服務搭建與配置

在服務端的共享目錄中可以看到

NFS與FTP服務搭建與配置

四、exportfs指令

看下圖:假如A的NFS服務停掉了,但是B和C還在挂載着A分享的分區,這就無法正常工作了,由于B和C上面的程序是d狀态(不可中斷程序,在ps一節中學習到的),一旦A停止了,B和C一定會出問題,無法服務,既不可以重新開機,也不可以關閉,就會把系統整挂掉。是以NFS一定不可以随便重新開機。 如果必須重新開機怎麼辦?先把B和C上面的目錄解除安裝下來。

NFS與FTP服務搭建與配置

 如果挂載了多台機器,使用exportps

exportps指令常用選項:

-a 全部挂載或者全部解除安裝
 -r 重新挂載
 -u 解除安裝某一個目錄
 -v 顯示共享目錄
 以下操作在服務端上
 vim /etc/exports //增加
 /tmp/ 192.168.83.33/24(rw,sync,no_root_squash)
 exportfs -arv //不用重新開機nfs服務,配置檔案就會生效      

在服務端001上:        

exportfs -arv

這樣就可以讓配置檔案重新生效,不需要再次重新開機nfs服務,也不會對用戶端造成之前所說的錯誤

NFS與FTP服務搭建與配置

編輯配置檔案,增加一個共享的目錄

vim /etc/exports

/tmp/ 192.168.83.33/24(rw,sync,no_root_squash)      

用指令:exportfs -arv 直接生效,不用重新開機NFS服務

NFS與FTP服務搭建與配置

使用用戶端測試;

檢視服務端共享目錄:showmount -e 192.168.83.3

NFS與FTP服務搭建與配置

挂載     mount -t nfs 192.168.83.3:/tmp /mnt

因為之前挂載了,需要先取消挂載

NFS與FTP服務搭建與配置

在用戶端mnt下建立一個測試文本

新檢測試文本1212.txt,檢視其gid和uid都為root

NFS與FTP服務搭建與配置

在服務端001下

檢視/tmp目錄下的1212.txt測試文本,其uid和gid都為root

NFS與FTP服務搭建與配置

五、NFS用戶端問題

注意:NFS 4版本會有該問題

在用戶端挂載共享目錄且權限設定為no_root_squash,不管是root使用者還是普通使用者,建立新檔案時屬主、屬組為nobody , 這個不是設定錯誤,是軟體本身自帶的BUG。

解決方案:

方案1: 在用戶端挂載的時候加上 -o nfsvers=3,其目的是指定nfs使用3版本,

mount -t nfs -o,nfsvers=3 192.168.83.3:/tmp /mnt   需要解除安裝

mount -t nfs -oremount,nfsvers=3 192.168.83.3:/tmp /mnt        -oremount,nfsvers=3,不解除安裝使用remount(重新加載),-oremount:-o與remount中間看情況是否要加空格      
NFS與FTP服務搭建與配置

方案2:在服務端和用戶端配置:

vim /etc/idmapd.conf

把“#Domain = local.domain.edu” 改為 “Domain = xxx.com” (這裡的xxx.com,看情況可以自定義),然後再重新開機rpcbind服務      

六、FTP介紹

我們之前傳輸檔案所用的是rz,sz指令,可以簡單明了的就把我們所需的檔案下載下傳或者上傳。但是有個缺陷,不可以上傳或者下載下傳大體積的檔案。FTP就可以解決這個問題! 
FTP是File Transfer Protocol(檔案傳輸協定,簡稱文傳協定)的英文簡稱,用于在Internet上控制檔案的雙向傳輸。
FTP的主要作用就是讓使用者連接配接一個遠端計算機(這些計算機上運作着FTP伺服器程式),并檢視遠端計算機中的檔案,然後把檔案從遠端計算機複制到本地計算機,或把本地計算機的檔案傳送到遠端計算機。 
小公司用的多,大企業不用FTP,因為不安全,通常使用GitHub。      

七、使用vsftpd搭建ftp服務

1、配件相關資訊

centos上自帶的FTP服務軟體vsftpd,預設沒有安裝;需要用yum安裝

yum install -y vsftpd      

安裝後,不用配置,可以直接使用,預設支援使用系統賬号登入,但是因為安全原因,需要建立賬号體系

useradd -s /sbin/nologin virftp            //建立虛拟使用者virftp
vim /etc/vsftpd/vsftpd_login               //建立虛拟使用者的密碼檔案      

vim /etc/vsftpd/vsftpd_login内容如下,奇數行為使用者名,偶數行為密碼,多個使用者就寫多行

tobe和user為使用者名

chmod 600 /etc/vsftpd/vsftpd_login  更改權限

db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db     //生成庫檔案

NFS與FTP服務搭建與配置

建立虛拟使用者的配置檔案所在目錄,目錄可以自定義

mkdir /etc/vsftpd/vsftpd_user_conf

建立第一個使用者的配置檔案,檔案名要和使用者名保持一緻

cd /etc/vsftpd/vsftpd_user_conf/

vim tobe

local_root=/home/virftp/tobe  //虛拟使用者的家目錄
anonymous_enable=NO //是否允許匿名使用者
write_enable=YES //是否允許可寫
local_umask=022 //建立新目錄和檔案的權限
anon_upload_enable=NO //是否允許匿名使用者上傳
anon_mkdir_write_enable=NO //是否允許匿名使用者可建立
idle_session_timeout=600 //連接配接後沒有任何操作的逾時時間,空閑時間段,600秒
data_connection_timeout=120 //資料傳輸的逾時時間120秒
max_clients=10 //最大允許連接配接的clients用戶端個數      

建立虛拟使用者家目錄,并建立一個檔案

mkdir /home/virftp/tobe
touch /home/virftp/tobe/test.txt
chown -R virftp:virftp /home/virftp    //更改整個目錄權限

vim /etc/pam.d/vsftpd         //定義密碼檔案在哪裡,在最前面加上如下内容,注意每行語句後面不能有空格
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login      
NFS與FTP服務搭建與配置

修改vsftpd的主配置檔案/etc/vsftpd/vsftpd.conf。注意每行語句後面不能有空格

 vim /etc/vsftpd/vsftpd.conf

将anonymous_enable=YES 改為 anonymous_enable=NO        
将anon_upload_enable=YES 改為 anon_upload_enable=NO 
将anon_mkdir_write_enable=YES 改為 anon_mkdir_write_enable=NO
再增加如下内容:
chroot_local_user=YES
guest_enable=YES
guest_username=virftp
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
allow_writeable_chroot=YES      
NFS與FTP服務搭建與配置

systemctl start vsftpd     //啟動vsftpd服務,并檢視啟動狀态

注意: 21端口FTP; 22端口SSHD; 23端口TELNET      
NFS與FTP服務搭建與配置

2、測試ftp

在伺服器上安裝lftp   yum install -y lftp

安裝完成後,連結使用者tobe:   lftp [email protected]

執行指令ls,看是否正常輸出,若不正常檢視日志/var/log/messages和/var/log/secure

?         //是用來檢視可以操作的指令

使用 get+檔案名 來下載下傳一個檔案到目前所在目錄,下圖所在目錄為/root/,是以檔案在root目錄下

NFS與FTP服務搭建與配置

八、xshell使用xftp傳輸檔案

1、使用xshell直接傳輸

原理就是:使用sftp模式登入伺服器

第一步:在xshell下,建立會話,按下圖設定其屬性

NFS與FTP服務搭建與配置

第二步:按下圖,設定其下載下傳到的目錄

NFS與FTP服務搭建與配置

設定完成輸入使用者名密碼進入

可以自由切換目錄

NFS與FTP服務搭建與配置

get httpd-2.4.39.tar.gz    擷取此檔案

NFS與FTP服務搭建與配置

此時windows在桌面上,找到對應的目錄,即可看到相應的檔案

NFS與FTP服務搭建與配置

2、xshell使用xftp軟體傳輸檔案

在xshell界面上按下“ctrl+alt+F”彈出以下對話框,點選下載下傳,跳轉到下載下傳頁,下載下傳安裝

NFS與FTP服務搭建與配置

安裝完成後,回到xshell上,按下“ctrl+alt+F”彈出軟體界面

NFS與FTP服務搭建與配置

左側windows下選擇好要傳輸的目錄,在右側選擇要傳輸的檔案,點選傳輸,左側會顯示傳輸過去的檔案

NFS與FTP服務搭建與配置

九、 使用pure-ftpd搭建ftp服務

pure-ftp為另外一款輕量FTP服務軟體,和vsftp類似

安裝并配置pure-ftpd

yum install -y pure-ftpd      

vim /etc/pure-ftpd/pure-ftpd.conf        //找到pureftpd.pdb這行,把行首的#删除

NFS與FTP服務搭建與配置

因為vsftpd和pure-ftpd 共用21端口,是以需要把vsftpd服務關掉,再開啟pure-ftpd

systemctl stop vsftpd

 systemctl start pure-ftpd

NFS與FTP服務搭建與配置

建立一個測試使用者目錄及使用者

mkdir /data/ftp
useradd -u 1010 pure-ftp
chown -R pure-ftp:pure-ftp /data/ftp      

通過pure-pw指令增加ftp使用者以及配置使用者庫檔案

pure-pw useradd ftp_usera -u pure-ftp  -d /data/ftp        通過pure-pw指令建立一個使用者,useradd指定使用者名為ftp_usera,-u指定系統的使用者是pure-ftp,-d 指定虛拟使用者的家目錄為/data/ftp
pure-pw mkdb            //建立虛拟使用者資料
touch /data/ftp/123.txt   建立一個測試檔案
lftp [email protected]    測試正常      
NFS與FTP服務搭建與配置

chown pure-ftp:pure-ftp /data/ftp/123.txt   屬主映射成UID,數組為系統中組的名字

NFS與FTP服務搭建與配置

版權聲明:本文為CSDN部落客「weixin_33796205」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_33796205/article/details/92426910

繼續閱讀