Debian9.5 系統配置NFS詳細說明

NFS是Network File System的縮寫,即網絡文件系統。它的主要功能是通過網絡(一般是局域網)讓不同的主機系統之間可以共享文件或目錄。NFS客戶端可以通過掛載(mount)的方式將NFS服務端共享的數據目錄掛載到NFS客戶端本地系統中(就是某一個掛載點下)。從NFS客戶端的機器本地看,NFS服務端共享的目錄就好像是客戶自己的磁盤分區或者目錄一樣,而實際上確是遠端的NFS服務端的目錄。NFS主要用於類Unix系統之間的共享, 最早是由Sun公司發展出來的。

NFS網絡文件系統類似windows系統的網絡共享、安全功能、網絡驅動器映射,這也和linux系統裏的samba服務類似。應用於互聯網中小型集羣架構後端作爲數據共享,如果是大型網站,那麼有可能還會用到更復雜的分佈式文件系統,例如Moosefs(mfs)、glusterfs、FastDFS。

一、NFS原理流程及RPC服務的介紹
既然NFS是通過網絡來進行服務器端和客戶端之間的數據傳輸,那麼兩者之間要傳輸數據就要有相對應的網絡端口,NFS服務器到底使用哪個端口來進行數據傳輸呢?基本上NFS這個服務的端口開在2049,但由於文件系統非常複雜。因此NFS還有其他的程序去啓動額外的端口,這些額外的用來傳輸數據的端口是隨機選擇的,是小於1024的端口;既然是隨機的那麼客戶端又是如何知道NFS服務器端到底使用的是哪個端口呢?這時就需要通過遠程過程調用(Remote Procedure Call,RPC)協議來實現了!

NFS RPC最主要的功能就是記錄每個NFS功能所對應的端口號,並且在NFS客戶端請求時將該端口和功能對應的信息傳遞給請求數據的NFS客戶端,讓客戶端可以鏈接到正確的端口上去,從而實現數據傳輸。只在第一次建立連接時候幫助網絡應用程序找到正確的port,當雙方正確連接時,端口就和應用綁定,PPC就無用了。相當於媒婆。  

RPC怎樣知道NFS的每個端口呢?
原因是,當NFS服務啓動時會隨機取用數個端口,並主動向RPC服務註冊取用的相關端口信息,這樣,RPC服務就可以知道每個端口所對應的NFS功能了,然後RPC服務使用固定的端口號111來監聽NFS客戶端提交的請求,並將正確的NFS端口應答給NFS客戶端,這樣一來,就可以讓NFS客戶端與服務端進行數據傳輸了。

提示:在啓動NFS SERVER之前,首先要啓動RPC服務(即rpcbind服務,下同)否則NFS SERVER就無法向RPC服務註冊,另外,如果RPC服務重新啓動,原來已經註冊好的NFS端口數據就會全部丟失。因此此時RPC服務管理的NFS程序也要重新啓動以重新向RPC註冊。特別注意:一般修改NFS配置文檔後,是不需要重啓NFS的,直接在命令執行exportfs –rv即可使修改的/etc/exports生效。

客戶端NFS和服務端NFS通訊過程

1、首先服務器端啓動RPC服務,並開啓111端口

2、啓動NFS服務,並向RPC註冊端口信息

3、客戶端啓動RPC(rpcbind服務),向服務端的RPC(rpcbind)服務請求服務端的NFS端口

4、服務端的RPC(rpcbind)服務反饋NFS端口信息給客戶端。

5、客戶端通過獲取的NFS端口來建立和服務端的NFS連接並進行數據的傳輸


二、NFS服務端軟件的安裝
1、安裝nfs服務主程序nfs-kernel-server
這個軟件提供nfs的主要服務,提供文件系統的完整功能。這裏要提醒一下,NFS服務器會直接使用到內核的模塊,所以內核必須要支持 NFS 纔行。如果操作系統的版本是自行編譯的內核的話,需要注意編譯NFS的內核支持。安裝命令如下:
-------------------------------------------------
root@debian:~# apt install nfs-kernel-server
-------------------------------------------------

