歡迎您光臨本站 註冊首頁

Linux命令Man解釋:PPPD :點對點daemon協議

←手機掃碼閱讀     火星人 @ 2014-03-24 , reply:0

名稱
pppd - 點對點協定隱形程式
(Point to Point Protocol daemon)

語法
pppd [ 選項 ] [ 終端設備名稱(tty_name) ] [ 速率 ]

描述
這個點對點協定 (PPP) 提供一種在點對點串列線路上傳輸資料流
(datagrams) 的方法。PPP 是由三個部份所組成的:一個在串列線
路上封裝(encapsulating)資料流的方法, 一個可延伸的連結控制
協定(Link Control Protocol: LCP),以及一些用來建立並配置不
同網路層協定的網路控制協定(Network Control Protocols: NCP)

    封裝的機制(scheme)是由核心中的驅動程式碼來提供。 pppd 提供
    基本的 LCP ,驗證(authentication)的支援, 以及一個用來建立
並配置網際網路協定 (Internat Protocol (IP) )(叫做 IP 控制
協定, IPCP)的 NCP 。

常用選項

在該名稱的設備上進行通訊。 如果需要的話可以前置一個
"/dev/" 字串。如果沒有給設備名稱,pppd 將會使用控制
台的終端機(controlling teriminal),並且產生(fork)出
來時將不會把自己放到背景去。


將鮑率設為 。 在像是 4.4BSD 以及 NetBSA 的系
統上,可以指定任何速率。 其他系統 (e.g. SunOs) 只允
許有限的幾種速率。

asyncmap
把非同步(async)字元設為對照到 。這個對照表
描述哪些控制字元不能在串列線路上成功地接收。pppd 將
會要求彼端以兩個位元組的逸出序列(escape sequence)來
傳送這些字元。 其參數是 32 位元的十六進位數字而每個
位元代表一個得避開(escape)的字元。位元 0 (00000001)
代表字元 0x00 ;位元 31 (80000000) 代表字元 0x1f 或
是 ^_ 。如果給了多個 asyncmap 選項, 這些數值會以邏
輯的或(OR)合在一起。如果沒有給 asyncmap 選項, 將沒
有非同步字元對照表會被加以協商來導引接收。 這樣彼端
將會避開所有的控制字元。

auth 要求彼端在允許傳送或接收網路封包之前先驗證它自己。

connect
使用以所指定的可執行指令或是 shell 指令來設定
串列線路。 這個指令稿一般會使用 "chat" 程式來撥數據
機並開始遠端 ppp 區段作業(session) 。

crtscts
使用硬體流量控制 (i.e. RTS/CTS) 來控制串列埠上的資
料流。

xonxoff
使用軟體流量控制 (i.e. XON/XOFF) 來控制串列埠上的資
料流。這個選項在 BSD 或是 Ultrix 系統上目前並沒有實
作出來。

-crtscts
這是一個 xonxoff 的同義詞。

defaultroute
當 IPCP 協商完全成功時, 增加一個預設遞送路徑到系統
的遞送表,將彼端當作閘道器使用。這個項目在 ppp 連線
中斷後會移除。

disconnect

在 pppd 已經終結該連線之後執行以所指定的可執行
指令或是 shell 指令。這個指令稿可以用來,例如,如果
硬體的數據機控制信號無法使用時, 發出指令給數據機使
其掛斷電話。

escape xx,yy,...
指定在傳輸上確實應該要避開的字元 (不管對方是否有用
它的非同步控制字元對照表要求避開它們)。 這些要被避
開的字元是以用逗號隔開的一串十六進位數字指定的。 要
注意到幾乎任何字元都可以用 escape 選項指定避開, 不
像 asyncmap 選項只允許指定控制字元。 不能避開的字元
是那些有十六進位值 0x20 - 0x3f 或是 0x5e 者。

file
從檔案 里讀取選項(其格式敘述在後)

lock 指定 pppd 應該在此串列設備上使用 UUCP 式的鎖定以確
定對該設備為互斥(exclusive)存取。

mru
把 MRU [Maximum Receive Unit 最大接收單元] 的值設為
n 來進行協商。 pppd 將會要求彼端傳送不比 位元組
更長的封包。最小的 MRU 值是 128 。預設的 MRU 值則是
1500 。對於慢速線路上的建議值是 296(其中 40 個位元
組給 TCP/IP 表頭 + 256 個位元組的資料)。

