鸟哥的Linux私房菜(服务器)- 第四章、连上 Internet
最近更新日期:2011/07/20
| 終于要來到修改 Linux 網(wǎng)絡(luò)參數(shù)的章節(jié)了!在第二章的網(wǎng)絡(luò)基礎(chǔ)中, 我們知道主機(jī)要連上 Internet 需要一些正確的網(wǎng)絡(luò)參數(shù)設(shè)定,這些設(shè)定在 Windows 系統(tǒng)上面的修改則在第三章的局域網(wǎng)絡(luò)架構(gòu)中說明了。在這一章當(dāng)中,我們則主要以固定 IP 的設(shè)定方式來修改 Linux 的網(wǎng)絡(luò)參數(shù),同時,也會介紹如何使用 ADSL 的撥接方式來上網(wǎng),此外,因?yàn)?Cable modem 使用者也不在少數(shù),所以我們也說明一下 Cable modem 在 Linux 下的設(shè)定方式喔! 最后,由于筆記本電腦使用者大增,且因?yàn)楣P記本電腦常使用無線網(wǎng)絡(luò),因此本文也加入了無線網(wǎng)絡(luò)的聯(lián)機(jī)介紹啊! |
4.1?Linux 連上 Internet 前的注意事項(xiàng)
4.1.1?Linux 的網(wǎng)絡(luò)卡
4.1.2?編譯網(wǎng)卡驅(qū)動程序(Option)
4.1.3?Linux 網(wǎng)絡(luò)相關(guān)配置文件案
4.2?連上 Internet 的設(shè)定方法
4.2.1?手動設(shè)定固定 IP 參數(shù) (適用學(xué)術(shù)網(wǎng)絡(luò)、ADSL 固定制) + 五大檢查步驟
4.2.2?自動取得 IP 參數(shù) (DHCP 方法,適用 Cable modem、IP 分享器的環(huán)境)
4.2.3?ADSL 撥接上網(wǎng) (適用臺灣 ADSL 撥接以及光纖到大樓)
4.3?無線網(wǎng)絡(luò)--以筆記本電腦為例
4.3.1?無線網(wǎng)絡(luò)所需要的硬件: AP、無線網(wǎng)卡
4.3.2?關(guān)于 AP 的設(shè)定:網(wǎng)絡(luò)安全方面
4.3.3?利用無線網(wǎng)卡開始聯(lián)機(jī)
4.4?常見問題說明
4.4.1?內(nèi)部網(wǎng)域使用某些聯(lián)機(jī)服務(wù)(如 FTP, POP3)所遇到的聯(lián)機(jī)延遲問題
4.4.2?網(wǎng)址列無法解析問題
4.4.3?預(yù)設(shè)路由的問題
4.5?重點(diǎn)回顧
4.6?本章習(xí)題
4.7?參考數(shù)據(jù)與延伸閱讀
4.8?針對本文的建議:http://phorum.vbird.org/viewtopic.php?p=112420
4.1 Linux 連上 Internet 前的注意事項(xiàng)
由前面幾章的數(shù)據(jù)我們知道,想要連上 Internet 你得要設(shè)定一組合法的 IP 參數(shù)才可以,主要是 IP, Netmask, Gateway, DNS IP 以及主機(jī)名等。那我們也知道,其實(shí)整個主機(jī)最重要的設(shè)定,就是『先要驅(qū)動網(wǎng)絡(luò)卡』,否則主機(jī)連網(wǎng)絡(luò)卡都捉不到時, 怎么設(shè)定 IP 參數(shù)都是沒有用的,你說是吧!所以底下我們就來談一談, 你要如何確定網(wǎng)絡(luò)卡已經(jīng)被捉到,而 Linux 主機(jī)的網(wǎng)絡(luò)參數(shù)又該如何設(shè)定?
4.1.1 Linux 的網(wǎng)絡(luò)卡
你怎么確認(rèn) Linux 有捉到網(wǎng)絡(luò)卡?Linux 底下的網(wǎng)絡(luò)卡的名稱是啥?讓我們來了解一下吧!
- 認(rèn)識網(wǎng)絡(luò)卡的裝置代號
在 Linux 里面的各項(xiàng)裝置幾乎都是以文件名來取代的,例如 /dev/hda 代表 IDE1 接口的第一個 master 硬盤等等。 不過,網(wǎng)絡(luò)卡的代號 (Network Interface Card, NIC) 卻是以模塊對應(yīng)裝置名稱來代替的, 而默認(rèn)的網(wǎng)絡(luò)卡代號為 eth0?,第二張網(wǎng)絡(luò)卡則為 eth1 ,以此類推。
- 關(guān)于網(wǎng)絡(luò)卡的模塊 (驅(qū)動程序)
我們知道網(wǎng)絡(luò)卡其實(shí)是硬件,所以當(dāng)然需要核心支持才能驅(qū)動他。一般來說,目前新版的 Linux distributions 默認(rèn)可以支持的網(wǎng)絡(luò)卡芯片組數(shù)量已經(jīng)很完備了,包括大廠的 3COM, Intel 以及初階的 RealTek, D-Link 等網(wǎng)絡(luò)卡芯片都已經(jīng)被支持, 所以使用者可以很輕易的設(shè)定好他們的網(wǎng)絡(luò)卡。不過,萬一你的網(wǎng)絡(luò)卡芯片組開發(fā)商不愿意釋出開放源 (Open Source) 的硬件驅(qū)動程序,或者是該網(wǎng)絡(luò)卡太新了,使得 Linux 核心來不及支持時,那么你就得要透過:
- 重新編譯較新的核心,或者是
- 編譯網(wǎng)絡(luò)卡的核心模塊
- 觀察核心所捉到的網(wǎng)卡信息
假設(shè)你的網(wǎng)絡(luò)卡已經(jīng)在主機(jī)上面,不論是內(nèi)建的還是自行安插到 PCI 或 PCI-x 或 PCI-E 的接口上, 那么如何確認(rèn)該網(wǎng)絡(luò)卡有被核心捉到呢?很簡單啊!就利用 dmesg 來查閱即可:
從上面的第 377 及 383 這兩行,我們可以查到這部主機(jī)的兩張網(wǎng)絡(luò)卡都使用模塊為 e1000,而使用的芯片應(yīng)該就是 Intel 的網(wǎng)絡(luò)卡了。此外,這個網(wǎng)卡的速度可達(dá)到 1000Mbps 的全雙工模式哩 (418行) !除了使用 dmesg 來查詢核心偵測硬件產(chǎn)生的信息外,我們也可以透過 lspci 來查詢相關(guān)的設(shè)備芯片數(shù)據(jù)喔!如下所示:[root@www ~]# dmesg | grep -in eth 377:e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection 383:e1000: eth1: e1000_probe: Intel(R) PRO/1000 Network Connection 418:e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX 419:eth0: no IPv6 routers present
請注意,鳥哥這里使用的是 Virtualbox 仿真的那部主機(jī)的環(huán)境 (請參考第一章 1.2.2-2),因此使用的是模擬出來的 Intel 網(wǎng)卡。 如果你是使用自己的實(shí)際硬件配備安裝的主機(jī),那么應(yīng)該會看到不同的芯片啦!那是正常的![root@www ~]# lspci | grep -i ethernet 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
- 觀察網(wǎng)絡(luò)卡的模塊
從剛剛的 dmesg 的輸出訊息中,我們知道鳥哥這部主機(jī)所使用的模塊是 e1000 ,那核心有順利的載入了嗎?可以利用 lsmod 去查查看。此外,這個模塊的相關(guān)信息又是如何呢?使用 modinfo 來查查看吧!
上面輸出信息的重點(diǎn)在于那個檔名 (filename) 的部分!那一場串的文件名目錄,就是我們驅(qū)動程序放置的主要目錄所在。 得要注意的是,那個 2.6.32-71.29.1.el6.x86_64 是核心版本,因此,不同的核心版本使用的驅(qū)動程序其實(shí)不一樣喔!我們才會一直強(qiáng)調(diào),更改核心后, 你自己編譯的硬件驅(qū)動程序就需要重新編譯啦![root@www ~]# lsmod | grep 1000 e1000 119381 0 <==確實(shí)有載入到核心中![root@www ~]# modinfo e1000 filename: /lib/modules/2.6.32-71.29.1.el6.x86_64/kernel/drivers/net/e1000/e1000.ko version: 7.3.21-k6-NAPI license: GPL description: Intel(R) PRO/1000 Network Driver .....(以下省略).....
那你如何知道你的網(wǎng)絡(luò)卡卡號呢?很簡單啊!不管有沒有啟動你的網(wǎng)絡(luò)卡,都可以使用: 『?ifconfig eth0?』來查詢你的網(wǎng)卡卡號。如果你照著上面的信息來作, 結(jié)果發(fā)現(xiàn)網(wǎng)卡已經(jīng)驅(qū)動了,恭喜你,準(zhǔn)備到下一節(jié)去設(shè)定網(wǎng)絡(luò)吧!如果沒有捉到網(wǎng)卡呢?那就準(zhǔn)備自己編譯網(wǎng)卡驅(qū)動程序吧!
好讓核心可以支持網(wǎng)絡(luò)卡這塊硬件啦!但是,重編核心或編譯網(wǎng)絡(luò)卡核心模塊都不是簡單的工作, 而且有時原始碼又可能無法在每部主機(jī)上面編譯成功,所以萬一你的網(wǎng)絡(luò)卡真的不被默認(rèn)的 Linux 網(wǎng)絡(luò)芯片所支持,那么鳥哥真的建議直接換一塊被 Linux 支持的網(wǎng)絡(luò)卡吧,例如很便宜的螃蟹卡! 免得花了太多時間在硬件確認(rèn)上面,劃不來的! ^_^
另外,其實(shí)有的時候 Linux 的默認(rèn)網(wǎng)絡(luò)卡模塊可能無法完全 100% 的發(fā)揮網(wǎng)絡(luò)卡的功能的, 所以,有的時候你還是得必須要自行編譯網(wǎng)絡(luò)卡的模塊才行喔!當(dāng)然, 那個網(wǎng)絡(luò)卡的模塊就得要自行由網(wǎng)絡(luò)卡開發(fā)商的官方網(wǎng)站下載了!不過,如果你的網(wǎng)絡(luò)卡是自行編譯安裝的,?那么每次重新安裝其他版本的核心時,你都必須要自行重新手動編譯過該模塊。 因?yàn)槟K與核心是有相關(guān)性的啊!
4.1.2 編譯網(wǎng)卡驅(qū)動程序(Option)
一般來說,如果沒有特殊需求,鳥哥不是很建議你自己編譯網(wǎng)絡(luò)卡的驅(qū)動程序!為啥? 因?yàn)橄氲矫看胃潞诵亩嫉靡匦戮幾g一次網(wǎng)卡驅(qū)動程序,光是想想都覺得煩~所以,沒有被 Linux 預(yù)設(shè)核心支持的網(wǎng)卡, 就先丟著吧!
| Tips: 鳥哥之前買了一張內(nèi)建網(wǎng)卡的主板,該網(wǎng)卡并沒有被當(dāng)時的 Linux 預(yù)設(shè)核心所支持,所以就得要自己編譯核心啦。因?yàn)?CentOS 很少更新核心,所以第一次編譯完畢之后就忘記有這回事了。等到過了數(shù)周有新的核心出現(xiàn)后,鳥哥很開心的自動升級核心, 然后遠(yuǎn)程進(jìn)行 reboot ,結(jié)果呢?沒有網(wǎng)卡驅(qū)動程序了啦!我的主機(jī)無法聯(lián)網(wǎng),得要到主機(jī)前用 tty 登入后才能進(jìn)行編譯~唉~ |
如果你真的很有求知欲,而且該網(wǎng)卡的官網(wǎng)有提供給 Linux 的驅(qū)動程序原始碼; 或者是你很想要某些官網(wǎng)提供的驅(qū)動程序才有的特殊功能;又或者是你真的很不想要再買一張額外的網(wǎng)卡。 此時,就得要重新編譯網(wǎng)絡(luò)卡的驅(qū)動程序啰。
| Tips: 事實(shí)上,如果你要新添購硬件時,請先查閱一下硬件包裝上面是否提及支持 Linux 的字樣, 因?yàn)橛行┯布S商在推出新硬件時,常常會漏掉 Linux 驅(qū)動程序的撰寫。 如果包裝上面有提到支持的話,那么至少你會獲得官方網(wǎng)站所提供的驅(qū)動程序原始碼啊! ^_^ |
因?yàn)槲覀冞@里使用的網(wǎng)絡(luò)卡是 Intel 的 82540EM Gigabit Ethernet 控制芯片,假設(shè)你需要的驅(qū)動程序得要由 Intel 官網(wǎng)取得最新的版本,而不要使用預(yù)設(shè)的核心所提供的版本時,那你該如何處理呢?請注意,鳥哥這個小節(jié)只是一個范例簡介, 不同的廠商推出的驅(qū)動程序安裝方式都有點(diǎn)不太一樣,你得要參考驅(qū)動程序的讀我檔 (READ ME) 或相關(guān)檔案來安裝才行。 此外,如果默認(rèn)驅(qū)動程序已經(jīng)捉到了網(wǎng)絡(luò)卡,鳥哥是建議使用預(yù)設(shè)的驅(qū)動程序就好了喔!
另外,由于編譯程序需要編譯程序以及核心相關(guān)信息,因此得要預(yù)安裝 gcc, make, kernel-header 等軟件才行。 但是我們選擇的安裝模式為『basic server』,這些軟件默認(rèn)都沒有安裝的,所以你得要先安裝這些軟件才行。 這些軟件可以簡單的透過 yum 使用『yum groupinstall 'Development Tools'』來安裝,只可惜你并沒有網(wǎng)絡(luò)啊! 所以就得要透過原本光盤一個一個去處理 RPM 屬性相依的問題來解決了~很麻煩的~不然的話,就得要透過更改 yum 配置文件,使用本機(jī)檔案的類型來取得原版光盤的 yum 軟件列表啰!鳥哥這里假設(shè)你已經(jīng)安裝了所需要的編譯程序了, 接下來的動作是:
再次說明,你可以復(fù)制鳥哥的環(huán)境,透過 Virtualbox 的模擬而來。我們這里使用的是 Intel 的網(wǎng)卡,你可以到如下的網(wǎng)站去下載:
- http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&keyword='e1000-'
最后 (2011/07) 下載的版本為 8.0.30,確實(shí)比上個小節(jié)提到的版本還要新!下載的文件名為 e1000-8.0.30.tar.gz, 鳥哥將它放置于 /root 底下,然后準(zhǔn)備來處理編譯過程吧!
使用 root 的身份進(jìn)行如下工作吧:
| [root@www ~]# tar -zxvf e1000-8.0.30.tar.gz -C /usr/local/src [root@www ~]# cd /usr/local/src/e1000-8.0.30/ # 此時在該目錄下有個 README 的檔案,記得看一看,這個檔案內(nèi)會說明很多信息, # 包括如何編譯,以及這個模塊所支持的芯片組哩! [root@www e1000-8.0.30]# cd src [root@www src]# make install |
由于這個模塊已經(jīng)被加載啦,所以我們得要先移除舊的模塊后,才能夠重載這個模塊。使用的方法有點(diǎn)像這樣:
| # 1. 先移除已經(jīng)加載在內(nèi)存中的舊模塊 [root@www ~]# rmmod e1000 # 此時已經(jīng)捉到的網(wǎng)卡會整個消失不見!因?yàn)轵?qū)動程序被卸除了嘛!# 2. 加載新模塊,并且查閱一下有沒有捉到正確的版本! [root@www ~]# modprobe e1000 [root@www ~]# modinfo e1000 filename: /lib/modules/2.6.32-71.29.1.el6.x86_64/kernel/drivers/net/e1000/e1000.ko version: 8.0.30-NAPI <==就是這里! license: GPL description: Intel(R) PRO/1000 Network Driver |
如果你在開機(jī)就能夠正確的取得這個模塊的話,那么你的網(wǎng)卡就沒有問題啦!這個步驟是可以略過的。如果你的核心還是捉不到網(wǎng)卡, 那你可能得要自己處理一下模塊的對應(yīng)才行。怎么處理呢?很簡單,在 /etc/modprobe.d/ 目錄下建立一個名為 ether.conf 的檔案, 內(nèi)容將模塊與網(wǎng)卡代號鏈接在一塊即可!這樣處理:
| [root@www ~]# vim /etc/modprobe.d/ether.conf alias eth0 e1000 alias eth1 e1000 <==因?yàn)轼B哥有兩張網(wǎng)卡嘛![root@www ~]# sync; reboot |
等到一切就緒之后,總得試看看這樣的網(wǎng)絡(luò)卡模塊是否可以順利的設(shè)定好 IP 吧? 所以我們先手動給他一個私有 IP 看看先:
| [root@www ~]# ifconfig eth0 192.168.1.100 [root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BDinet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 ....(以下省略).... |
4.1.3 Linux 網(wǎng)絡(luò)相關(guān)配置文件案
我們知道 TCP/IP 的重要參數(shù)主要是: IP, Netmask, Gateway, DNS IP ,而且千萬不要忘記你這部主機(jī)也應(yīng)該要有主機(jī)名 (hostname)!此外,我們也知道 IP 的取得有手動設(shè)定、DHCP 處理等。那么這些參數(shù)主要是寫在哪些配置文件?如何對應(yīng)呢? 底下就讓我們來處理一番!
| 所需網(wǎng)絡(luò)參數(shù) | 主要配置文件檔名 | 重要參數(shù) |
| IP Netmask DHCP 與否 Gateway 等 | /etc/sysconfig/network-scripts/ifcfg-eth0 | DEVICE=網(wǎng)卡的代號 BOOTPROTO=是否使用 dhcp HWADDR=是否加入網(wǎng)卡卡號(MAC) IPADDR=就是IP地址 NETMASK=只網(wǎng)絡(luò)屏蔽啦 ONBOOT=要不要默認(rèn)啟動此接口 GATEWAY=就是通訊閘啦 NM_CONTROLLED=額外的網(wǎng)管軟件 鳥哥建議取消這個項(xiàng)目! |
| 主機(jī)名 | /etc/sysconfig/network | NETWORKING=要不要有網(wǎng)絡(luò) NETWORKING_IPV6=支持IPv6否? HOSTNAME=你的主機(jī)名 |
| DNS IP | /etc/resolv.conf | nameserver DNS的IP |
| 私有 IP 對應(yīng) 的主機(jī)名 | /etc/hosts | 私有IP 主機(jī)名 別名 |
你沒有看錯,主要需要修改的就是這四個檔案而已!因此沒有很困難!大家都想太多了!詳細(xì)的設(shè)定后續(xù)小節(jié)再來講, 這里先有概念即可。除此之外,還有些檔案或許你也應(yīng)該要知道一下比較好呦!
- /etc/services
這個檔案則是記錄架構(gòu)在 TCP/IP 上面的總總協(xié)議,包括 http, ftp, ssh, telnet 等等服務(wù)所定義的 port number ,都是這個檔案所規(guī)劃出來的。如果你想要自定義一個新的協(xié)議與 port 的對應(yīng),就得要改這個檔案了;
- /etc/protocols
這個檔案則是在定義出 IP 封包協(xié)議的相關(guān)數(shù)據(jù),包括 ICMP/TCP/UDP 這方面的封包協(xié)議的定義等。
大概知道上面這幾個檔案后,未來要修改網(wǎng)絡(luò)參數(shù)時,那就太簡單了!至于網(wǎng)絡(luò)方面的啟動指令的話,可以記得幾個簡單的指令即可喔!
- /etc/init.d/network restart
這個 script 最重要!因?yàn)榭梢砸豢跉庵匦聠诱麄€網(wǎng)絡(luò)的參數(shù)! 他會主動的去讀取所有的網(wǎng)絡(luò)配置文件,所以可以很快的恢復(fù)系統(tǒng)默認(rèn)的參數(shù)值。
- ifup eth0 (ifdown eth0)
啟動或者是關(guān)閉某張網(wǎng)絡(luò)接口。可以透過這個簡單的 script 來處理喔! 這兩個 script 會主動到 /etc/sysconfig/network-scripts/ 目錄下, 讀取適當(dāng)?shù)呐渲梦募硖幚戆?#xff01; (例如 ifcfg-eth0)。
大概你只要只到這些基本的指令與檔案,哈哈!網(wǎng)絡(luò)參數(shù)的設(shè)定就太簡單啦! 不過,最好你還是要了解?shell script?,比較好!因?yàn)榭梢宰粉櫿麄€網(wǎng)絡(luò)的設(shè)定條件。 why ?這是因?yàn)槊總€ distributions 的設(shè)定數(shù)據(jù)可能都不太相同,不過卻都以 /etc/init.d/network 作為啟動的 script , 因此,你只要了解到該檔案的內(nèi)容,很容易就追蹤得出來你的配置文件所需要的內(nèi)容呢!對吧!
另外,新版的 CentOS 6.x 還有額外推出一個名稱為 NetworkManager 的軟件機(jī)制來管理網(wǎng)絡(luò), 不過,鳥哥還是比較喜歡手工打造自己的網(wǎng)絡(luò)環(huán)境,所以很建議將該軟件關(guān)閉呢!還好,我們安裝的『basic server (第一章的 1.2.2-2)』 就這么巧的沒有安裝該軟件!好佳在~^_^
4.2 連上 Internet 的設(shè)定方法
在前幾章我們就談過,臺灣地區(qū)主要連上因特網(wǎng)的方法有(1)學(xué)術(shù)網(wǎng)絡(luò)、(2)ADSL 固接與撥接、(3)Cable modem?等方式,同時,手動設(shè)定 IP 參數(shù)是很重要的學(xué)習(xí),因此,底下的各節(jié)中,第一節(jié)的手動設(shè)定固定 IP 一定要做過一次! 其他的才依照您的環(huán)境去設(shè)定去學(xué)習(xí)!
此外,由于目前使用 Linux notebook 的使用者大增,而 Notebook 通常是以無線網(wǎng)絡(luò)來聯(lián)機(jī)的, 所以鳥哥在這里也嘗試使用一款無線網(wǎng)絡(luò)來進(jìn)行聯(lián)機(jī)設(shè)定。至于傳統(tǒng)的 56 Kbps 撥接則因?yàn)樗俣容^慢且使用度越來越低, 所以在這里就不多做介紹了。
4.2.1 手動設(shè)定固定 IP 參數(shù) (適用學(xué)術(shù)網(wǎng)絡(luò)、ADSL 固定制) + 五大檢查步驟
所謂的固定 IP 就是指在你的網(wǎng)絡(luò)參數(shù)當(dāng)中,你只要輸入既定的 IP 參數(shù)即可。那么這個既定的 IP 來自哪里呢? 一般來說,他可能來自于:
- 學(xué)術(shù)網(wǎng)絡(luò):由學(xué)校單位直接給予的一組 IP 網(wǎng)絡(luò)參數(shù);
- 固定制 ADSL:向 ISP 申請的一組固定 IP 的網(wǎng)絡(luò)參數(shù);
- 企業(yè)內(nèi)部或 IP 分享器內(nèi)部的局域網(wǎng)絡(luò):例如企業(yè)內(nèi)使用私有 IP 作為局域網(wǎng)絡(luò)的聯(lián)機(jī)之用時,那么我們的 Linux 當(dāng)然也就需要向企業(yè)的網(wǎng)管人員申請一組固定的 IP 網(wǎng)絡(luò)參數(shù)啰!
這樣清楚嗎?也就是說,我們?nèi)〉玫墓潭?IP 參數(shù)并非一定是 public IP 喔!反正就是一組可接受的固定 IP 就是了! 所以在架設(shè)你的環(huán)境之前,請先注意所有網(wǎng)絡(luò)參數(shù)的來源正確性啊!好了,那么你的 IP 要如何設(shè)定呢?先回去翻翻第三章?3.2.1?里面的圖 3.2-1,我們對外網(wǎng)卡 (eth0) 的信息為:
| IP: 192.168.1.100 Netmask: 255.255.255.0 Gateway: 192.168.1.254 DNS IP: 168.95.1.1 Hostname: www.centos.vbird |
那么要修改的四個檔案與相關(guān)的啟動腳本,以及重新啟動后需要用啥指令觀察的重點(diǎn),鳥哥再次的使用一個簡單的表格來說明, 你只要記得這幾個表格內(nèi)的重要檔案與指令,以后在修改網(wǎng)絡(luò)參數(shù)時,就不會出現(xiàn)錯誤了!看看吧!
| 修改的參數(shù) | 配置文件與重要啟動腳本 | 觀察結(jié)果的指令 |
| IP相關(guān)參數(shù) | /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/init.d/network restart | ifconfig (IP/Netmask) route -n (gateway) |
| DNS | /etc/resolv.conf | dig www.google.com |
| 主機(jī)名 | /etc/sysconfig/network /etc/hosts | hostname (主機(jī)名) ping $(hostname) reboot |
底下我們就分別針對上面的各項(xiàng)設(shè)定來進(jìn)行檔案的重新修改啰!
設(shè)定網(wǎng)絡(luò)參數(shù)得要修改 /etc/sysconfig/network-scripts/ifcfg-eth0,請記得,這個 ifcfg-eth0 與檔案內(nèi)的 DEVICE 名稱設(shè)定需相同,并且,在這個檔案內(nèi)的所有設(shè)定,基本上就是 bash 的變量設(shè)定規(guī)則啦 (注意大小寫)!
| [root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" <==網(wǎng)絡(luò)卡代號,必須要 ifcfg-eth0 相對應(yīng) HWADDR="08:00:27:71:85:BD" <==就是網(wǎng)絡(luò)卡地址,若只有一張網(wǎng)卡,可省略此項(xiàng)目 NM_CONTROLLED="no" <==不要受到其他軟件的網(wǎng)絡(luò)管理! ONBOOT="yes" <==是否默認(rèn)啟動此接口的意思 BOOTPROTO=none <==取得IP的方式,其實(shí)關(guān)鍵詞只有dhcp,手動可輸入none IPADDR=192.168.1.100 <==就是 IP 啊 NETMASK=255.255.255.0 <==就是子網(wǎng)掩碼 GATEWAY=192.168.1.254 <==就是預(yù)設(shè)路由 # 重點(diǎn)是上面這幾個設(shè)定項(xiàng)目,底下的則可以省略的啰! NETWORK=192.168.1.0 <==就是該網(wǎng)段的第一個 IP,可省略 BROADCAST=192.168.1.255 <==就是廣播地址啰,可省略 MTU=1500 <==就是最大傳輸單元的設(shè)定值,若不更改則可省略 |
- DEVICE:這個設(shè)定值后面接的裝置代號需要與文件名 (ifcfg-eth0) 那個裝置代號相同才行!否則可能會造成一些裝置名稱找不到的困擾。
- BOOTPROTO:啟動該網(wǎng)絡(luò)接口時,使用何種協(xié)議? 如果是手動給予 IP 的環(huán)境,請輸入 static 或 none ,如果是自動取得 IP 的時候, 請輸入 dhcp (不要寫錯字,因?yàn)檫@是最重要的關(guān)鍵詞!)
- GATEWAY:代表的是『整個主機(jī)系統(tǒng)的 default gateway』, 所以,設(shè)定這個項(xiàng)目時,請?zhí)貏e留意!不要有重復(fù)設(shè)定的情況發(fā)生喔!也就是當(dāng)你有 ifcfg-eth0, ifcfg-eth1.... 等多個檔案,只要在其中一個檔案設(shè)定 GATEWAY 即可
- GATEWAYDEV:如果你不是使用固定的 IP 作為 Gateway , 而是使用網(wǎng)絡(luò)裝置作為 Gateway (通常 Router 最常有這樣的設(shè)定),那也可以使用 GATEWAYDEV 來設(shè)定通訊閘裝置呢!不過這個設(shè)定項(xiàng)目很少使用就是了!
- HWADDR:這個東西就是網(wǎng)絡(luò)卡的卡號了!在僅有一張網(wǎng)卡的情況下,這個設(shè)定值沒有啥功能, 可以忽略他。但如果你的主機(jī)上面有兩張一模一樣的網(wǎng)卡,使用的模塊是相同的。 此時,你的 Linux 很可能會將 eth0, eth1 搞混,而造成你網(wǎng)絡(luò)設(shè)定的困擾。如何解決呢? 由于 MAC 是直接寫在網(wǎng)卡上的,因此指定 HWADDR 到這個配置文件中,就可以解決網(wǎng)卡對應(yīng)代號的問題了!很方便吧!
設(shè)定完畢之后,現(xiàn)在讓我們來重新啟動網(wǎng)絡(luò)接口吧!這樣才能更新整個網(wǎng)絡(luò)參數(shù)嘛!
| [root@www ~]# /etc/init.d/network restart Shutting down interface eth0: [ OK ] <== 先關(guān)閉界面 Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] <== 再開啟界面 Bringing up interface eth0: [ OK ] # 針對這部主機(jī)的所有網(wǎng)絡(luò)接口 (包含 lo) 與通訊閘進(jìn)行重新啟動,所以網(wǎng)絡(luò)會停頓再開 |
| # 檢查一:當(dāng)然是要先察看 IP 參數(shù)對否,重點(diǎn)是 IP 與 Netmask 啦! [root@www ~]# ifconfig eth0 eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BDinet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0inet6 addr: fe80::a00:27ff:fe71:85bd/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:655 errors:0 dropped:0 overruns:0 frame:0TX packets:468 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:61350 (59.9 KiB) TX bytes:68722 (67.1 KiB) # 有出現(xiàn)上頭那個 IP 的數(shù)據(jù)才是正確的啟動;特別注意 inet addr 與 Mask 項(xiàng)目 # 這里如果沒有成功,得回去看看配置文件有沒有錯誤,然后再重新 network restart !# 檢查二:檢查一下你的路由設(shè)定是否正確 [root@www ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 eth0 # 重點(diǎn)就是上面的特殊字體!前面的 0.0.0.0 代表預(yù)設(shè)路由的設(shè)定值!# 檢查三:測試看看與路由器之間是否能夠聯(lián)機(jī)成功呢! [root@www ~]# ping -c 3 192.168.1.254 PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data. 64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=2.08 ms 64 bytes from 192.168.1.254: icmp_seq=2 ttl=64 time=0.309 ms 64 bytes from 192.168.1.254: icmp_seq=3 ttl=64 time=0.216 ms--- 192.168.1.254 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 0.216/0.871/2.088/0.861 ms # 注意啊!有出現(xiàn) ttl 才是正確的響應(yīng)!如果出現(xiàn)『 Destination Host Unreachable 』 # 表示沒有成功的聯(lián)機(jī)到你的 GATEWAY 那表示出問題啦!趕緊檢查有無設(shè)定錯誤。 |
這個 /etc/resolv.conf 很重要啦!他會影響到你是否可以查詢到主機(jī)名與 IP 的對應(yīng)喔!通常如下的設(shè)定就 OK 了!
| [root@www ~]# vim /etc/resolv.conf nameserver 168.95.1.1 nameserver 139.175.10.20 |
| # 檢查四:看看 DNS 是否順利運(yùn)作了呢?很重要的測試喔! [root@www ~]# dig www.google.com ....(前面省略).... ;; QUESTION SECTION: ;www.google.com. IN A;; ANSWER SECTION: www.google.com. 428539 IN CNAME www.l.google.com. www.l.google.com. 122 IN A 74.125.71.106 ....(中間省略)....;; Query time: 30 msec ;; SERVER: 168.95.1.1#53(168.95.1.1) <==這里的項(xiàng)目也很重要! ;; WHEN: Mon Jul 18 01:26:50 2011 ;; MSG SIZE rcvd: 284 |
修改主機(jī)名就得要改 /etc/sysconfig/network 以及 /etc/hosts 這兩個檔案,這兩個檔案的內(nèi)容又簡單的要命喔!
| [root@www ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=www.centos.vbird[root@www ~]# vim /etc/hosts 192.168.1.100 www.centos.vbird # 特別注意,這個檔案的原本內(nèi)容不要刪除!只要新增額外的數(shù)據(jù)即可! |
| [root@www ~]# hostname localhost.localdomain # 還是默認(rèn)值,尚未更新成功!我們還得要進(jìn)行底下的動作!# 檢查五:看看你的主機(jī)名有沒有對應(yīng)的 IP 呢?沒有的話,開機(jī)流程會很慢! [root@www ~]# ping -c 2 www.centos.vbird PING www.centos.vbird (192.168.1.100) 56(84) bytes of data. 64 bytes from www.centos.vbird (192.168.1.100): icmp_seq=1 ttl=64 time=0.015 ms 64 bytes from www.centos.vbird (192.168.1.100): icmp_seq=2 ttl=64 time=0.028 ms--- www.centos.vbird ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1000ms rtt min/avg/max/mdev = 0.015/0.021/0.028/0.008 ms # 因?yàn)槲覀冇性O(shè)定 /etc/hosts 規(guī)定 www.centos.vbird 的 IP , # 所以才找的到主機(jī)主機(jī)名對應(yīng)的正確 IP!這時才能夠 reboot 喔!重要重要! |
上面的信息中,檢查的內(nèi)容總共有五個步驟,這五個步驟每一步都要成功后才能夠繼續(xù)往下處理喔! 至于最重要的一點(diǎn),當(dāng)你修改過 /etc/sysconfig/network 里面的 HOSTNAME 后, 務(wù)必要重新啟動 (reboot)。但是重新啟動之前,請務(wù)必『 ping 主機(jī)名』且得到 time 的響應(yīng)才行!
4.2.2 自動取得 IP 參數(shù) (DHCP 方法,適用 Cable modem、IP 分享器的環(huán)境)
可自動取得 IP 的環(huán)境是怎么回事啊?不是很簡單嗎?當(dāng)你在 IP 分享器后頭的主機(jī)在設(shè)定時,不是都會選擇『自動取得 IP 』嗎?那就是可自動取得 IP 的環(huán)境啦!那么這個自動取得是怎么回事啊?也不難了解啦,其實(shí)就是『有一部主機(jī)提供 DHCP 服務(wù)給整個網(wǎng)域內(nèi)的計(jì)算機(jī)』就是了!例如 IP 分享器就可能是一部 DHCP 主機(jī)。那么 DHCP 是啥? 他是:Dynamic Host Configuration Protocol 的簡寫,顧名思義,他可以『動態(tài)的調(diào)整主機(jī)的網(wǎng)絡(luò)參數(shù)』的意思。詳細(xì)的?DHCP?功能我們會在第十二章說明的。好了,那么這個方法適合哪些聯(lián)機(jī)的方式呢?大致有這些:
- Cable Modem:就是使用電視纜線進(jìn)行網(wǎng)絡(luò)回路聯(lián)機(jī)的方式啊!
- ADSL 多 IP 的 DHCP 制:就鳥哥所知, SeedNet 有推出一種專案, 可以讓 ADSL 用戶以 DHCP 的方式來自動取得 IP ,不需要撥接。那使用的也是這種方法!
- IP 分享器或 NAT 有架設(shè) DHCP 服務(wù)時:當(dāng)你的主機(jī)位于 IP 分享器的后端,或者是你的 LAN 當(dāng)中有 NAT 主機(jī)且 NAT 主機(jī)有架設(shè) DHCP 服務(wù)時, 那取得 IP 的方法也是這樣喔!
你依舊需要前一小節(jié)手動設(shè)定 IP 的主機(jī)名設(shè)定 (第三步驟),至于 IP 參數(shù)與 DNS 則不需要額外設(shè)定, 僅需要修改 ifcfg-eth0 即可喔!這樣處理吧:
| [root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 HWADDR="08:00:27:71:85:BD" NM_CONTROLLED="no" ONBOOT=yes BOOTPROTO=dhcp |
沒蓋你喔!只要這幾個項(xiàng)目即可,其他的都給他批注 (#) 掉!尤其是那個 GATEWAY 一定不能設(shè)定! 避免互相干擾!然后給他重新啟動網(wǎng)絡(luò):
| [root@www ~]# /etc/init.d/network restart Shutting down interface eth0: [ OK ] <== 先關(guān)閉界面 Shutting down loopback interface: [ OK ] Bringing up loopback interface: [ OK ] <== 再開啟界面 Bringing up interface eth0: [ OK ] Determining IP information for eth0.. [ OK ] <== 重要!是 DHCP 的特點(diǎn)! # 你可以透過最后一行去判斷我們是否有透過 DHCP 協(xié)議取得 IP! |
我們局域網(wǎng)絡(luò)內(nèi)的 IP 分享器或 DHCP 主機(jī),就會立刻幫你的 Linux 主機(jī)做好網(wǎng)絡(luò)參數(shù)的規(guī)劃, 包括 IP 參數(shù)與 GATEWAY 等,就通通設(shè)定妥當(dāng)啦!很方便也很簡單吧!
| Tips: 基本上,/etc/resolv.conf 預(yù)設(shè)會被 DHCP 所修改過,因此你不需要修改 /etc/resolv.conf。甚至連主機(jī)名都會被 DHCP 所修訂。不過,如果你有特殊需求,那么 /etc/sysconfig/network 以及 /etc/hosts 請自行修改正確呦! |
4.2.3 ADSL 撥接上網(wǎng) (適用臺灣 ADSL 撥接以及光纖到大樓)
終于來到臺灣最熱門的 ADSL 撥接上網(wǎng)的介紹啦!來談一談如何在 Linux 上撥接上網(wǎng)吧! 要撥接上網(wǎng)時,可以使用 rp-pppoe 這套軟件來幫忙(注1),所以,你必須要確認(rèn)你的 Linux distributions 上面已經(jīng)存在這個玩意兒了!CentOS 本身就含有 rp-pppoe ,請使用原版光盤,或者是使用 yum 來進(jìn)行安裝吧!
| [root@www ~]# mount /dev/cdrom /mnt [root@www ~]# cd /mnt/Packages [root@www ~]# rpm -ivh rp-pppoe* ppp* [root@www ~]# rpm -q rp-pppoe rp-pppoe-3.10-8.el6.x86_64 <==你瞧瞧!確實(shí)已經(jīng)安裝喔! |
當(dāng)然,很多 distributions 都已經(jīng)將撥接這個動作歸類到圖形接口里面去了,所以可能沒有提供 rp-pppoe 這個咚咚,沒關(guān)系,你可以到底下的網(wǎng)站去取得的:
- http://www.roaringpenguin.com/pppoe/
- http://freshmeat.net/projects/rp-pppoe/
然后再自行手動安裝即可。如何安裝的過程鳥哥在這里就不談了,請自行前往基礎(chǔ)篇的原始碼與 Tarball 章節(jié)查閱相關(guān)資料吧。 另外請注意,雖然整個聯(lián)機(jī)是由主機(jī)的以太網(wǎng)絡(luò)卡連接到 ADSL 調(diào)制解調(diào)器上,然后再透過電話線路聯(lián)機(jī)到 ISP 的機(jī)房去,最后在主機(jī)上以 rp-pppoe 撥接達(dá)成聯(lián)機(jī)。但是?rp-pppoe 使用的是 Point to Point (ppp) over Ethernet 的點(diǎn)對點(diǎn)協(xié)議所產(chǎn)生的網(wǎng)絡(luò)接口,因此當(dāng)你順利的撥接成功之后, 會多產(chǎn)生一個實(shí)體網(wǎng)絡(luò)接口『 ppp0 』喔!
而由于 ppp0 是架構(gòu)在以太網(wǎng)絡(luò)卡上的,你必須要有以太網(wǎng)卡,同時,即使撥接成功后,你也不能將沒有用到的 eth0 關(guān)閉喔!注意注意!因此,撥接成功后就會有:
- 內(nèi)部循環(huán)測試用的 lo 接口;
- 網(wǎng)絡(luò)卡 eth0 這個接口;
- 撥接之后產(chǎn)生的經(jīng)由 ISP 對外連接的 ppp0 接口。
雖然 ppp0 是架構(gòu)在以太網(wǎng)卡上面的,但上頭這三個接口在使用上是完全獨(dú)立的,互不相干, 所以關(guān)于 eth0 的使用上,你就可以這樣思考:
- 這張網(wǎng)絡(luò)卡 (假設(shè)是 eth0) 有接內(nèi)部網(wǎng)絡(luò)(LAN):
舉例來說,如果你的局域網(wǎng)絡(luò)如同第三章的圖3.1-1?所示,也就是說,你的 ppp0 可以連上 Internet ,但是內(nèi)網(wǎng)則使用 eth0 來跟其他內(nèi)部主機(jī)聯(lián)機(jī)時, 那么你的 IP 設(shè)定參數(shù): /etc/sysconfig/network-scripts/ifcfg-eth0 應(yīng)該要給予一個私有 IP 以使內(nèi)部的 LAN 也可以透過 eth0 來進(jìn)行聯(lián)機(jī)啊!所以鳥哥會這樣設(shè)定:
并請記得一件事情,那就是:『千萬不要有 GATEWAY 的設(shè)定!』, 因?yàn)?ppp0 撥接成功后, ISP 會主動的給予 ppp0 接口一個可以連上 Internet 的 default gateway , 如果你又設(shè)定另一個 default gateway ,兩個網(wǎng)關(guān)可能會造成你的網(wǎng)絡(luò)不通喔![root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none NM_CONTROLLED=no IPADDR=192.168.1.100 NETMASK=255.255.255.0 ONBOOT=yes
- 這部主機(jī)僅有連接 ADSL 調(diào)制解調(diào)器,并沒有內(nèi)部網(wǎng)域:
如果這部 Linux 主機(jī)是直接連接到 ADSL 調(diào)制解調(diào)器上頭,并沒有任何內(nèi)部主機(jī)與其聯(lián)機(jī),也就是說,你的 eth0 有沒有 IP 都沒有關(guān)系時,那么上面的設(shè)定當(dāng)中的那個『 ONBOOT=yes 』直接改成『 ONBOOT=no 』就好了!那撥接不會有問題嗎? 沒關(guān)系啊,因?yàn)槟銚芙訂?ppp0 時,系統(tǒng)會主動的喚醒 eth0 ,只是 eth0 不會有 IP 信息就是了。
至于其他的檔案請參考?4.2.1 手動設(shè)定 IP 的聯(lián)機(jī)方法來處理即可。 當(dāng)然啦,撥接之前,請確認(rèn)你的 ADSL 調(diào)制解調(diào)器 (小烏龜) 已經(jīng)與主機(jī)聯(lián)機(jī)妥當(dāng),也取得賬號與密碼,也安裝好了 rp-pppoe ,然后就來處理吧!
說實(shí)在的,鳥哥比較建議將內(nèi)外網(wǎng)域分的清清楚楚比較好,所以,通常我都是主機(jī)上面接兩塊網(wǎng)絡(luò)卡, 一張對內(nèi)一張對外,對外的那張網(wǎng)卡預(yù)設(shè)是不啟動的 (ONBOOT=no)。考慮到你可能僅有一張網(wǎng)卡,那么鳥哥也會給你建議, 直接給 eth0 一個私有 IP 接口吧!設(shè)定就如同本節(jié)稍早提到的那樣啰!
好了,那么開始來設(shè)定你的賬號與密碼吧!這個動作只要在第一次建立賬號/密碼時處理即可,未來除非賬號密碼改變了, 否則這個動作都不需要重新處理啦!(留意一下,撥接的設(shè)定指令有改變喔!與之前的 adsl-setup 不一樣啰!仔細(xì)看看!)
| [root@www ~]# pppoe-setup Welcome to the PPPoE client setup. First, I will run some checks on your system to make sure the PPPoE client is installed properly...LOGIN NAME (從 ISP 處取得的賬號填入處) Enter your Login Name (default root): T1234567 # 注意啊!這個賬號名稱是 ISP 給的,其中如果是 SeedNet ,輸入如上, # 如果是 Hinet 的話,就得要輸入 username@hinet.net,后面的主機(jī)名也要寫。INTERFACE (ADSL 調(diào)制解調(diào)器所接的網(wǎng)卡代號) Enter the Ethernet interface connected to the PPPoE 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): eth0Enter the demand value (default no): noDNS (就填入 ISP 處取得的 DNS 號碼吧) Enter the DNS information here: 168.95.1.1 Enter the secondary DNS server address here: <==若無第二部就按 enterPASSWORD (從 ISP 處取得的密碼啊!) Please enter your Password: <==輸入密碼兩次,屏幕不會有星號 * 喔! Please re-enter your Password:USERCTRL (要不要讓一般用戶啟動與關(guān)閉?最好是不要!) Please enter 'yes' (three letters, lower-case.) if you want to allow normal user to start or stop DSL connection (default yes): noFIREWALLING (防火墻方面,先取消,用自己未來設(shè)定的) The firewall choices are: 0 - NONE: This script will not set any firewall rules. You are responsiblefor ensuring the security of your machine. You are STRONGLYrecommended 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 gatewayfor a LAN Choose a type of firewall (0-2): 0Start this connection at boot time (要不要開機(jī)立即啟動撥接程序?) Do you want to start this connection at boot time? Please enter no or yes (default no):yes** Summary of what you entered ** Ethernet Interface: eth0 User name: T1234567 Activate-on-demand: No Primary DNS: 168.95.1.1 Firewalling: NONE User Control: no Accept these settings and adjust configuration files (y/n)? 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 這個網(wǎng)絡(luò)接口的配置文件案; # resolv.conf :這個檔案會被備份后,然后以剛剛我們上面輸入的 DNS 數(shù)據(jù)取代; # pap-secrets, chap-secrets:我們輸入的密碼就放在這里! |
啟動 ADSL 的方法很多,通常鳥哥都是使用 /etc/init.d/network restart 即可處理!不過,如果發(fā)生一些不明的錯誤, 也可以使用 pppoe-stop 關(guān)閉后再以 pppoe-start 立即啟動撥接試看看。
通常比較容易出問題的地方在于硬件的聯(lián)機(jī)情況,請先確認(rèn)所有的硬件聯(lián)機(jī)沒有問題喔! 通常,如果你使用小烏龜 (ATU-R) 時,請使用跳線連接網(wǎng)絡(luò)卡與 ATU-R。另外一個容易出錯的地方在于輸入的賬號與密碼, 賬號與密碼都是你的 ISP 給你的,并且注意大小寫(可以到 /etc/ppp/{chap,pap}-secrets 察看一下是否設(shè)定錯誤?)
上面的步驟搞定就可以連上 Internet 了。如果擔(dān)心設(shè)定方面有問題,可以透過手動設(shè)定 IP 的那個小節(jié)的五個步驟去檢查看看, 指令分別是:
| [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 Protocolinet addr:111.255.69.90 P-t-P:168.95.98.254 Mask:255.255.255.255UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1RX packets:59 errors:0 dropped:0 overruns:0 frame:0TX packets:59 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:3RX bytes:7155 (6.9 KiB) TX bytes:8630 (8.4 KiB) |
如果你明明沒有 ADSL 聯(lián)機(jī),但是卻作了上面的動作,那么得要注意喔,因?yàn)槊看沃匦聠泳W(wǎng)絡(luò)都會花很多時間在偵測 ADSL 調(diào)制解調(diào)器上。所以啰,我們得要修改 ppp0 的配置文件才行。動作很簡單,將 /etc/sysconfig/network-scripts/ifcfg-ppp0 內(nèi)的 ONBOOT 改成 no, 然后進(jìn)行:
| [root@www ~]# vim /etc/sysconfig/network-scripts/ifcfg-ppp0 DEVICE=ppp0 ONBOOT=no ....(其他省略)....[root@www ~]# chkconfig pppoe-server off |
很快的,這樣你就已經(jīng)做好 ADSL 撥接上網(wǎng)的動作了!很快樂吧!但是不要忘記了,你的主機(jī)若還沒有更新 (update) 系統(tǒng),恐怕資安方面會有些問題哩!所以,趕緊往下兩個章節(jié)讀讀去!
4.3 無線網(wǎng)絡(luò)--以筆記本電腦為例
除了使用實(shí)體 RJ-45 線路來連接網(wǎng)絡(luò)之外,由于現(xiàn)在筆記本電腦漸漸廣為使用,因此在筆記本電腦上面的無線網(wǎng)絡(luò) (Wireless Local Area Network, WLAN) 也越來越重要啰~針對無線網(wǎng)絡(luò)所提出的標(biāo)準(zhǔn)中,早期是 IEEE 802.11b / 802.11g 較為重要,其中 802.11g 這個標(biāo)準(zhǔn)的傳輸速度已經(jīng)可以達(dá)到 54Mbps 的水平。不過,近期以來還有新的標(biāo)準(zhǔn),那就是 802.11n (注3) ,這個標(biāo)準(zhǔn)的理論傳輸速度甚至可達(dá) 300Mbps 哩!所以啰,我們也得稍微介紹一下無線網(wǎng)絡(luò)啦!
| Tips: 無線網(wǎng)絡(luò)的機(jī)制非常多,我們現(xiàn)在常聽到的主要有 Wi-Fi (可想成是 802.11 相關(guān)標(biāo)準(zhǔn)) 以及 WiMAX (802.16,?注4) 等, 在底下我們主要介紹的是目前使用較廣泛的 Wi-Fi 相關(guān)無線網(wǎng)卡喔!可不要搞錯啰! |
4.3.1 無線網(wǎng)絡(luò)所需要的硬件: AP、無線網(wǎng)卡
我們知道在 RJ-45 的以太網(wǎng)絡(luò)聯(lián)機(jī)環(huán)境中,以 switch/hub 以及網(wǎng)絡(luò)卡與網(wǎng)絡(luò)線最重要,該架構(gòu)中主要以 switch/hub 串接所有的網(wǎng)絡(luò)設(shè)備。那么在無線網(wǎng)絡(luò)中,當(dāng)然也需要一個接收訊號的裝置,那就是無線基地臺 (Wireless Access Point, 簡稱 AP)?了!另一個裝置當(dāng)然就是安裝在計(jì)算機(jī)主機(jī)上面的無線網(wǎng)卡啰!
其實(shí)無線基地臺本身就是個 IP 分享器了,他本身會有兩個接口,一個可以與外部的 IP 做溝通,另外一個則是作為 LAN 內(nèi)部其他主機(jī)的 GATEWAY 啰!那其他主機(jī)上面只要安裝了無線網(wǎng)卡,并且順利的連上 AP 后,自然就可以透過 AP 來連上 Internet 啦!整個傳輸?shù)那闆r可以用下圖來示意:
圖 4.3-1、無線網(wǎng)絡(luò)的聯(lián)機(jī)圖標(biāo)
在上圖中,我們假設(shè) PC A 與 PC B 這兩部主機(jī)都有安裝無線網(wǎng)卡,因此他們可以掃瞄到局域網(wǎng)絡(luò)內(nèi)的 AP 存在,所以可以透過這個 AP 來連上 Internet 啊。在不考慮內(nèi)部 LAN 聯(lián)機(jī)的情況下,AP 如何連上 Internet 呢?雖然每部 AP 的控制接口都不相同,不過絕大部分的 AP 都是提供 Web 接口來設(shè)定的,因此你可以參考每部 AP 的說明書來進(jìn)行設(shè)定,在這里鳥哥就不多說了。
鳥哥就以手邊有的設(shè)備來說明這個項(xiàng)目,使用的設(shè)備如下:
- AP : TP-Link (TL-WR941ND)
- USB 的無線網(wǎng)卡: D-Link (DWA-140),使用 RT3070sta 驅(qū)動程序
比較凄慘的是,CentOS 6.x 預(yù)設(shè)不支持 DWA-140 這個 USB 的無線網(wǎng)卡,因此原本我們還得要自行手動下載 USB 無線網(wǎng)卡的驅(qū)動程序才行!更怪的是,我們的核心偵測到的模塊是 rt2870sta,但實(shí)際上該硬件使用的是 rt3070sta模塊... 為了這個,搞了鳥哥兩、三天的時間去解決問題...還好,由世界上熱心的網(wǎng)友回報支持 Linux 的無線網(wǎng)卡網(wǎng)站說明,發(fā)現(xiàn)這只 USB 是支援 Linux 的喔!如下網(wǎng)址所示。而且,已經(jīng)有公司將這個網(wǎng)卡編譯成 CentOS 6.x 可以使用的 RPM 檔案啰!相關(guān)網(wǎng)址如下:
- 網(wǎng)友們熱心提供:http://linux-wless.passys.nl/query_part.php?brandname=D-Link
- 幫我們打包成 RPM 的公司:http://rpm.pbone.net/index.php3
- Ralink 官網(wǎng)的下載處:http://www.ralinktech.com/support.php?s=2
鳥哥最終由上面第二個網(wǎng)址下載的兩個檔案是:kmod-rt3070sta-2.5.0.1-2.el6.elrepo.x86_64.rpm, rt2870-firmware-22-1.el6.elrepo.noarch.rpm。鳥哥將他放置于 /root 底下,等一下再來安裝。
| Tips: 這張 USB 無線網(wǎng)卡讓鳥哥搞到一個頭兩個大!基本上,Linux 核心預(yù)設(shè)不支持的設(shè)備,建議不要購買啦! 否則很難處理!鳥哥覺得這個 DWA-140 感覺就是張惡魔卡~好怪~好難搞... |
4.3.2 關(guān)于 AP 的設(shè)定:網(wǎng)絡(luò)安全方面
如果你留心一下圖 4.3-1?,那么就可以發(fā)現(xiàn)一件事情,那就是:『如果 AP 不設(shè)定任何聯(lián)機(jī)限制,那任何擁有無線網(wǎng)卡的主機(jī)都可以透過這個 AP 連接上你的 LAN?』, 要知道,通常我們都會認(rèn)為 LAN 是信任網(wǎng)域,所以內(nèi)部是沒有防火墻的,亦即是不設(shè)防的狀態(tài),呵呵! 如果剛好有人拿著筆記本電腦經(jīng)過你的 AP 可以接收訊號的范圍,那么他就可以輕易的透過你的 AP 連接上你的 LAN ,并且可以透過你的 AP 連上 Internet ,如果他剛好是個喜歡搞破壞的 cracker , 哈哈!那么當(dāng)他使用你的 AP 去攻擊別人時,最后被發(fā)現(xiàn)的跳板是誰?當(dāng)然是你的 AP! 那是誰會吃上官司?夠清楚了吧?而且你內(nèi)部主機(jī)的數(shù)據(jù)也很有可能被竊取啊!
所以啦,『無線網(wǎng)絡(luò)的安全性一定是具有很大的漏洞的』,沒辦法, 因?yàn)闊o線網(wǎng)絡(luò)的傳輸并不是透過實(shí)體的網(wǎng)絡(luò)線,而是透過無線訊號,實(shí)體網(wǎng)絡(luò)線很好控制,無線訊號你如何偵測啊?對吧! 因此,請你務(wù)必在你的 AP 上面進(jìn)行好聯(lián)機(jī)的限制設(shè)定,一般可以這樣做限制的:
- 在 AP 上面使用網(wǎng)卡卡號 (MAC) 來作為是否可以存取 AP 的限制:
如此一來,就只有你允許的網(wǎng)絡(luò)卡才能夠存取你的 AP ,當(dāng)然會安全不少。不過這個方法有個問題, 那就是當(dāng)有其他主機(jī)想要透過這個 AP 聯(lián)機(jī)時,你就得要手動的登入 AP 去進(jìn)行 MAC 的設(shè)定, 在經(jīng)常有變動性裝置的環(huán)境中 (例如公司行號或?qū)W校),這個方法比較麻煩~
- 設(shè)定你的 AP 聯(lián)機(jī)加密機(jī)制與密鑰:
另一個比較可行的辦法就是設(shè)定聯(lián)機(jī)時所需要的驗(yàn)證密鑰!這個密鑰不但可以在網(wǎng)絡(luò)聯(lián)機(jī)的數(shù)據(jù)當(dāng)中加密,使得即使你的數(shù)據(jù)被竊聽, 對方也是僅能得到一堆亂碼,同時由于 client 端也需要知道密鑰并且在聯(lián)機(jī)階段輸入密鑰, 因此也可以被用來限制可聯(lián)機(jī)的用戶啊!
當(dāng)然,上面兩種方法你可以同時設(shè)定,亦即不但需要聯(lián)機(jī)的密鑰,而且在 AP 處也設(shè)定能夠存取的 MAC 網(wǎng)卡, 嘿嘿!這樣一來,就更安全的多了(注5)。底下讓我們來介紹一下 AP 里面經(jīng)常要了解的數(shù)據(jù), 那就是 ESSID/SSID 啰!
-
關(guān)于 ESSID/SSID :
想一想,如果你有兩部 AP 在同一個局域網(wǎng)絡(luò)內(nèi),那么請問一下,當(dāng)你的無線網(wǎng)卡在上網(wǎng)時,他會透過哪一個 AP 聯(lián)機(jī)出去呢?很困擾,對吧!其實(shí)每部 AP 都會有一個聯(lián)機(jī)的名字,那就是 SSID 或 ESSID,這個 SSID 可以提供給 client 端, 當(dāng) client 端需要進(jìn)行無線聯(lián)機(jī)時,他必須要說明他要利用哪一部 AP ,那個 ESSID 就是那時需要輸入的數(shù)據(jù)了!在鳥哥的案例當(dāng)中,我將我的 AP 設(shè)定為 vbird_tsai 這個名字, 并且給予一個密鑰密碼,設(shè)定的方法如同下圖所示:
圖 4.3-2、無線網(wǎng)絡(luò) AP 的 SSID 設(shè)定項(xiàng)目
如上圖,在登入了 AP 的設(shè)定項(xiàng)目后,依序 (1)先選擇無線網(wǎng)絡(luò)里面的『無線網(wǎng)絡(luò)設(shè)定』,然后在右邊的窗口當(dāng)中 (2)填寫正確的 SSID 號碼,然后按下 (3)儲存即可。之后就是密碼項(xiàng)目啦!密碼項(xiàng)目的設(shè)定畫面如下:
圖 4.3-3、無線網(wǎng)絡(luò) AP 的密鑰設(shè)定項(xiàng)目
我們先選擇 (1)無線網(wǎng)絡(luò)加密設(shè)定,然后在右邊窗口 (2)點(diǎn)選 WPA-PSK/WPA2-PSK 的加密方式,然后 (3)輸入加密的密鑰長度,鳥哥這里填寫的算是簡單到爆炸的密碼,小朋友不要學(xué)喔!填完后按下儲存即可。 這個時候我們就會有底下兩個數(shù)據(jù):
- SSID: vbird_tsai
- 密鑰密碼: 123456789aaa
這僅是個范例說明! AP 設(shè)定就到此為止,如果您的設(shè)定有不同的地方,請自行查詢您 AP 的操作手冊呦!
4.3.3 利用無線網(wǎng)卡開始聯(lián)機(jī)
無線網(wǎng)卡有很多模式,鳥哥選擇的是 USB 無線網(wǎng)卡,所以想要知道有沒有捉到這張網(wǎng)卡,就得要使用 lsusb 來檢查, 如果核心預(yù)設(shè)不支持,還得要自行編譯驅(qū)動程序才行!如前所述,我們的驅(qū)動程序已經(jīng)捉在 /root 底下了!
使用 USB 無線網(wǎng)卡的檢查方式如下:
| [root@www ~]# lsusb Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 003: ID 07d1:3c0a D-Link System DWA-140 RangeBooster N Adapter(rev.B2) [Ralink RT2870] Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub # 是有捉到的!只是,有加載嗎?不知道呢!繼續(xù)往下檢查看看! |
知道核心偵測到這張網(wǎng)卡,但是能不能正確的加載模塊呢?來瞧瞧:
| [root@www ~]# iwconfig lo no wireless extensions. eth0 no wireless extensions. # 要出現(xiàn)名為 wlan0 之類的網(wǎng)卡才是有捉到喔!所以沒有加載正確模塊啦! |
| [root@www ~]# rpm -ivh kmod-rt3070sta* rt2870-firmware* # 這個動作會進(jìn)行很久,似乎程序在偵測硬件的樣子! # 這個咚咚做完之后,請將 USB 網(wǎng)卡插入 USB 插槽吧![root@www ~]# iwconfig lo no wireless extensions. eth0 no wireless extensions. ra0 Ralink STA |
好了,接下來要干嘛?當(dāng)然是看看我們的無線網(wǎng)卡是否能夠找到 AP 啊!所以,首先我們要啟動無線網(wǎng)卡,就利用 ifconfig 即可:
| [root@www ~]# ifconfig ra0 up |
| [root@www ~]# iwlist ra0 scan ra0 Scan completed :Cell 01 - Address: 74:EA:3A:C9:EE:1AProtocol:802.11b/g/nESSID:"vbird_tsai"Mode:ManagedFrequency:2.437 GHz (Channel 6)Quality=100/100 Signal level=-45 dBm Noise level=-92 dBmEncryption key:onBit Rates:54 Mb/sIE: WPA Version 1Group Cipher : CCMPPairwise Ciphers (1) : CCMPAuthentication Suites (1) : PSKIE: IEEE 802.11i/WPA2 Version 1Group Cipher : CCMPPairwise Ciphers (1) : CCMPAuthentication Suites (1) : PSK ....(底下省略).... |
- https://wiki.archlinux.org/index.php/Rt2870
| [root@www ~]# ifconfig ra0 down && rmmod rt3070sta [root@www ~]# vim /etc/Wireless/RT2870STA/RT2870STA.dat Default CountryRegion=5 CountryRegionABand=7 CountryCode=TW <==臺灣的國碼代號! ChannelGeography=1 SSID=vbird_tsai <==你的 AP 的 ESSID 喔! NetworkType=Infra WirelessMode=9 <==與無線 AP 支持的協(xié)議有關(guān)!參考上述網(wǎng)址說明 Channel=6 <==與 CountryRegion 及偵測到的頻道有關(guān)的設(shè)定! ....(中間省略).... AuthMode=WPAPSK <==我們的 AP 提供的認(rèn)證模式 EncrypType=AES <==傳送認(rèn)證碼的加密機(jī)制啊! WPAPSK="123456780aaa" <==密鑰密碼!最好用雙引號括起來較佳! ....(底下省略).... # 鳥哥實(shí)際有修改的,就是上面有特別說明的地方,其余的地方都保留默認(rèn)值即可。 # 更奇怪的是,每次 ifconfig ra0 down 后,這個檔案會莫名其妙的修改掉 @_@[root@www ~]# modprobe rt3070sta && ifconfig ra0 up [root@www ~]# iwconfig ra0 ra0 Ralink STA ESSID:"vbird_tsai" Nickname:"RT2870STA"Mode:Auto Frequency=2.437 GHz Access Point: 74:EA:3A:C9:EE:1ABit Rate=1 Mb/sRTS thr:off Fragment thr:offEncryption key:offLink Quality=100/100 Signal level:-37 dBm Noise level:-37 dBmRx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0Tx excessive retries:0 Invalid misc:0 Missed beacon:0 |
因?yàn)槲覀兊木W(wǎng)絡(luò)卡使用的代號是 ra0,所以也是需要在 /etc/sysconfig/network-scripts 設(shè)定好相對應(yīng)的檔案才行啊!而由于我們的這塊卡其實(shí)是無線網(wǎng)卡, 所以很多設(shè)定值都與原本的以太網(wǎng)絡(luò)卡不同,詳細(xì)的各項(xiàng)變量設(shè)定你可以自行參考一下底下的檔案:
- /etc/sysconfig/network-scripts/ifup-wireless
至于我的網(wǎng)絡(luò)卡設(shè)定是這樣的:
| [root@www ~]# cd /etc/sysconfig/network-scripts [root@www network-scripts]# vim ifcfg-ra0 DEVICE=ra0 BOOTPROTO=dhcp ONBOOT=no <== 若需要每次都自動啟動,改成 yes 即可! ESSID=vbird_tsai RATE=54M <== 可以嚴(yán)格指定傳輸?shù)乃俾?#xff0c;要與上面 iwconfig 相同,單位 b/s |
| Tips: 其實(shí)上面那個配置文件的內(nèi)容都是在規(guī)劃出 iwconfig 的參數(shù)而已,所以你除了可以查閱 ifup-wireless 的內(nèi)容外,可以 man iwconfig ,會知道的更詳細(xì)喔!而最重要的參數(shù)當(dāng)然就是 ESSID 及 KEY 啰! ^_^ |
要啟動就用 ifup wlan0 來啟動,很簡單啦!要觀察就用 iwconfig 及 ifconfig 分別觀察,底下你自己瞧瞧就好啊! ^_^
| [root@www ~]# ifup ra0 Determining IP information for ra0... done. |
整個流程就是這么簡單喔!一般來說,目前比較常見的筆記本電腦內(nèi)建的 Intel 無線網(wǎng)絡(luò)模塊 (Centrino) 適用于 Linux 的 ipw2200/ipw21000 模塊,所以設(shè)定上也是很快!因?yàn)?CentOS 6.x 預(yù)設(shè)就有支持,你不必重新安裝無線網(wǎng)卡驅(qū)動程序! 那直接透過上述的方式來處理你的無線網(wǎng)絡(luò)即可!很快速又方便吧!本章結(jié)尾的參考數(shù)據(jù)處, 鳥哥還是列出許多與無線網(wǎng)卡有關(guān)的連結(jié),你可以自行前往查閱與你的無線網(wǎng)卡有關(guān)的信息喔(注6)! ^_^
4.4 常見問題說明
其實(shí)這個小節(jié)也很重要的!因?yàn)榭梢宰屇阍谀钔昀碚摵?#xff0c;了解一下如何利用那些概念來查詢你的網(wǎng)絡(luò)設(shè)定問題喔! 底下我們就針對幾個常見的問題來說說看吧!
4.4.1 內(nèi)部網(wǎng)域使用某些聯(lián)機(jī)服務(wù)(如 FTP, POP3)所遇到的聯(lián)機(jī)延遲問題
你或許曾經(jīng)聽過這樣的問題:『我在我的內(nèi)部區(qū)域網(wǎng)域內(nèi)有幾部計(jì)算機(jī), 這幾部計(jì)算機(jī)明明都是在同一個網(wǎng)域之內(nèi),而且系統(tǒng)通通沒有問題,為什么我使用 pop3 或者是 ftp 連上我的 Linux 主機(jī)會停頓好久才連上?但是連上之后,速度就又恢復(fù)正常!』
由于網(wǎng)絡(luò)在聯(lián)機(jī)時,兩部主機(jī)之間會互相詢問對方的主機(jī)名配合的 IP ,以確認(rèn)對方的身份。 在目前的因特網(wǎng)上面,我們大多使用 Domain Name System (DNS) 系統(tǒng)做為主機(jī)名與 IP 對應(yīng)的查詢,那就是我們在上面提到的 /etc/resolv.conf 檔案內(nèi)設(shè)定的 IP 由來, 如果沒有指定正確的 DNS IP 的話,那么我們就無法查詢到主機(jī)名與 IP 的對應(yīng)了。
公開的因特網(wǎng)可以這樣設(shè)定,但是如果是我們內(nèi)部網(wǎng)域的私有 IP 主機(jī)呢? 因?yàn)槭撬接?IP 的主機(jī),所以當(dāng)然無法使用 /etc/resolv.conf 的設(shè)定來查詢到這部主機(jī)的名稱啊! 那怎么辦?要知道,如果兩部主機(jī)之間無法查詢到正確的主機(jī)名與 IP 的對應(yīng), 那么將『可能』發(fā)生持續(xù)查詢主機(jī)名對應(yīng)的動作,這個動作一般需要持續(xù) 30-60 秒,因此,你的該次聯(lián)機(jī)將會持續(xù)檢查主機(jī)名 30 秒鐘,也就會造成奇怪的 delay 的情況。
這個問題最常發(fā)生在內(nèi)部的 LAN ,例如使用 192.168.1.1 的主機(jī)聯(lián)機(jī)到 192.168.1.2 的主機(jī)。 這個問題雖然可以透過修改軟件的設(shè)定來略過主機(jī)名的檢查,但是絕大多數(shù)的軟件都是默認(rèn)啟用這個機(jī)制的, 因此,內(nèi)部主機(jī)『老是聯(lián)機(jī)時期很慢,聯(lián)機(jī)成功后速度就會恢復(fù)正常』 時,通常就是這個問題啦!尤其是在 FTP 及 POP3 等網(wǎng)絡(luò)聯(lián)機(jī)軟件上最常見。
那么如何避過這個情況?最簡單的方法就是『給予內(nèi)部的主機(jī)每部主機(jī)一個名稱與 IP 的對應(yīng)』即可。舉例來說,我們知道每部主機(jī)都有一個主機(jī)名為 localhost ,對應(yīng)到 127.0.0.1 ,為什么呢?因?yàn)檫@個 127.0.0.1 與 localhost 的對應(yīng)就被寫到 /etc/hosts 內(nèi)嘛! 當(dāng)我們需要主機(jī)名與 IP 的對應(yīng)時,系統(tǒng)就會先到 /etc/hosts 找尋對應(yīng)的設(shè)定值, 如果找不到,才會使用 /etc/resolv.conf 的設(shè)定去因特網(wǎng)找。這樣說,你明白了吧? 也就是說,只要修改了?/etc/hosts,加入每部主機(jī)與 IP 的對應(yīng), 就能夠加快主機(jī)名的檢查啰!
了解了嗎?所以說,你就要將你的 私有 IP 的計(jì)算機(jī)與計(jì)算機(jī)名稱寫入你的?/etc/hosts?當(dāng)中了!這也是為啥我們在主機(jī)名設(shè)定的地方, 特別強(qiáng)調(diào)第五個檢查步驟的緣故。我們來看一看 /etc/hosts 原本的設(shè)定內(nèi)容吧!
| [root@www ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost # 主機(jī)的 IP 主機(jī)的名稱 主機(jī)的別名 |
在上面的情況中很容易就發(fā)現(xiàn)了設(shè)定的方法了吧!很簡單吧!沒錯!那就是 IP 對應(yīng)主機(jī)名啦! 那么現(xiàn)在知道為什么我們給他 ping localhost 的時候,地址會寫出 127.0.0.1 了吧! 那就是寫在這個檔案中的啦!而且 localhost 那一行不能拿掉呦! 否則系統(tǒng)的某些服務(wù)可能就會無法被啟動!好了!那么將我局域網(wǎng)絡(luò)內(nèi)的所有的計(jì)算機(jī) IP 都給他寫進(jìn)去!并且,每一部給他取一個你喜歡的名字,?即使與 client 的計(jì)算機(jī)名稱設(shè)定不同也沒關(guān)系啦! 以鳥哥為例,如果我還額外加設(shè)了 DHCP 的時候,那么我就干脆將所有的 C Class 的所有網(wǎng)段全部給他寫入 /etc/hosts 當(dāng)中,有點(diǎn)像底下這樣:
| [root@www ~]# vim /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.1.1 linux001 192.168.1.2 linux002 192.168.1.3 linux003 ......... ......... 192.168.1.254 linux254 |
如此一來,不論我哪一部計(jì)算機(jī)連上來,不論是在同一個網(wǎng)段的哪一個 IP , 我都可以很快速的追查到!嘿嘿!那么區(qū)內(nèi)網(wǎng)絡(luò)互連的時候,就不會多等個好幾時秒鐘啰!
4.4.2 網(wǎng)址列無法解析問題
很多朋友常問的一個問題『咦!我可以撥接上網(wǎng)了,也可以 ping 到奇摩雅虎的 IP ,但為何就是無法直接以網(wǎng)址連上 Internet 呢!』嘿!被氣死! 前面不是一直強(qiáng)調(diào)那個 DNS 解析的問題嗎?對啦!就是名稱解析不對啦!趕快改一下 /etc/resolv.conf 這個檔案吧!改成上層 ISP 給你的 DNS 主機(jī)的 IP 就可以啦!例如 Hinet 的 168.95.1.1 及 Seednet 的 139.175.10.20 啰!例如底下的范例(這個范例就可以照抄了! ^_^):
| [root@www ~]# vi /etc/resolv.conf nameserver 168.95.1.1 nameserver 139.175.10.20 |
朋友們常常會在這個地方寫錯,因?yàn)楹芏鄷隙颊f這里要設(shè)定成為 NAT 主機(jī)的 IP , 那根本就是不對的!你應(yīng)該要將所有管理的計(jì)算機(jī)內(nèi),關(guān)于 DNS 的設(shè)定都直接使用上面的設(shè)定值即可! 除非你的上層環(huán)境有使用防火墻,那才另外考慮!
4.4.3 預(yù)設(shè)路由的問題
記得我們在前兩章提到的網(wǎng)絡(luò)基礎(chǔ)當(dāng)中,不是講了很多預(yù)設(shè)路由 (default gateway) 相關(guān)的說明嗎? 預(yù)設(shè)路由通常僅有一個,用來做為同一網(wǎng)域的其他主機(jī)傳遞非本網(wǎng)域的封包網(wǎng)關(guān)。 但我們也知道在每個網(wǎng)絡(luò)配置文件案 (/etc/sysconfig/network-scripts/ifcfg-ethx) 內(nèi)部都可以指定『 GATEWAY 』這個參數(shù),若這個參數(shù)重復(fù)設(shè)定的話,那可就麻煩啦!
舉例來說,你的 ifcfg-eth0 用來做為內(nèi)部網(wǎng)域的溝通,所以你在該檔案內(nèi)設(shè)定 GATEWAY 為你自己的 IP , 但是該主機(jī)為使用 ADSL 撥接,所以當(dāng)撥接成功后會產(chǎn)生一個 ppp0 的接口,這個 ppp0 接口也有自己的 default gateway ,好了,那么當(dāng)你要將封包傳送到 Yahoo 這個非為本網(wǎng)域的主機(jī)時, 這個封包是要傳到 eth0 還是 ppp0 呢?因?yàn)閮蓚€都有 default gateway 啊!
沒錯!很多朋友就是這里搞不懂啦!常常會錯亂~所以,請注意,?你的 default gateway 應(yīng)該只能有一個, 如果是撥接,請不要在 ifcfg-eth0 當(dāng)中指定 GATEWAY或 GATEWAYDEV 等變量,重要重要!
更多的網(wǎng)絡(luò)除錯請參考后續(xù)第六章 Linux 網(wǎng)絡(luò)偵錯的說明。
4.5 重點(diǎn)回顧
- Linux 以太網(wǎng)絡(luò)卡的默認(rèn)代號為 eth0, eth1 等等, 無線網(wǎng)卡則為 wlan0, ra0 等等;
- 若需要自行編譯網(wǎng)卡驅(qū)動程序時,則你必須要先安裝 gcc, make, kernel-header 等軟件。
- 內(nèi)部網(wǎng)域的私有 IP 之主機(jī)的『 IP 與主機(jī)名的對應(yīng)』,最好還是寫入 /etc/hosts , 可以克服很多軟件的 IP 反查所花費(fèi)的等待時間。
- IP 參數(shù)設(shè)定在 /etc/sysconfig/network-scripts/ifcfg-eth0 當(dāng)中,主機(jī)名設(shè)定在 /etc/sysconfig/network 當(dāng)中,DNS 設(shè)定在 /etc/resolv.conf 當(dāng)中,主機(jī)名與 IP 的對應(yīng)設(shè)定在 /etc/hosts;
- 在 GATEWAY 這個參數(shù)的設(shè)定上面,務(wù)必檢查妥當(dāng),僅設(shè)定一個 GATEWAY 即可。
- 可以使用 /etc/init.d/network restart 來重新啟動整個系統(tǒng)的網(wǎng)絡(luò)接口。
- 若使用 DHCP 協(xié)議時,則請將 GATEWAY 取消設(shè)定,避免重復(fù)出現(xiàn)多個 default gateway ,反而造成無法聯(lián)機(jī)的狀況。
- ADSL 撥接后可以產(chǎn)生一個新的實(shí)體接口,名稱為 ppp0
- 無線網(wǎng)卡與無線基地臺之間的聯(lián)機(jī)由于是透過無線接口,所以需要特別注意網(wǎng)絡(luò)安全;
- 常見的無線基地臺(AP)的聯(lián)機(jī)防護(hù),主要利用控制登入者的 MAC 或者是加上聯(lián)機(jī)加密機(jī)制的密鑰等方法;
- 設(shè)定網(wǎng)絡(luò)卡可以使用 ifconfig 這個指令,而設(shè)定無線網(wǎng)卡則需要 iwconfig ,至于掃瞄基地臺, 可以使用 iwlist 這個指令。
4.6 本章習(xí)題
- 我要如何確定我在 Linux 系統(tǒng)上面的網(wǎng)絡(luò)卡已經(jīng)被 Linux 捉到并且驅(qū)動了? 網(wǎng)絡(luò)卡能不能被捉到可以使用『 dmesg|grep eth 』來判斷,有沒有驅(qū)動則可以使用 lsmod 看看模塊有沒有加載核心!最后,以 ifconfig eth0 192.168.0.10 測試看看!
- 假設(shè)我的網(wǎng)絡(luò)參數(shù)為:IP 192.168.100.100, Netmask 255.255.255.0, 請問我要如何在 Linux 上面設(shè)定好這些網(wǎng)絡(luò)參數(shù) (未提及的網(wǎng)絡(luò)參數(shù)請自行定義!)?請使用手動與檔案設(shè)定方法分別說明。 手動設(shè)定為:『 ifconfig eth0 192.168.100.100 netmask 255.255.255.0 up 』
檔案設(shè)定為:vi /etc/sysconfig/network-scripts/ifcfg-eth0 ,內(nèi)容為:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.100.100
NETMASK=255.255.255.0
NETWORK=192.168.100.0
BROADCAST=192.168.100.255 要啟動則使用 ifup eth0 即可! - 我要將我的 Linux 主機(jī)名改名字,步驟應(yīng)該如何(更改那個檔案?如何啟用?)? Linux 主機(jī)名在 /etc/sysconfig/network 這個檔案里面的『HOSTNAME=主機(jī)名』來設(shè)定,先以 vi 來修改,改完后可以使用 /etc/init.d/network restart 不過建議直接 reboot 啟動主機(jī)名!
- /etc/resolv.conf 與 /etc/hosts 的功能為何? 以主機(jī)名尋找 IP 的方法, /etc/resolv.conf 內(nèi)填寫 DNS 主機(jī)名,至于 /etc/hosts 則直接填寫主機(jī)名對應(yīng)的 IP 即可! 其中 /etc/hosts 對于內(nèi)部私有 IP 的主機(jī)名查詢非常有幫助!
- 我使用 ADSL 撥接連上 Internet ,請問撥接成功之后,我的 Linux 上面會有幾個網(wǎng)絡(luò)接口 (假設(shè)我只有一個網(wǎng)絡(luò)卡)? 因?yàn)閾芙邮鞘褂?PPP (點(diǎn)對點(diǎn))協(xié)議,所以撥接成功后會多出一個 ppp0 的接口,此外,系統(tǒng)原本即有 eth0 及 lo 這兩個界面,所以共有三個界面。
- 一般來說,如果我撥接成功,也取得了 ppp0 這個接口,但是卻無法對外聯(lián)機(jī)成功, 你認(rèn)為應(yīng)該是哪里出了問題?該如何解決? 因?yàn)閾芙映晒α?#xff0c;表示物理對外聯(lián)機(jī)沒有問題,那么可能的問題應(yīng)該是發(fā)生在 Gateway 上面了!確認(rèn)的方法請使用 route -n 查閱路由信息,然后修訂 /etc/sysconfig/network-scripts/ifcfg-eth0 吧!
- 如果你的局域網(wǎng)絡(luò)環(huán)境內(nèi)有可以控管的無線 AP 時,請自行查出如何以 MAC 的方式管理可登入的用戶, 并將你的無線 AP 做好聯(lián)機(jī)加密的密鑰設(shè)定。 請自行測試!謝謝!
- 如果一部主機(jī)上面插了兩張相同芯片的網(wǎng)絡(luò)卡,代表兩者使用的模塊為同一個,此時可能會造成網(wǎng)卡代號的誤判; 請問你如何克服這個問題?讓網(wǎng)卡代號不會變動? 以現(xiàn)在的方法來講,其實(shí)我們可以透過指定 Hardware Address(硬件地址,通稱為 MAC) 來指定網(wǎng)卡代號與 MAC 的對應(yīng)。 這個設(shè)定值可以在 ifcfg-ethx 里面以 HWADDR 這個設(shè)定項(xiàng)目來指定的。
- 如何在 Linux 上面的文字接口搜尋你所在區(qū)域的無線 AP ? 透過直接使用『 iwlist scan 』這個指令來指定某個無線網(wǎng)卡的搜尋! 然后再以 iwconfig 來進(jìn)行網(wǎng)卡的設(shè)定即可!
- 請依序說明:如果你想要新增一塊新的網(wǎng)絡(luò)卡在你的主機(jī)上,并給予一個固定的私有 IP ,應(yīng)如何進(jìn)行?
- 先關(guān)掉主機(jī)的 power ,然后拆掉機(jī)殼,裝上網(wǎng)絡(luò)卡;
- 開機(jī)完成后,以 dmesg | grep eth 查詢是否可捉到該網(wǎng)絡(luò)卡,若無法捉到,請編譯模塊,若可捉到,找出網(wǎng)卡代號, 并且將該模塊與網(wǎng)卡代號寫入 /etc/modprobe.conf 當(dāng)中,以利未來開機(jī)時可自動達(dá)成對應(yīng);
- 利用『 ifconfig "網(wǎng)卡代號" 』來查詢 MAC 為何?
- 開始在 /etc/sysconfig/network-scripts 內(nèi)建立 ifcfg-"網(wǎng)卡代號" 檔案,同時給予 HWADDR 的對應(yīng);
- 啟動 /etc/init.d/network restart 測試是否能成功!
- 如果你想要登入某個區(qū)域的無線 AP ,你應(yīng)該向該處所至少申請哪些數(shù)據(jù)? 無線網(wǎng)絡(luò)的技術(shù)相當(dāng)多且復(fù)雜,所以需要取得的參數(shù)都不盡相同。不過,至少你還是得要取得 ESSID 以及 KEY 密碼,這樣才能夠聯(lián)機(jī)登入該 AP 當(dāng)中。
4.7 參考數(shù)據(jù)與延伸閱讀
- 注1:rp-pppoe 官方網(wǎng)站:http://www.roaringpenguin.com/pppoe/
rp-pppoe 的安裝方法:http://linux.vbird.org/linux_server/0130internet_connect/0130internet_connect.php#connect_adsl - 注2:相關(guān)的認(rèn)證說明:
chap:?http://en.wikipedia.org/wiki/Challenge-handshake_authentication_protocol
pap:?http://en.wikipedia.org/wiki/Password_authentication_protocol - 注3:802.11n 在維基百科的說明:http://en.wikipedia.org/wiki/IEEE_802.11n-2009
- 注4:Wi-Fi?http://zh.wikipedia.org/zh-tw/WiFi
WiMAX?http://zh.wikipedia.org/wiki/WiMAX?variant=zh-tw - 注5:無線網(wǎng)絡(luò)安全白皮書:http://www.cert.org.tw/document/docfile/Wireless_Security.pdf
- 注6:Intel Centrino 的無線網(wǎng)卡相關(guān)模塊信息:
http://ipw2100.sourceforge.net/,?http://ipw2200.sourceforge.net/
HP 的許多無線網(wǎng)絡(luò)的計(jì)劃鏈接:http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/
總結(jié)
以上是生活随笔為你收集整理的鸟哥的Linux私房菜(服务器)- 第四章、连上 Internet的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员面试题精选100题(63)-数组中
- 下一篇: 鸟哥的Linux私房菜(服务器)- 第五