2、安裝RPC主程序rpcbind以前的程序名叫做portmap
NFS 服務都是通過 RPC 來具體實現的,所以要正常使用NFS服務,需要啓動 rpcbind來實現端口的映射工作,正常安裝完nfs-kernel-server程序會
自動安裝上rpcbind,如果沒有安裝通過下面命令安裝:
------------------------------------------------
root@debian:~# apt install rpcbind
------------------------------------------------

三、查看NFS相關服務是否啓動
1、產看NFS主服務:
-----------------------------------------------------------
root@debian:~# systemctl status nfs-kernel-server.service
-----------------------------------------------------------
nfs-kernel-server.service和nfs-server.service是一個,查看那個都可以

2、查看rpcbind服務
---------------------------------------------------
root@debian:~# systemctl status rpcbind.service
---------------------------------------------------
如果上面的服務沒有啓動手動進行啓動

3、設置NFS主程序開機啓動
------------------------------------------------------------
root@debian:~# systemctl enable nfs-kernel-server.service
------------------------------------------------------------
正常安裝完程序後會啓動服務並添加開機啓動。

4、設置rpcbind主程序開機啓動
------------------------------------------------
root@debian:~# systemctl enable rpcbind.service
------------------------------------------------
正常安裝完程序後會啓動服務並添加開機啓動。

四、NFS server端的配置

1、主要的配置文件:/etc/exports
這個文件是NFS的主要配置文件,如果不存在新建這個文件,後面介紹他的用法。

2、NFS文件系統的維護命令:exportfs
這個是維護NFS共享資源的命令,我們可以利用這個命令重新共享/etc/exports更新的目錄資源、將NFS server共享的的目錄卸載或重新共享等,這是NFS系統裏面相當重要的一個命令,後面會具體介紹。

五、/etc/exports配置文件的語法與參數
1、先舉個例子:將/media/目錄共享給局域網中192.168.1.0/24網段的用戶可讀寫並且數據同步寫入到硬盤和內存,所以用戶只讀。/etc/exports配置文件的內容如下:
=============================================
root@debian:~# vim.tiny /etc/exports
/media     192.168.1.0/24(rw,sync)        *(ro)
[共享目錄]   [可以訪問的主機(權限)]       [*代表所有用戶(權限)]
=============================================
這個配置文件很簡單,每一行前面是要共享的目錄,是以目錄爲單位。然後這個目錄可以依照不同的權限共享給不同的主機,不同的主機用空格分開,主機後面是以小括號"()"定義權限參數,若權限參數不只一個時,則以逗號","分開,並且主機名與小括號是連在一起的,主機與共享目錄之間用空格分開,在這個文件內也可以利用#號來進行註釋。

2、主機設置主要有以下幾種方式:
可以使用完整的IP或者網絡號,例如:
單個主機:192.168.1.100  網絡號:192.169.1.0/24或192.168.1.0/255.255.255.0

可以使用主機名,但這個主機名必須要在/etc/hosts內,或可以使用DNS找到該名稱,重點是可以找到IP地址,如果是主機名可以支持通配符,例如"*"或"?"均可接受。

3、小括號內常用的權限參數如下:
================================================================
ro:共享目錄只讀;
rw:共享目錄可讀可寫
sync:同步,將數據同步寫入內存緩衝區與磁盤中,效率低,但可以保證數據的一致性;
async:異步,將數據先保存在內存緩衝區中,必要時才寫入磁盤,效率高,但有丟失數據的風險;
wdelay(默認):如果有多個客戶端要對同一個共享目錄進行寫操作,則將這些操作集中執行。對有很多小的IO寫操作時,使用該選項可以有效的提高效率;
no_wdelay:如果有多個客戶端要對同一個共享目錄進行寫操作則立即寫入。當設置了async選項時,no_wdelay選項無效,應與sync配合使用;
root_squash(默認):將來訪的root用戶映射爲匿名用戶或用戶組;
no_root_squash:來訪的root用戶保持root帳號權限;
all_squash:所有訪問用戶都映射爲匿名用戶或用戶組;
no_all_squash(默認):訪問用戶先與本機用戶匹配,匹配失敗後再映射爲匿名用戶或用戶組;
anonuid=<UID>:指定匿名訪問用戶的本地用戶UID,默認爲nfsnobody(65534);
anongid=<GID>:指定匿名訪問用戶的本地用戶組GID,默認爲nfsnobody(65534);
secure(默認):限制客戶端只能從小於1024的tcp/ip端口連接服務器;
insecure:允許客戶端從大於1024的tcp/ip端口連接服務器;
subtree_check :若輸出目錄是一個子目錄,則nfs服務器將檢查其父目錄的權限;
no_subtree_check(默認) :即使輸出目錄是一個子目錄,nfs服務器也不檢查其父目錄的權限,這樣可以提高效率;
hide:共享一個目錄時,不共享該目錄的子目錄;
no_hide:共享子目錄;
================================================================
如果想了解更多的參數,可以使用man exports