netmask
把該界面網路遮罩設為 ,這是一個以″十進位數值加
小數點″("decimal dot")符號表示的 32 位元網路遮罩。
(e.g. 255.255.255.0)

passive
在 LCP 中開啟 "passive" 選項。加上這個選項,pppd 將
會試圖初使一個連線; 如果沒有從彼端接收到回應,那麽
pppd 將只會被動地等待從彼端所傳來的一個有效 LCP 封
包(代替結束離開,就像它在沒有這個選項時所作的)。

silent 加上這個選項, pppd 將不會傳輸 LCP 封包來初使一個連
線一直到從彼端接收到一個有效的 LCP 封包。(就像是給
舊版 pppd 使用的 "passive" 選項)。

選項
:
設定本地以及/或是遠端界面的 IP 位址。 兩者之中的任
何一個都可以省略。 該 IP 位址可以利用主機名稱或者是
十進位數值加小數點符號指定 (e.g. 150.234.56.78) 。
預設的本地位址是系統的(第一個)IP 位址(除非有加上
noipdefault 選項)。 遠端位址如果沒有在任何選項中指
定的話將從彼端取得。 因此,在簡單的案例中,這個選項
不是必須的。 如果有一個本地以及/或是遠端的 IP 位址
以這個選項加以指定的話,pppd 將不會接受在 IPCP 協商
中從彼端所傳來不同的值, 除非加上 ipcp-accept-local
以及/或是 ipcp-accept-remote 選項,個別地。

-all 不要求或允許任何對於 LCP 以及 IPCP 選項的協商(使用
預設值)。

-ac 關閉位址/控制的壓縮協商(使用預設的, i.e. address
/control field disabled )。

-am 關閉 asyncmap 的協商(使用預設的 asyncmap ,i.e. 避
開所有的控制字元)。

-as
與 asyncmap 相同

-d 遞增偵錯層級(與 debug 選項相同)。

-detach
不要產生成背景程序 (否則如果有指定一個串列設備的話
pppd 將會自動成為背景程序)。

-ip 關閉 IP 位址協商 (加上這個選項的話,遠端的 IP 位址
必須在指令列上或是以一個選項檔中的選項加以指定)。

-mn 關避魔術數字(magic number)協商。 加上這個選項的話,
pppd 無法偵測到回授的(looped-back)線路。

-mru 關閉 MRU [Maximum Receive Unit 最大接收單元] 協商。
(使用預設的, i.e. 1500 。)

-p 與 passive 選項相同。

-pc 關閉協定欄位壓縮協商。(使用預設的, i.e. protocol
field compression disable 。)

+ua

若彼端要求的話同意使用 PAP[Password Authentication
Protocol 密碼驗證協定] 來驗證, 並使用在檔案中
的使用者以及密碼資料來傳送給彼端。 該檔案包含遠端使
用者姓名,跟著一列新行,跟著遠端的密碼, 跟著一列新
行。這個選項是過時的。

+pap 要求彼端使用 PAP 驗證它自己。

-pap 不要同意使用 PAP 進行驗證。

+chap 要求彼端使用 CHAP [Cryptographic Handshake Authen-
ticate Protocol 密碼化溝通驗證協定] 來驗證它自己。

-chap 不要同意使用 CHAP 進行驗證。

-vj 關掉 Van Jacobson 式的 IP 表頭壓縮協商。 (使用預設
的, i.e. 無壓縮。)

debug 遞增偵錯層級(與 -d 相同)。如果加上這個選項, pppd
將以可供閱讀的格式記錄所有傳送或接收的控制封包內容。
這些封包透過 syslog 以 facility daemon 還有 level
debug 加以記錄。該資訊可以適當設定 /etc/syslog.conf
來導向到一個檔案去。(參閱 syslog.conf(5) )。(如果
pppd 以開啟擴充偵錯(extra debugging)編譯的話, 它將
會使用 facility local2 取代 daemon 來記錄訊息)。

domain
新增領域名稱 到本地主機名稱以支援驗證。例如,如
果 gethostname() 回應 porsche 這個名稱, 但是完整合
格的領域名稱是 porsche.Quotron.COM 的話,你可以使用
domain 選項來將領域名稱設為 Quotron.COM 。

