centos的ADSL(pppoe设置)
4.2.3 ADSL 撥接上網 (適用台灣 ADSL 撥接以及光纖到大樓)終於來到台灣最熱門的 ADSL 撥接上網的介紹啦!來談一談如何在 Linux 上撥接上網吧! 要撥接上網時,可以使用 rp-pppoe 這套軟體來幫忙(註1),所以,你必須要確認你的 Linux distributions 上面已經存在這個玩意兒了!CentOS 本身就含有 rp-pppoe ,請使用原版光碟,或者是使用 yum 來進行安裝吧!
[root@www ~]# rpm -q rp-pppoe rp-pppoe-3.5-32.1 <==你瞧瞧!確實有安裝喔!理論上,預設都會安裝啦! |
當然,很多 distributions 都已經將撥接這個動作歸類到圖形介面裡面去了,所以可能沒有提供 rp-pppoe 這個咚咚,沒關係,你可以到底下的網站去取得的:
- http://www.roaringpenguin.com/pppoe/
- http://freshmeat.net/projects/rp-pppoe/
然後再自行手動安裝即可。如何安裝的過程鳥哥在這裡就不談了,請自行前往基礎篇的原始碼與 Tarball 章節查閱相關資料吧。 另外請注意,雖然整個連線是由主機的乙太網路卡連接到 ADSL 數據機上,然後再透過電話線路連線到 ISP 的機房去,最後在主機上以 rp-pppoe 撥接達成連線。但是 rp-pppoe 使用的是 Point to Point (ppp) over Ethernet 的點對點協定所產生的網路介面,因此當你順利的撥接成功之後, 會多產生一個實體網路介面『 ppp0 』喔!
而由於 ppp0 是架構在乙太網路卡上的,你必須要有乙太網卡,同時,即使撥接成功後,你也不能將沒有用到的 eth0 關閉喔!注意注意!因此,撥接成功後就會有:
- 內部迴圈測試用的 lo 介面;
- 網路卡 eth0 這個介面;
- 撥接之後產生的經由 ISP 對外連接的 ppp0 介面。
雖然 ppp0 是架構在乙太網卡上面的,但上頭這三個介面在使用上是完全獨立的,互不相干, 所以關於 eth0 的使用上,你就可以這樣思考:
- 這張網路卡 (假設是 eth0) 有接內部網路(LAN):
舉例來說,如果你的區域網路如同第三章的圖3.1-1 所示,也就是說,你的 ppp0 可以連上 Internet ,但是內網則使用 eth0 來跟其他內部主機連線時, 那麼你的 IP 設定參數: /etc/sysconfig/network-scripts/ifcfg-eth0 應該要給予一個私有 IP 以使內部的 LAN 也可以透過 eth0 來進行連線啊!所以我會這樣設定:
[root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none BROADCAST=192.168.1.255 IPADDR=192.168.1.11 NETMASK=255.255.255.0 ONBOOT=yes
- 這部主機僅有連接 ADSL 數據機,並沒有內部網域:
如果這部 Linux 主機是直接連接到 ADSL 數據機上頭,並沒有任何內部主機與其連線,也就是說,你的 eth0 有沒有 IP 都沒有關係時,那麼上面的設定當中的那個『 ONBOOT=yes 』直接改成『 ONBOOT=no 』就好了!那撥接不會有問題嗎? 沒關係啊,因為你撥接啟動 ppp0 時,系統會主動的喚醒 eth0 ,只是 eth0 不會有 IP 資訊就是了。
至於其他的檔案請參考手動設定 IP 的連線方法來處理即可。 當然啦,撥接之前,請確認你的 ADSL 數據機 (小烏龜) 已經與主機連線妥當,也取得帳號與密碼,也安裝好了 rp-pppoe ,然後就來處理吧!
- 設定連接到 ADSL 數據機那張網卡 (暫訂為 eth0)
說實在的,鳥哥比較建議將內外網域分的清清楚楚比較好,所以,通常我都是主機上面接兩塊網路卡, 一張對內一張對外,對外的那張網卡預設是不啟動的 (ONBOOT=no)。考慮到你可能僅有一張網卡,那麼鳥哥也會給你建議, 直接給 eth0 一個私有 IP 介面吧!設定就如同本節稍早提到的那樣囉! - 設定撥接的帳號與密碼
好了,那麼開始來設定你的帳號與密碼吧!這個動作只要在第一次建立帳號/密碼時處理即可,未來除非帳號密碼改變了, 否則這個動作都不需要重新處理啦!
[root@www ~]# adsl-setup Welcome to the ADSL client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly... LOGIN NAME Enter your Login Name (default root): T1234567 # 注意啊!這個帳號名稱是 ISP 給的,其中如果是 SeedNet ,輸入如上, # 如果是 Hinet 的話,就得要輸入 [email protected] ,後面的主機名也要寫。 INTERFACE Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethX, where 'X' is a number. (default eth0): eth0 # 就是連接到 ADSL 數據機的那張網卡代號 Do you want the link to come up on demand, or stay up continuously? If you want it to come up on demand, enter the idle time in seconds after which the link should be dropped. If you want the link to stay up permanently, enter 'no' (two letters, lower-case.) NOTE: Demand-activated links do not interact well with dynamic IP addresses. You may have some problems with demand-activated links. Enter the demand value (default no): <==這裡按 Enter 確定不要即可 DNS Enter the DNS information here: 168.95.1.1 Enter the secondary DNS server address here: 139.175.10.20 # 這兩個設定會影響 /etc/resolv.conf 的內容喔! PASSWORD Please enter your Password: <==這裡則是輸入你 ISP 給的密碼 Please re-enter your Password: <==再一次密碼 USERCTRL Please enter 'yes' (two letters, lower-case.) if you want to allow normal user to start or stop DSL connection (default yes): no # 不讓使用者可以啟動或關閉 ADSL 的設定比較好吧! The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsible for ensuring the security of your machine. You are STRONGLY recommended to use some kind of firewall rules. 1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation 2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN Choose a type of firewall (0-2): 0 # 先不要 ppp 的防火牆!後面我們會使用 Linux 本機的防火牆! Start this connection at boot time Do you want to start this connection at boot time? Please enter no or yes (default no):yes # 是否要開機的時候就撥接?如果你的數據機是一直開著的,這裡使用 yes 較佳 Ethernet Interface: eth0 User name: T1234567 Activate-on-demand: No Primary DNS: 168.95.1.1 Secondary DNS: 139.175.10.20 Firewalling: NONE User Control: no Accept these settings and adjust configuration files (y/n)? y # 如果沒有問題就按下 y 開始寫入設定檔吧! Adjusting /etc/sysconfig/network-scripts/ifcfg-ppp0 Adjusting /etc/resolv.conf (But first backing it up to /etc/resolv.conf.bak) Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets (But first backing it up to /etc/ppp/chap-secrets.bak) (But first backing it up to /etc/ppp/pap-secrets.bak) # 上面具有特殊字體的檔案主要功能是: # ifcfg-ppp0 :亦即是 ppp0 這個網路介面的設定檔案; # resolv.conf :這個檔案會被備份後,然後以剛剛我們上面輸入的 DNS 資料取代; # pap-secrets, chap-secrets:我們輸入的密碼就放在這裡!
- 透過 adsl-start, adsl-connect 或 network restart 開始撥接上網
啟動 ADSL 的方法很多,通常鳥哥都是使用 /etc/init.d/network restart 即可處理!不過,如果發生一些不明的錯誤, 也可以使用 adsl-stop 關閉後再以 adsl-start 立即啟動撥接試看看。一切順利的話,會如同下面的畫面:
[root@www ~]# adsl-start ....Connect!
- 開始檢查的步驟:
上面的步驟搞定就可以連上 Internet 了。如果擔心設定方面有問題,可以透過手動設定 IP 的那個小節的五個步驟去檢查看看, 指令分別是:
[root@www ~]# ifconfig [root@www ~]# route -n [root@www ~]# ping GW的IP [root@www ~]# dig www.google.com [root@www ~]# hostname
[root@www ~]# ifconfig ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:114.33.149.35 P-t-P:168.95.88.254 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:216541 errors:0 dropped:0 overruns:0 frame:0 TX packets:125009 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:283114899 (269.9 MiB) TX bytes:11393717 (10.8 MiB)