六、NFS權限控制
NFS服務器的架設比較簡單,最大的問題在於權限方面的管理。前面已經介紹了NFS提供了ro和rw選項,可以控制客戶端對共享文件的讀或寫權限。其實NFS共享文件的訪問權限並不僅僅由這些選項決定,它由三方面控制,第一方面就是服務器端nfs配置文件裏權限參數的控制,第二方面就是服務器端文件在操作系統裏的權限控制,包括共享的目錄和裏面文件的權限,也就是文件的屬性中的rwx(讀、寫、執行)。第三方面就是客戶端,共享的目錄需要先掛載到客戶端指定的目錄上,客戶端才能通過掛在目錄訪問,所以客戶端掛載目錄的權限也起作用,就是目錄屬性中的rwx(讀、寫、執行)後面客戶端將再介紹。只有客戶端的用戶同時滿足上面的三個條件才能訪問共享目錄裏面的文件。

操作系統對用戶的判斷其實並不是通過用戶名,而是通過/etc/passwd文件中所記錄的UID號,由於NFS客戶端和NFS服務器是兩臺不同的機器,即使他們的操作系統有相同的用戶名,其UID也不一定一樣,那麼客戶端用戶訪問NFS服務器的過程是怎樣的那?下面舉例說明下。

查看用戶UID的命令如下:
--------------------------------
root@debian:~# id -u 用戶名
--------------------------------

客戶端用戶訪問共享目錄文件的過程如下:
先假設客戶端用戶名爲laopi,UID暫定,用於掛載的共享目錄爲/Client目錄,用戶laopi對這個目錄的權限爲讀寫執行(目錄的執行權限是可以進入這個目錄),服務器端共享目錄爲/Server目錄權限爲drwxr-xr-x(目錄的所有者用戶爲pipci,UID爲1000),nfs共享配置文件裏設置爲rw

1、當客戶端用戶laopi的UID與服務器端用戶pipci的UID相同時,即laopi的UID也爲1000,這種情況由於用戶laopi對掛載目錄/Client具有讀寫權執行限,nfs共享配置文件裏設置爲讀寫,NFS服務器上pipci用戶對共享目錄/Server具有讀寫執行權限,所以客戶端用戶對共享目錄/Server也具有讀寫執行權限,因爲UID相同。

2、當客戶端用戶laopi的UID與服務器端用戶pipci的UID不同時,假設laopi的UID爲1010,這種情況由於用戶laopi對掛載目錄/Client具有讀寫權執行限,nfs共享配置文件裏設置爲讀寫,但是NFS服務器上UID爲1010的用戶對共享目錄/Server只具有讀寫權限,所以客戶端用戶對共享目錄/Server也只具有讀寫權限,因爲UID爲1010的用戶對/Server目錄來說是其他用戶。如果也想讓laopi用戶具有讀寫執行的權限可以爲目錄/Server添加其他用戶的執行權限

3、當客戶端用戶爲root,因爲正常所有Linux操作系統裏的root用戶UID都爲0,所以限制權限的只有nfs共享配置文件裏設置參數了,如果權限參數有root_squash選項和rw選項,則就的看共享目錄對匿名用有什麼權限,如果權限參數root_squash改爲no_root_squash選項,那就沒有限制了。

七、exportfs命令:輸出共享目錄
NFS服務啓動時會讀取/etc/exports配置文件中的內容,把文件中設置的共享目錄輸出供客戶端使用,在NFS服務啓動後,如果對/etc/exports進行了更改,需要通過exports命令對共享的目錄進行輸出,輸出完成後,客戶端才能訪問新設置的共享目錄。exportfs命令的用法如下:

