1. 程式人生 > >NFS與SSH

NFS與SSH

touch 代理服 表示 上傳 con exports 本地域名 域名 上下

(一)NFS

NFS----Network File System,網絡文件系統:通過網絡讓不同的機器不同的系統能夠彼此分享數據,讓應用程序在客戶端通過網絡訪問位於服務器磁盤中的數據,是在類Unix系統之間實現磁盤文件共享的一種方法。基於RPC協議。

NFS是一種文件存儲,可以打開修改保存,相對於塊存儲(裸盤)和對象存儲(如網盤,作為一個對象只能上傳下載不能在網盤上修改)

1.NFS安裝設置步驟-------服務端:

(1)安裝(服務端客戶端都要安裝):

--------yum install rpcbind nfs-utils -y (安裝2個包,先安裝rpcbind包,nfs是基於這個包的,然後安裝nfs-utils包)

(2)修改配置文件:

a.先建share目錄,磁盤共享的位置或路徑,並構建共享數據

-----mkdir /share -----touch /share/a.txt -----echo ‘gongxiang‘ >a.txt (最好給share單獨掛載一個硬盤(mount /dev/sdb /share),專門存放共享數據)

b.改配置文件:

-----vim /etc/exports

寫入: /share +服務端IP地址(rw,sync,fsid=0) (rm,軟件級別的讀寫權限,sync表示同步)

如:/share 192.168.72.0/24(rw,sync,fsid=0) ip中0/24表示全段

(3)給共享文件操作系統級別的權限

-----chmod -R o+w /share/ (-R 遞歸地給權限)

(4)啟動服務(先啟動RPC再啟動NFS):

-----systemtcl start rpcbind.service

-----systemctl start nfs.service

設置為開機啟動:

-----systemtcl enable rpcbind.service

-----systemctl enable nfs.service

(5)確認nfs是否啟動成功:

-----rpcbind (顯示rpcbind信息)

-----exports (查看共享信息)

/share 192.168.72.0/24

2.NFS安裝設置步驟-------客戶端:

(1)安裝

--------yum install rpcbind nfs-utils -y

(2)開啟

-----systemtcl start rpcbind.service

-----systemctl start nfs.service

設置為開機啟動:

-----systemtcl enable rpcbind.service

-----systemctl enable nfs.service

(3)檢查NFS服務端是否有共享目錄:

-----showmount -e +NFS服務器ip (如-----showmount -e 192.168.72.129)

顯示: /share 192.168.72.0/24

(4)將服務端共享磁盤目錄掛載到本地目錄下 (NFS遠程同步數據的關鍵一步)

-----mount -t nfs 192.168.72.129:/share /usr/share/nginx/html/

在本地目錄下就可以看到服務端/share下的內容,並可以改動

nginx的反向代理服務器與bfs服務器是同一個機器時:這樣配置/etc/nginx/nginx.conf (將默認的root根設為/shere)

http{

upstream pythonweb {

serve 192.168.72.130;

serve 192.168.72.131;

serve 192.168.72.132;

server {

root /share

}

location / {

proxy_pass http://pythonweb

}

(二)SSH服務

Secure Shell的縮寫。建立在應用層上的安全協議。目前較可靠,專為遠程登陸會話服務和遠程其他操作服務提供安全性的協議;2臺機器都開啟了sshd服務,可以互聯;sshd默認端口號為22號端口。

從客戶端來說,SSH提供兩種級別的安全驗證:基於口令的安全驗證和基於密鑰的安全驗證;

1.sshd的安裝:默認已安裝,默認已開啟

------systemctl status sshd 檢查是否開啟sshd服務

2.本機遠程登陸對方機器(需知道對方賬戶名和密碼):

-----ssh +對方IP地址 (建立遠程連接)

如:-----ssh 192.168.72.131

------然後輸入對方賬戶的密碼

3.將本地文件復制到對方本地路徑下 scp

-----scp + 本地文件路徑 + 對方電腦IP:/對方本地路徑

如: -----scp /etc/hosts 192.168.16.151:/temp

如果本地域名中有對方網址的域名解析,如pythonweb 192.168.16.151,也可以這樣寫

-----scp /etc/hosts python web:/temp

4.上面的3可以說是吧本地路徑文件上傳到遠程路徑文件,我們也可以在本地主機上從遠程路徑上下載文件到本地:

-----scp + 對方電腦IP:/對方本地路徑 + 本地文件路徑

如:-----scp 192.168.16.151:/temp /etc/hosts

5.基於口令的驗證每次都要輸入口令,比較麻煩,我們來看一下在當前是客戶端情況下SSH基於密鑰的操作,在終端進行如下操作:

(1)建立鑰匙和鎖子

------ssh-keygen (key是鑰匙,gen是加密的意思)

------一路敲回車

鑰匙和鎖子已建立,在/root/.ssh/下

-----ls /root/.ssh

id_rsa (鑰匙) id_ras.pub (鎖)

(2)把鎖子發到服務端就可以了

-----ssh-copy-id -i 服務端IP

如: -----ssh-copy-id -i 192.168.72.133

發了之後再服務端/root/.ssh下 就會有個authorized_keys文件,也就是客戶端的id_rsa.pub在服務端/root/.ssh被重命名為authorized_keys。

6.SSH服務的配置文件

/etc/ssh/sshd_config

裏面的port 22 默認端口可以改,比如改成8888了(改後把客戶端服務端/root/.ssh裏的文件刪除),SSH服務操作就變成了:

-----ssh-keygen

-----ssh-copy-id -i id_rsa.pub 192.168.72.133 -p 8888 (id_rsa.pub指定文件類型,-p端口號)

在操作第二步之前可以看下有沒有8888這個端口:

-----systemctl restart sshd

-----netstate -an | grep 8888

NFS與SSH