modem 使用數據機控制線路。在 Ultrix 上, 這個選項會實作硬
體流量控制,像 crtsct 選項作的。 (這個選項沒有完整
地實作出來。)

kdebug n
開啟核心層級中的 PPP 驅動程式偵錯碼。 參數 n 是一個
由下列值所組合的數字: 1 開啟一般偵錯訊息,2 要求印
出所接收到的封包內容,而 4 要求印出傳輸的封包內容。

local 不要使用數據機控制線路。

mtu
將 MTU [Maximum Transmit Unit 最大傳輸單元] 的值設
為 。除非彼端經由 MRU 協商要求一個更小的值,pppd
將會要求核心網路程式碼透過 PPP 網路界面所傳送的資料
封包不超過 n 個位元組。

name
將本地系統的名稱設為 用來進行驗證。

user
將使用者名稱設為 以便讓使用 PAP 的彼端驗證這台
機器時使用。

usehostname
強迫主機名稱使用本地系統的名稱來進行驗證。 (這會蓋
過 name 選項)。

remotename
將遠端系統的假設名稱設為 以進行驗證。

proxyarp
以彼端的 IP 位址以及該系統的乙太網路位址增加一個項
目到系統的 ARP [Address Resolution Protocol 位址解
譯協定] 表格。

login
使用系統密碼資料庫驗證使用 PAP 的彼端。

noipdefault
關閉在沒有指定本地 IP 位址時所進行的預設動作, 這是
用來由從主機名稱決定(如果可能的話)決定本地 IP 位
址。加上這個選項的話, 彼端將必須在進行 IPCP 協商時
(除非在指令列或在選項檔中明確地指定它) 提供本地的
IP 位址。

lcp-echo-interval
如果有給這個選項,pppd 每 秒將會送出一個 LCP 回
應要求(echo-request)封包(frame)給彼端。 在 Linux 系
統下,回應要求在 n 秒內沒有從彼端接收到封包時會被送
出。 一般彼端應該以傳送一個回應回覆(echo-reply)來反
應該回應要求。 這個選項可以與 lcp-echo-failure 選項
一起使用來偵測不再連線的彼端。

lcp-echo-failure
如果有給這個選項,那麽如果傳送 n 個 LCP 回應要求沒
有接收到有效的 LCP 回應回覆的話 pppd 將會推測彼端是
死掉的。如果發生這種情形,pppd 將會終結該連線。這個
選項的使用要求一個非零的 lcp-echo-interval 參數值。
這個選項可以用在硬體數據機控制線路無法使用的情況下
當實際連線被中斷之後( e.g., 數據機已經掛斷) 終結
pppd 的執行。

lcp-restart
將 LCP 重新開始的間隔(重新傳輸的時間限制)設為
秒鐘(預設為 3 )。

lcp-max-terminate
將 LCP 終結要求(terminate-request)傳輸的最大數目設
為 (預設為 3 )。

lcp-max-config
將 LCP 配置要求(configure-request)傳輸的最大數目設
為 (預設為 10 )。

lcp-max-failure
將開始傳送配置拒絕(configure-Rejects)之前的 LCP 配
置未接收(configure-NAKs)的最大數目以 取代(預設
為 10 )。

ipcp-restart
將 IPCP 重新開始的間隔(重新傳輸的時間限制)設為
秒鐘(預設為 3 )。

ipcp-max-terminate
將 IPCP 終結要求(terminate-request)傳輸的最大數目設
為 (預設為 3 )。

ipcp-max-configure
將 IPCP 配置要求(configure-request)傳輸的最大數目設
為 (預設為 10 )。

ipcp-max-failure
將開始傳送配置拒絕(configure-Rejects)之前的 IPCP 配
置未接收(configure-NAKs)的最大數目以 取代(預設
為 10 )。

pap-restart
將 PAP 重新開始的間隔(重新傳輸的時間限制)設為
秒鐘(預設為 3 )。

pap-max-authreq
將 PAP 驗證要求(authenticate-request)傳輸的最大數目
設為 (預設為 10 )。

chap-restart
將 CHAP 重新開始的間隔(重新傳輸的時間限制)設為
秒鐘(預設為 3 )。

chap-max-challenge
將 CHAP 盤查(challenge)傳輸的最大數目設為 (預
設為 10 )。

chap-interval
如果有給這個選項,pppd 將會每 秒重新盤查彼端。