root@debian:~# exportfs  [參數]

參數:
-a :全部輸出或取消輸出/etc/exports中共享的內容
-r :重新讀取/etc/exports中的配置
-u :取消一個或多個共享目錄的輸出
-i :忽略/etc/exports中的配置,而使用默認或命令行中指定的選項
-o :通過命令添加共享目錄,重啓後失效。
-v :如果不跟其他選項一起使用,則顯示當前共享的所有目錄及他們的選項設置,如果輸出或取消輸出共享目錄,則顯示進行了那些操作。

具體例子:
root@debian:~# exportfs -v        #產看所以共享目錄
root@debian:~# exportfs -rv       #使/etc/exports更改的配置生效
root@debian:~# exportfs -au       #取消當前所有的共享目錄
root@debian:~# exportfs -av       #只查看/etc/exports中共享的目錄同時恢復取消的共享目錄
root@debian:~# exportfs -o rw,async 192.168.2.100:/mnt     #添加共享目錄/mnt,注意命令格式-o參數後面是權限,多個權限用逗號分開,權限後面是可以訪問的主機或網段,後面是共享的目錄,主機和共享目錄之間有冒號(:)並且不可以有空格。
oot@debian:~# exportfs -uv 192.168.2.100:/mnt     #取消exportfs命令添加的共享目錄

八、NFS客戶端配置

1、安裝客戶軟件nfs-common和rpcbind
---------------------------------------------
root@debian:~# apt install nfs-common

root@debian:~# apt install rpcbind
---------------------------------------------
正常安裝完nfs-common這個軟件rpcbind也會一同安裝上

2、查看rpcbind服務的狀態
-------------------------------------------------
root@debian:~# systemctl status rpcbind.service
-------------------------------------------------
沒有啓動要手動啓動這個服務,並設置開機啓動這個服務

3、通過命令showmount查看共享的目錄
在掛載遠程NFS共享目錄前,做好先使用showmount命令查看NFS服務器的共享目錄列表,已確定這些共享目錄是否運行本地訪問。showmount命令的格式如下:

root@debian:~# showmount  [選項]  [主機的IP或名稱]

常用的選項如下:
-a:該選項一般在NFS服務器上使用,用於顯示已經掛載了服務器共享目錄的客戶端及他們所使用的共享目錄。
-d:與-a類似,但只顯示目錄,不顯示具體的客戶端。
-e:顯示指定NFS服務器輸出的共享目錄列表
-h:顯示幫助信息
-v:顯示版本信息
--no-headers:不輸出標題信息

具體例子:
root@debian:~$ showmount -e 192.168.1.102       #顯示NFS服務器192.168.1.102 輸出的共享目錄

4、創建掛載點並掛載共享目錄
用戶可以自定義掛載點,而與需與NFS服務器上共享目錄一樣的路徑,用戶可以創建多個掛載點,掛載同一個共享目錄。創建的目錄如果由使用者全權控制,使用者對掛載目錄應該有讀寫執行的權限。
掛載共享目錄使用的命令與掛載本地文件系統使用的命令一樣,都是使用mount命令,其格式如下:

root@debian:~# mount  [選項]  NFS服務器IP或主機名:共享目錄  掛載點

命令格式中的冒號(:)一定不要少,他是在NFS服務器IP或主機名和共享目錄中間,沒有空格,mount命令與nfs相關選項說明如下:

-t nfs:指定要掛載的文件系統類型爲NFS,不加這個選項也可以,mount命令會自動識別
-o ro:只掛載的文件系統爲只讀
-o rw:可讀寫
-o port=n:指定連接NFS服務器使用的端口號
-o retry=n:指定放棄掛載前嘗試的時間,單位爲分鐘。前臺掛載的默認值爲2,後臺掛載的默認值爲10000
-o fg:指定以前臺方式完成掛載工作。如果與NFS服務器之間的連接存在問題,那麼mount命令會一直重複嘗試掛載,直到成功或超時爲止。在這個過程中,mount命令會佔用終端窗口,用戶無法在窗口中運行其他命令
-o bg:與fg相反,使用後臺方式完成掛載工作。如果與NFS服務器之間的連接存在問題,那麼mount命令會在後臺進行掛載,而不會佔用終端窗口。

