作者
H
KILL
摘要
PPP是在串連連接上運行 IP以及其它網絡協議的一種協議
串列連結可以是直接的串列連接(使用無數據機纜線)或是使用數據機以及電話線路所造出的連結
使用 PPP
你可以把你的 Linux PC 連接到一台 PPP 服務器上並存取該服務器所連接的網絡資源就如同你是直接連接在該網絡上一般
你也可以把你的 Linux PC 設為一台 PPP服務器
這樣一來其它電腦就可以撥入你的電腦並且存取在你區域網絡裡的資源
因為 PPP 是一種點對點的系統
因此你也可以使用兩台 Linux PC 上的 PPP 把網絡連結在一起(或是把區域網絡連結到網間網絡上)
(
:
:
)
By lanf
一
什麼是PPP協議
既然是撥號上網
就不能不提到PPP(point
to
point protocol)協議
PPP協 議具有以下特點
是應用最廣泛的廣域網協議
通過提供連接控制協議(LCP)和網絡控制程序(NCP)協議家族來配置網絡性能和網絡設備
從而解決了Internet互聯的問題
一個PPP會話分為四個步驟(連接建立
連接質量控制
網絡層協議配置
連接終止)
提供了密碼認證協議(PAP)或者邀請握手認證協議(CHAP)來保證連接安全
簡而言之
PPP是在串連連接上運行 IP以及其它網絡協議的一種協議
串列連結可以是直接的串列連接(使用無數據機纜線)或是使用數據機以及電話線路所造出的連結
使用 PPP
你可以把你的 Linux PC 連接到一台 PPP 服務器上並存取該服務器所連接的網絡資源就如同你是直接連接在該網絡上一般
你也可以把你的 Linux PC 設為一台 PPP服務器
這樣一來其它電腦就可以撥入你的電腦並且存取在你區域網絡裡的資源
因為 PPP 是一種點對點的系統
因此你也可以使用兩台 Linux PC 上的 PPP 把網絡連結在一起(或是把區域網絡連結到網間網絡上)
最主要的差異當然是速度 - 標准的以太網路連線是
Mbps(每秒百萬位元)
而在撥號上網這方面最大是
kbps(每秒千位元)的速度(ISDN據說可以達到
kbps)
同時
依據 PPP 連線的型態
某些應用以及服務在使用上可能會有些限制
當然
對於我們用戶來講
它也是一個server/client模型的應用
這個快速指南包括怎麼在Linux下創建PPP server(客戶端假設為windows)
在Linux下怎麼去撥號上網(當然是客戶端)
二
服務器
如果用戶只想做為客戶端撥號上網
則可以直接跳過本小節
但是如果做為網絡應用的設計人員
就必須知道怎麼搭建PPP服務器
kernel必須支持
如果是Kernel
x以上的默認安裝
肯定支持PPP
啟動時可以看到PPP的信息
獲取pppd的源碼
版本越高越好
適合Kernel
x以上有ppp
tar
gz
下載地址
如果你在當地有搜索引擎
自己找最近的
ftp
//cs
anu
edu
au/pub/software/ppp/
假設安裝到/usr/local/ppp目錄下
則
bash$ cp ppp
tar
gz /usr/local/
bash$ cd /usr/local/
bash$ tar zxvf ppp
tar
gz
bash$ cd ppp
按照README
linux操作
不外乎是
/configure
make kernel
make
make install
(必須在安裝目錄/usr/local/ppp
/下操作)
安裝完後運行pppd
不必帶參數
如果有亂碼
則成功了一半
J
cd /etc/ppp (沒有該目錄則創建一個)
編輯options文件
看起來象這樣
asyncmap
netmask
proxyarp
lock
crtscts
modem
mtu
(改數視Linux的網絡參數而定
用ifconfig可以看到它)
mru
(=mtu就行了)
注意以上各行的意義參照pppd的說明檔
幾乎不需要改動
給每個用戶設立一個自動登陸的shell
如用戶ppp
(adduser 加入)
問對應的bash時敲ppp
login
ppp
login文件如下
exec /usr/sbin/pppd passive /dev/ttyS
netmask
proxyarp : x
x
x
x
注意x
x
x
x是ppp
的登錄後獲得的IP
比如你可以指定為
等等
嘗試登錄及享受成功
為了簡單
假設客戶端是windows
准備從另一台Windows
/
機器登錄
Windows中先設好撥號網絡(如果沒有modem
可以用Null modem代替試驗
其實就是串口+Cable
推薦先使用Null modem嘗試)
服務器類型必須是PPP
啟動撥號程序(在連接
modem
配置
選項裡設撥號前後出現終端窗口)
連接後出現終端窗口
輸入登錄名及口令(可能先要按幾下回車)
OK
出現亂碼! 按F
繼續
一會兒又有終端窗口及亂碼
F
繼續
等一會就連接好了
然後就可以正常的網絡通信了
如果客戶端也是linux
見下面小節
三
客戶端
不同的linux廠家在x
window下都有自己的撥號程序
例如藍點linux下的KDE撥號就很方便
但是由於是快速手冊
我不可能列出各種軟件的使用
如果你有更好的方法
請加入的論壇發表你的觀點
這裡我介紹最常用的在RedHat下的腳本撥號法
我假設你用的是RedHat
以上版本
.找出modem在計算機的哪一個串口上
modem如果通電
MR
HS燈應該亮
但是TR燈不亮
敲入下列命令
bash$> echo AT>/dev/ttyS
如果TR燈亮
則modem連接在COM
如果不亮
則試/dev/ttyS
亮則COM
依此類推
.用腳本撥號
在/usr/doc/ppp
/scripts目錄下有例子
我們將其拷貝到正確的目錄下執行
Bash$> cp /usr/doc/ppp
/scripts/ppp
on /usr/sbin
Bash$> cp /usr/doc/ppp
/scripts/ppp
off /usr/sbin
Bash$> cp /usr/doc/ppp
/scripts/ppp
on
dialer /etc/ppp
Bash$> cd /usr/sbin
Bash$> chmod +x ppp
on
Bash$> chmod +x ppp
off
Bash$> cd /etc/ppp
Bash$> chmod +x ppp
on
dialer
然後根據你的ISP作出相應的改動
比如ppp
on和ppp
on
dialer兩個可執行文件
ppp
on文件
只需要看我加入中文說明的地方
#!/bin/sh
#
# Script to initiate a ppp connection
This is the first part of the
# pair of scripts
This is not a secure pair of scr ipts as the codes
# are visible with the
ps
command
However
it is simple
#
# These are the parameters
Change as needed
TELEPHONE=
# ISP提供的上網電話號碼
ACCOUNT=ynguo #賬號名稱
PASSWORD=faintyou #登錄密碼
注意修改本文件權限以便保密
LOCAL_IP=
#本地IP地址
表示由ISP動態分配
REMOTE_IP=
#遠端IP地址
一般為
NETMASK=
#子網掩碼地址
#
# Export them so that they will be available at
ppp
on
dialer
time
export TELEPHONE ACCOUNT PASSWORD
#
# This is the location of the script which dials th e phone and logs
# in
Please use the absolute file name as the$PATH variable is not
# used on the connect option
(To do so on a
root
a ccount would be
# a security hole so don
t ask
)
#
DIALER_SCRIPT=/etc/ppp/ppp
on
dialer
#
# Initiate the connection
#
# I put most of the common options on this command
Please
don
t
# forget the
lock
option or some programs such as mgetty will not
# work
The asyncmap and escape will permit the PPP link to work with
# a telnet or rlogin connection
You are welcome to make any changes
# as desired
Don
t use the
defaultroute
option if you currently
# have a default route to an ethernet gateway
#
exec/usr/sbin/pppd debug lock modem crtscts/dev/tty S
asyncmap
A
escape FF kdebug
$LOCAL_IP:$REMOTE_ IP
noipdefault netmask$NETMASK defaultroute connect$DI ALER_SCRIPT&
ppp
on
dialer文件
#!/bin/sh
#
# This is part
of the ppp
on script
It will perform the connection
# protocol for the desired connection
#
exec chat
v
TIMEOUT
ABORT
BUSY
ABORT
NO ANSWER
ABORT
RINGING
RINGING
AT
OK
+++c
OK
ATH
TIMEOUT
OK ATDT$TELEPHONE <
From:http://tw.wingwit.com/Article/program/Oracle/201311/18571.html