ipcp-accept-local
加上這個選項的話,pppd 將會接受彼端對於本地 IP 位址
的意見,即使本地的 IP 位址已經在某個選項中指定。

ipcp-accept-remote
加上這個選項的話,pppd 將會接受彼端對於它的 IP 位址
的意見,即使遠端的 IP 位址已經在某個選項中指定。

選項檔案
選項可以從檔案取出使用就如同使用命令列一般。 pppd 在查看指
令列之前先從檔案 /etc/ppp/options 以及 ~/.ppprc 讀取選項。
一個選項檔案以空白字元為界被剖析成一串單字。空白字元可以用
雙引號 (") 包括在一個單字里。倒斜線引用其後的字元。 而雜湊
(#)符號開始一段註解持續到該行結束。

驗證
pppd 提供系統管理人員充份的存取控制能力這表示以 PPP 存取一
台伺服機器可以提供給合法的使用者使用而不必擔心危及該伺服器
或所在網路的安全性。這有一部份是以 /etc/ppp/options 檔案來
提供,在這裡系統管理人員可以放置在執行 pppd 的時候用來要求
驗證的選項,而部份是由 PAP 以及 CHAP 暗號檔案來提供, 其中
系統管理人員可以限制個別的使用者可以使用的一群 IP 位址。

pppd 預設的動作是如果有要求就同意進行驗證, 並且不要求從彼
端做驗證。然而如果沒有可以用來驗證的暗號則 pppd 將不會同意
以特殊的協定來驗證它自己。

驗證的基礎是由暗號檔案選擇的暗號( /etc/ppp/pap-secrets 是
給 PAP 使用的, /etc/ppp/chap-secrets 則是給 CHAP 使用)。
這兩個暗號檔案都具有相同的格式,而且兩者都可以儲放暗號給數
種伺服器(驗證彼端)及客戶(被驗證端)組合使用。 注意 pppd
可以最為伺服端以及客戶端,而且如果需要的話兩方可以使用不同
的協定。

一個暗號檔案如同選項檔案一般被剖析成單字。一個暗號是由最少
包含 3 個單字的一行所指定,依序是客戶,伺服器,暗號。 在同
一行中任何跟在其後的單字都被當作是給客戶的可接受 IP 位址列
表。如果該行只有 3 個單字, 這假設任何 IP 位址都可以;不允
許所有的 IP 位址的話,使用 "-" 。如果暗號是以 '@' 開始,其
後所接的單字將被假設為可以從中讀取暗號的檔案名稱。而以一個
"*" 字元作為客戶或伺服端的名稱會符合任何名稱。在選擇一個暗
號時, pppd 會選擇最符合的, i.e. 最少萬用字元的那個。

如此一個暗號檔案包含用來驗證其它主機,以及用來為其它主機驗
證自己兩者的暗號。選擇使用哪個暗號是根據該主機(』本地名稱
』)以及其彼端(』遠端名稱』)而定。本地名稱的設定如下:


如果 有給 usehostname 選項,
那麽 本地名稱就是這台機器的主機名稱
(附領域名稱,如果有給的話)

否則 如果 有給 name 選項,
那麽 使用第一個 name 選項的參數

否則 如果 IP 位址是以一個主機名稱加以指定,
那麽 使用該名稱

否則 使用這台機器的主機名稱(附領域名稱,如果有給的話)


當使用 PAP 驗證我們自己的時候,也有一個 'username' 預設為
本地名稱,但是可以用 user 選項或是 +ua 選項加以設定。

遠端名稱的設定如下:


如果 有給 remotename 選項,
那麽使用最後一個 remotename 選項的參數

否則 如果 遠端的 IP 為只是以一個主機名稱加以指定,
那麽 使用那個主機名稱

否則 遠端名稱是空字串 "" 。


從 PAP 暗號檔案中選擇暗號如下:

* 要驗證彼端, 尋找一個在 PAP 驗證要求里的暗號其客戶 == 使
用者,而且伺服器 == 本地名稱。

* 要為彼端驗證我們自己,尋找一個暗號其客戶 == 我們的使用者
名稱,伺服器 == 遠端名稱。

當以 PAP 驗證彼端時,一個 "" 暗號符合任何由彼端所提供密碼。
如果密碼不符合暗號,密碼被以 crypt() 編碼並且再次檢查暗號;
因此驗證彼端的暗號可以編碼方式儲放。如果指定有 login 選項,
使用者名稱以及密碼也會被以系統的密碼資料庫檢查。因此系統管
理人員可以設定 pap-secrets 檔案以便只允許某些使用者以 PPP
連線,並且限制每個使用者可以使用一些 IP 位址。

從 CHAP 暗號檔案中選擇暗號如下:

* 要驗證彼端, 尋找一個在 CHAP - 回應訊息里的暗號其客戶 ==
名稱,而且伺服器 == 本地名稱。

* 要為彼端驗證我們自己,尋找一個暗號其客戶 == 本地名稱,而
且在 CHAP - 盤查訊息里伺服器 == 名稱。

驗證必須在 IPCP (或任何其它網路控制協定)開始之前被完全地
滿足。如果驗證失敗, pppd 將會終結連線(關閉 LCP )。 如果
IPCP 協商出一個無法接受的遠端主機 IP 位址,IPCP 將會關閉。
IP 封包只有在 IPCP 打開的時候才能傳送或接收。

即使本地主機一般會要求驗證,在某些案例中會希望允一些無法驗
證它們自己的主機連線並使用所限制的 IP 位址其中之一。如果彼
在被要求時拒絕驗證它自己, pppd 將會把它當成等於是在使用者
名稱以及密碼上使用空字串來以 PAP 驗證。所以, 藉由增加一行
指定空字串為客戶以及密碼到 pap-secrets 檔案去, 允許拒絕驗
證自己的主機進行有限制的存取是可能的。

遞送
當 IPCP 協商成功地完成時,pppd 將會通知核心該 ppp 界面本地
以及遠端的 IP 位址。這足夠用來建立一個主機到該連線遠端的遞
送路徑,該路徑將使兩端能交換 IP 封包。與其它的機器進行通訊
往往需要更進一步地修改遞送表格 (routing tables) 以及/或是
ARP (位址解譯協定)表格。在某些案例中這將透過 routed 或是
gated 隱形程式的動作自動地完成,但是在大部分的案例中需要更
進一步的介入。

有時候會希望透過遠端主機來增加一個預設遞送路徑,像是在一台
只透過 ppp 界面連線到 Internet 的機器。 此 defaultroute 選
項使得 pppd 在 IPCP 完成時建立起這麽一個預設的遞送路徑,並
且在該線路被終結時將之刪除。

在某些情況下會希望使用 proxy ARP , 例如在一台連結到區域網
路的伺服機器上,為了能夠允許其它的主機與遠端主機進行通訊。
proxyarp 選項引發 pppd 去尋找一個與遠端主機在相同子網路上
的網路界面(一個支援廣播(boardcast)以及 ARP 的界面,不但要
是可用的並且不是一個點對點或回授界面)。如果找到, pppd 會
以該遠端主機的 IP 位址以及所找到的網路界面之硬體位址建立一
個永久的,公開的 ARP 項目。

範例
在這個最簡單的案例中,你可以連接兩台電腦的串列埠併發出一行
指令像是:

pppd /dev/ttya 9600 passive

到每一台機器上,這假設沒有在串列埠上執行 getty 程序。 如果
在一台機器上有執行 getty ,你可以在另一台機器上使用 kermit
或是 tip 來簽入第一台機器併發出一行指令像是:

pppd passive

然後從通訊程式中離開(確定該連線沒有斷掉),然後發出一行指
令像是:

pppd /dev/ttya 9600

簽入到另一台機器以及開始 pppd 的程序可以使用 connect 選項
執行 chat 來加以自動化,例如:

pppd /dev/ttya 38400 connect 'chat "" "" "login:"
"username" "Password:" "password" "% " "exec pppd
passive"'

(注意到無論如何像這樣執行 chat 將使密碼在 pppd 以及 chat
的參數列表中成為可見的。)

如果你的串列連線比直接以線路連接更複雜的話,你可能會需要做
些調整以便避開一些控制字元。特別是,通常避開 XON (^Q) 以及
XOFF (^S) 是有用的,可以使用 asyncmap a0000 。如果該路徑包
含 telnet 的話,你可能應該也要避開 ^] (asyncmap 200a0000)。
如果該路徑包含 rlogin 的話,你將需要在執行 rlogin 的客戶端
上使用 escape ff 選項,因為許多 rlogin 的實作並非是透通的;
它們將會從資料流中移除 [0xff, 0xff, 0x73, 0x73, 跟隨的任何
8 位元組] 這些序列。

診斷
訊息使用 facility LOG_DAEMON 送到 syslog 隱形程式。 (這個
可以藉著以所要的 facility 定義 LOG_PPP 巨集來重新編譯 pppd
加以改變。)為了能夠看到錯誤以及偵錯訊息,你將需要編輯你的
/etc/syslog.conf 檔案來將訊息導向到所希望的設備或檔案。

debug 選項使得所有送出以及接收的控制封包內容都被記錄下來,
這是指所有的 LCP, PAP, CHAP, 或是 IPCP 封包。如果 PPP 協商
沒有成功的話那麽這可能會有用。如果在編譯時期開啟偵錯功能的
話,pppd 會使用 facility LOG_LOCAL2 來取代 LOG_DAEMON ,而
且 debug 選項會使得額外的偵錯訊息被記錄下來。

偵錯功能也可以藉著傳送一個 SIGUSR1 到 pppd 程序來啟動。 偵
錯功能可以藉著傳送一個 SIGUSR2 到 pppd 程序來關閉。

檔案
/var/run/pppn.pid (BSD), /etc/ppp/pppn.pid (SunOS)
在 ppp 界面單元 n 上的 ppp 程序之 Process-ID 。
(Process-ID for pppd process on ppp interface unit
n.)

/etc/ppp/ip-up
當線路可以傳送以及接收 IP 封包時(也就是 IPCP 完成
時)執行的一支程式或指令稿。它是以界面的名稱、 終端
設備、速度、本地-IP-位址、遠端-IP-位址為參數執行。

這支程式或是指令稿是以與 pppd 程式相同的 real 以及
effective user-ID 執行的, 也就是說,至少 effective
user-ID 而且可能該 real user-ID 將會是 root 。 這是
因為如此它可以操縱遞送路徑, 執行需要特權的隱形程式
(e.g. dendmail) 等等。 要小心注意 /etc/ppp/ip-up 以
及 /etc/ppp/ip-down 指令稿的內容別要危及到你系統的
安全。

/etc/ppp/ip-down
當線路不再允許傳送以及接收 IP 封包時執行的一支程式
或指令稿。 這個指令稿可以用來回復 /etc/ppp/ip-up 指
令稿的影響。它以與 ip-up 指令稿相同的參數啟動,並且
有相同的安全考量, 因為它以與 pppd 相同的 effective
以及 real user-IDs 執行。

/etc/ppp/pap-secrets
由 PAP 驗證所使用的使用者名稱、密碼以及 IP 位址。

/etc/ppp/chap-secrets
由 CHAP 驗證所使用的名稱、暗號以及 IP 位址。

/etc/ppp/options
pppd 的系統預設選項,在使用者預設選項或指令列選項之
前讀取。

~/.ppprc
使用者預設選項,在指令列選項之前讀取。

/etc/ppp/options.ttyname
所要使用之串列埠的系統預設選項,在指令列之後讀取。

參閱
RFC1144
Jacobson, V. Compressing TCP/IP headers for low-
speed serial links. 1990 February.

RFC1321
Rivest, R. The MD5 Message-Digest Algorithm. 1992
April.

RFC1332
McGregor, G. PPP Internet Protocol Control Proto-
col (IPCP). 1992 May.

RFC1334
Lloyd, B.; Simpson, W.A. PPP authentication proto-
cols. 1992 October.

RFC1548
Simpson, W.A. The Point-to-Point Protocol (PPP).
1993 December.

RFC1549

注意
下列信號傳送到 pppd 程序時有特別的影響

SIGINT, SIGTERM
這些信號使得 pppd 終止該連線(關閉 LCP ),回存串列
串列設備的設定,並結束離開。

SIGHUP 指出實體層已經被斷線。pppd 將會試圖回存串列設備的設
定(這可能會在 Suns 上產生錯誤訊息),然後結束離開。

蟲蟲
數據機控制線路的使用以及數據機和 local 選項的影響沒有定義
完全。

作者
Drew Perkins, Brad Clements, Karl Fox, Greg Christy, Brad
Parker (brad@fcr.com), Paul Mackerras
(paulus@cs.anu.edu.au)

[火星人 ] Linux命令Man解釋:PPPD :點對點daemon協議已經有939次圍觀

http://coctec.com/docs/linux/show-post-136134.html