注意:-o選項可以通過逗號(,)分隔,聯合使用。

具體例子: 把NFS服務器192.168.1.102的共享目錄/media掛在到本地的/media目錄,掛載選項設置爲只讀,後臺掛載方式,放棄掛載前嘗試的時間爲1分鐘
-------------------------------------------------------------------------------
root@debian:~# mount -t nfs -o rw,bg,retry=1  192.168.1.102:/media  /media
-------------------------------------------------------------------------------

5、卸載NFS文件系統
與卸載普通的本地文件系統一樣,可以通過umount命令把它卸載,終止與NFS服務器的連接。但在卸載前,應該確保已經沒有任何進程在使用該文件系統。

卸載NFS文件系統的命令格式如下所示:
root@debian:~# umount [遠程文件系統或掛載點]

卸載上面例子掛載的NFS文件系統的方法:
root@debian:~# umount /media  或root@debian:~# umount 192.168.1.102:/media

九、使用autofs按需掛載共享目錄
NFS文件系統具有動態性,即需要的時候纔有必要掛載。我們怎麼纔可以做到僅在訪問時候才動態掛載共享目錄那,我們用autofs服務來實現。Autofs與Mount/Umount的不同之處在於,它是一種看守程序。如果它檢測到用戶正試圖訪問一個尚未掛載的文件系統,它就會自動檢測該文件系統,如果存在,那麼Autofs會自動將其掛接。另一方面,如果它檢測到某個已掛接的文件系統在一段時間內沒有被使用,那麼Autofs會自動將其卸載。因此一旦運行了Autofs後,用戶就不再需要手動完成文件系統的掛接和卸載。

1、安裝autofs軟件
------------------------------------
root@debian:~# apt install autofs
------------------------------------

2、產看autofs服務狀態
------------------------------------------------
root@debian:~# systemctl status autofs.service
------------------------------------------------
上面的服務如果沒有啓動,啓動他

3、設置autofs服務開機啓動
-----------------------------------------------
root@debian:~# systemctl enable autofs.service
-----------------------------------------------

4、autofs配置文件設置
/etc/auto.master是autofs的主要配置文件,該文件的配置比較簡單,只需要設置掛載點的父目錄和映射文件即可,格式如下所示:
-------------------------------
 掛載點父目錄    映射文件
------------------------------

 掛載點父目錄:例如要把共享目錄掛載到本地的/media/nfsdd目錄下,那麼這個掛載點父目錄就是/media,而子目錄nfsdd並不需要手工創建,他會由autofs服務管理,在需要掛載時動態創建,這個父目錄最好是空白的,因爲如果不是空的那麼當啓動這個服務時這個父目錄裏的文件會全部不可見。
 
 映射文件:該文件是由用戶自行制定並創建(一般設置爲/etc/auto.nfs),在該文件中設置了NFS文件系統應該如何掛載。

映射文件格式如下:
-----------------------------------------------------
掛載點   掛載選項   NFS服務器IP或主機名:共享目錄
-----------------------------------------------------
其中掛載點爲/etc/auto.master文件中設置的父目錄下的子目錄,子目錄爲相對目錄,如上面的掛載點應該是nfsdd而不是/media/nfsdd ,掛載選項與mount命令中的選項一樣,但是選項前面需要加一個減號(-),配置文件更改後需要重啓autofs服務才能使配置生效。

5、舉例說明: 假設需要把NFS服務器192.168.1.102共享目錄/media自動掛載到本地目錄/media/nfsdd

先配置/etc/auto.master文件,內容如下:
-----------------------------------
/media   /etc/auto.nfs
-----------------------------------

在配置映射文件/etc/auto.nfs,內容如下:
------------------------------------------------
nfsdd   -rw,bg,retry=1  192.168.1.102:/media
------------------------------------------------
選項前面需要加一個減號(-)

配置完上面的文件重啓autofs服務
root@debian:~# systemctl restart autofs.service

在目錄/media下直接cd nfsdd就可以完成進入nfsdd目錄並且已經掛載成功
root@debian:/media# cd nfsdd
root@debian:/media/nfsdd#

