2015年4月2日

Raspberry Pi 樹莓派 ADSL PPPoE 連線到網際網路

最近我迷上玩樹莓派,在PPPOE 撥接這關並不順利,一卡就是一個晚上,我將我碰到的問題(多裝了pppoe這套件反而出問題)寫在最後面,當成我的筆記。如果你養的企鵝(Linux)是跟Ubuntu或其他Debian品種,可以參考。
狀況一:如果你那裡除了搞定ADSL的PPPOE撥接之外,就沒有辦法上網,找別的電腦把下面套件挖下來,後面「參考」根據當時安裝套件清單作為標準,不見得是最新版本,未來也可能會更新,所以僅供參考。
libpcap(參考:libpcap0.8 armhf 1.3.0-1 [135 kB])
ppp(參考:ppp armhf 2.4.5-5.1+deb7u1 [354 kB])
pppoeconf(參考:pppoeconf all 1.20 [50.1 kB])
下載好後,拿隨身碟拷貝到樹梅派。
$ sudo dpkg -i ./home/pi/xDSL_conf/*.deb#安裝該目錄所有的deb套件(目錄改成你自己的)

狀況二:可以透過分享器上網,那就省事!
$ sudo apt-get update && sudo apt-get upgrade
#更新軟體清單和軟體版本更新(upgrade可以改用dist-upgrade,但風險較高)[1]

$ sudo apt-get install pppoeconf ppp
#安裝pppoeconf、ppp套件

等待安裝完成...等等等~

套件裝好之後,執行pppoeconf
$ sudo pppoeconf


他告訴你將要修改/etc/ppp/peers/dsl-provider,請你備份~Yes,我也懶得備份!

Yes!


在這裡輸入你ISP業者的帳號~


在這裡輸入你ISP業者的密碼~


幫你修改DNS,路徑/etc/resolv.conf 會幫你改成ISP業者提供的DNS


MSS(Maximum Segment Size) 最大分段容量,Yes!有興趣研究看這裡:小議TCP的MSS(最大分段)以及MTU淺談 路由器的 MTU MRU MSS 設置


問你是否要開機就撥接上網~


問你是否現在就要撥接上網


介紹查詢DSL組態和紀錄,反正後面我會介紹~
設定完成!!

幾本操作:
撥接連線
$ sudo pon dsl-provider
中斷連線
$ sudo poff
查詢連線紀錄
$ plog
查詢網路組態
$ ifconfig
#列出所有的網路組態

$ ifconfig ppp0
#只列出ppp0的網路組態


修改資料:
1.「軟體修改」連線資訊ISP帳號、密碼、自動連線...等,再執行一次
$ sudo pppoeconf
#將流程再跑一遍


2.「手動修改」DSL連線資訊。參考:ADSL PPPoE(英文,這篇十分詳細,讚!) 我喜歡追根究底,想知道軟體到底修改那些文件。
$ sudo nano ppp/peers/dsl-provider
#使用nano編輯器開啟目標文件

文件最後有兩行文字,包含透過哪張網卡連線,ISP帳號使用者等等資訊。
plugin rp-pppoe.so eth0
user xxxxxxxxx@hinet.net

$ sudo nano /etc/ppp/chap-secrets
#這裡紀錄了DSL帳號、密碼
$ sudo nano /etc/network/interfaces
#這裡包含所有網路組態,有線、無線,甚至你的網卡有好幾張;當然包含DSL連線資訊,透過哪張網卡連線,是否自動連線。
#紅色框框內,代表自動連線
#想更換其他DNS的話,可以在這份文件最後增加一行

dns-nameservers 8.8.8.8 8.8.4.4
#以google提供的DNS為例,最多可以三組

〈重點〉不要去改/etc/resolv.conf 重開後會被系統蓋回來!參考:解決 Ubuntu Linux Server 12.04 DNS 設定問題
$ sudo /etc/init.d/networking restart
#設定完成後,重啟動網路介面


錯誤排除:


我初次操作用除了ppp和pppoeconf,還多裝了pppoe,DSL連線正常,就是不能上網。參考:RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5 ,輸入指令:$ plog查了訊息,其中一行
route via 192.168.1.1default
我當時覺得是路由的問題,以為是系統抓到分享器(該死,我的分享器IP就是192.168.1.1),其實不然!
方法1.把pppoe和pppoeconf解除安裝,再把pppoeconf裝回來。

$ sudo apt-get purge pppoe
$ sudo apt-get purge pppoeconf
#解除安裝pppoe和pppoeconf

$ sudo apt-get install pppoeconf
#裝回來

$ sudo pppoeconf
#接下來在跑一次設定

方法2.修改dsl-provider文件
$ sudo nano /etc/ppp/peers/dsl-provider
#開啟該文件在defaultroute後增加一行replacedefaultroute


方法3.修改路由的預設值 ,參考:pppoeroute
$ sudo route del not replacing existing default
$ sudo route add default ppp0
#路由改回預設值

不過這方法可以一時解決,重開以後就失效了!!
 
其他參考資料:
[1] APT upgrade 和 dist-upgrade 的差別




沒有留言:

張貼留言