十、NFS服務器防火牆配置
當NFS服務器上啓用了防火牆,客戶端通過命令showmount -e 192.168.1.102查看共享的目錄可能會出現clnt_create: RPC: Port mapper failure - Unable to receive: errno 0 (Success)這個錯誤,解決的辦法有兩種,一種是直接關閉防火牆,第二種是添加策略,添加策略比較麻煩因爲除了固定的端口port 111和2049之外還有很多服務開啓不固定的端口,通過下面的方法處理:

1、查看NFS需要開啓的服務和對應的端口號
-------------------------------------------
root@debian:~# rpcinfo -p                    
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  57974  mountd
    100005    1   tcp  60537  mountd
    100005    2   udp  36805  mountd
    100005    2   tcp  35311  mountd
    100005    3   udp  60721  mountd
    100005    3   tcp  54945  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049
    100021    1   udp  41235  nlockmgr
    100021    3   udp  41235  nlockmgr
    100021    4   udp  41235  nlockmgr
    100021    1   tcp  38331  nlockmgr
    100021    3   tcp  38331  nlockmgr
    100021    4   tcp  38331  nlockmgr
root@debian:~#
----------------------------------------------
通過上面的顯示可以看到NFS啓動了portmapper、mountd、nfs、nlockmgr四個服務和對應的端口號, portmapper和nfs是固定端口,我們可以將剩下的兩個服務的端口也固定下來。

2、通過配置文件/etc/default/nfs-kernel-server可以設置mountd服務的固定端口,添加如下的內容:
----------------------------------------------------------
root@debian:~# vim.tiny /etc/default/nfs-kernel-server
RPCMOUNTDOPTS="-p 32767"                                    #設置規定端口好爲32767,重啓服務生效
----------------------------------------------------------

3、通過配置文件/etc/modprobe.d/local.conf可以設置nlockmgr服務的固定端口,添加如下的內容:
--------------------------------------------------------
root@debian:~# vim.tiny /etc/modprobe.d/local.conf            #這個local.conf文件沒有需要創建,重啓電腦生效
options lockd nlm_udpport=32768 nlm_tcpport=32768             #設置規定端口好爲32768
options nfs callback_tcpport=32764
--------------------------------------------------------
有關更多設置可以查看這個網址:https://wiki.debian.org/SecuringNFS

4、重啓電腦從新查看對應的端口
--------------------------------------------
root@debian:~# rpcinfo -p     
   program vers proto   port  service
    100000    4   tcp    111  portmapper
    100000    3   tcp    111  portmapper
    100000    2   tcp    111  portmapper
    100000    4   udp    111  portmapper
    100000    3   udp    111  portmapper
    100000    2   udp    111  portmapper
    100005    1   udp  32767  mountd
    100005    1   tcp  32767  mountd
    100005    2   udp  32767  mountd
    100005    2   tcp  32767  mountd
    100005    3   udp  32767  mountd
    100005    3   tcp  32767  mountd
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100227    3   tcp   2049
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100227    3   udp   2049
    100021    1   udp  32768  nlockmgr
    100021    3   udp  32768  nlockmgr
    100021    4   udp  32768  nlockmgr
    100021    1   tcp  32768  nlockmgr
    100021    3   tcp  32768  nlockmgr
    100021    4   tcp  32768  nlockmgr
root@debian:~#
---------------------------------------------
查看已經改過來了

5、添加防火牆規則
root@debian:~# iptables -A INPUT -p tcp --dport 111 -j ACCEPT  
root@debian:~# iptables -A INPUT -p udp --dport 111 -j ACCEPT  
root@debian:~# iptables -A INPUT -p tcp --dport 2049 -j ACCEPT   
root@debian:~# iptables -A INPUT -p udp --dport 2049 -j ACCEPT   
root@debian:~# iptables -A INPUT -p tcp --dport 32767 -j ACCEPT     
root@debian:~# iptables -A INPUT -p udp --dport 32767 -j ACCEPT   
root@debian:~# iptables -A INPUT -p tcp --dport 32768 -j ACCEPT     
root@debian:~# iptables -A INPUT -p udp --dport 32768 -j ACCEPT
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章