<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 4.1 Linux 連上 Internet 前的注意事項 ## 4.1 Linux 連上 Internet 前的注意事項 由前面幾章的數據我們知道,想要連上 Internet 你得要設定一組合法的 IP 參數才可以,主要是 IP, Netmask, Gateway, DNS IP 以及主機名等。那我們也知道,其實整個主機最重要的設定,就是『先要驅動網絡卡』,否則主機連網絡卡都捉不到時, 怎么設定 IP 參數都是沒有用的,你說是吧!所以底下我們就來談一談, 你要如何確定網絡卡已經被捉到,而 Linux 主機的網絡參數又該如何設定? - - - - - - ### 4.1.1 Linux 的網絡卡 你怎么確認 Linux 有捉到網絡卡?Linux 底下的網絡卡的名稱是啥?讓我們來了解一下吧! - 認識網絡卡的裝置代號 在 Linux 里面的各項裝置幾乎都是以文件名來取代的,例如 /dev/hda 代表 IDE1 接口的第一個 master 硬盤等等。 不過,網絡卡的代號 (Network Interface Card, NIC) 卻是以模塊對應裝置名稱來代替的, 而默認的網絡卡代號為 eth0 ,第二張網絡卡則為 eth1 ,以此類推。 - 關于網絡卡的模塊 (驅動程序) 我們知道網絡卡其實是硬件,所以當然需要核心支持才能驅動他。一般來說,目前新版的 Linux distributions 默認可以支持的網絡卡芯片組數量已經很完備了,包括大廠的 3COM, Intel 以及初階的 RealTek, D-Link 等網絡卡芯片都已經被支持, 所以使用者可以很輕易的設定好他們的網絡卡。不過,萬一你的網絡卡芯片組開發商不愿意釋出開放源 (Open Source) 的硬件驅動程序,或者是該網絡卡太新了,使得 Linux 核心來不及支持時,那么你就得要透過: 1. [重新編譯較新的核心,或者是](http://linux.vbird.org/linux_basic/0540kernel.php) 2. [編譯網絡卡的核心模塊](http://linux.vbird.org/linux_basic/0540kernel.php#module) 好讓核心可以支持網絡卡這塊硬件啦!但是,重編核心或編譯網絡卡核心模塊都不是簡單的工作, 而且有時原始碼又可能無法在每部主機上面編譯成功,所以萬一你的網絡卡真的不被默認的 Linux 網絡芯片所支持,那么鳥哥真的建議直接換一塊被 Linux 支持的網絡卡吧,例如很便宜的螃蟹卡! 免得花了太多時間在硬件確認上面,劃不來的! ^\_^ 另外,其實有的時候 Linux 的默認網絡卡模塊可能無法完全 100% 的發揮網絡卡的功能的, 所以,有的時候你還是得必須要自行編譯網絡卡的模塊才行喔!當然, 那個網絡卡的模塊就得要自行由網絡卡開發商的官方網站下載了!不過,如果你的網絡卡是自行編譯安裝的, 那么每次重新安裝其他版本的核心時,你都必須要自行重新手動編譯過該模塊。 因為模塊與核心是有相關性的啊! - 觀察核心所捉到的網卡信息 假設你的網絡卡已經在主機上面,不論是內建的還是自行安插到 PCI 或 PCI-x 或 PCI-E 的接口上, 那么如何確認該網絡卡有被核心捉到呢?很簡單啊!就利用 dmesg 來查閱即可: ``` [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 ``` 從上面的第 377 及 383 這兩行,我們可以查到這部主機的兩張網絡卡都使用模塊為 e1000,而使用的芯片應該就是 Intel 的網絡卡了。此外,這個網卡的速度可達到 1000Mbps 的全雙工模式哩 (418行) !除了使用 dmesg 來查詢核心偵測硬件產生的信息外,我們也可以透過 lspci 來查詢相關的設備芯片數據喔!如下所示: ``` [root@www ~]# lspci | grep -i ethernet 00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02) ``` 請注意,鳥哥這里使用的是 Virtualbox 仿真的那部主機的環境 (請參考[第一章 1.2.2-2](http://linux.vbird.org/linux_server/0105beforeserver.php#server_target_1)),因此使用的是模擬出來的 Intel 網卡。 如果你是使用自己的實際硬件配備安裝的主機,那么應該會看到不同的芯片啦!那是正常的! - 觀察網絡卡的模塊 從剛剛的 dmesg 的輸出訊息中,我們知道鳥哥這部主機所使用的模塊是 e1000 ,那核心有順利的載入了嗎?可以利用 lsmod 去查查看。此外,這個模塊的相關信息又是如何呢?使用 modinfo 來查查看吧! ``` [root@www ~]# lsmod | grep 1000 e1000 119381 0 <==確實有載入到核心中! [root@www ~]# modinfo e1000 filename: <u>/lib/modules/2.6.32-71.29.1.el6.x86_64/kernel/drivers/net/e1000/e1000.ko</u> version: 7.3.21-k6-NAPI license: GPL description: Intel(R) PRO/1000 Network Driver .....(以下省略)..... ``` 上面輸出信息的重點在于那個檔名 (filename) 的部分!那一場串的文件名目錄,就是我們驅動程序放置的主要目錄所在。 得要注意的是,那個 2.6.32-71.29.1.el6.x86\_64 是核心版本,因此,不同的核心版本使用的驅動程序其實不一樣喔!我們才會一直強調,更改核心后, 你自己編譯的硬件驅動程序就需要重新編譯啦! 那你如何知道你的網絡卡卡號呢?很簡單啊!不管有沒有啟動你的網絡卡,都可以使用: 『 ifconfig eth0 』來查詢你的網卡卡號。如果你照著上面的信息來作, 結果發現網卡已經驅動了,恭喜你,準備到下一節去設定網絡吧!如果沒有捉到網卡呢?那就準備自己編譯網卡驅動程序吧! - - \* ### 4.1.2 編譯網卡驅動程序(Option) 一般來說,如果沒有特殊需求,鳥哥不是很建議你自己編譯網絡卡的驅動程序!為啥? 因為想到每次更新核心都得要重新編譯一次網卡驅動程序,光是想想都覺得煩~所以,沒有被 Linux 預設核心支持的網卡, 就先丟著吧! **Tips:** 鳥哥之前買了一張內建網卡的主板,該網卡并沒有被當時的 Linux 預設核心所支持,所以就得要自己編譯核心啦。因為 CentOS 很少更新核心,所以第一次編譯完畢之后就忘記有這回事了。等到過了數周有新的核心出現后,鳥哥很開心的自動升級核心, 然后遠程進行 reboot ,結果呢?沒有網卡驅動程序了啦!我的主機無法聯網,得要到主機前用 tty 登入后才能進行編譯~唉~ ![](https://box.kancloud.cn/2016-05-13_5735736501917.gif) 如果你真的很有求知欲,而且該網卡的官網有提供給 Linux 的驅動程序原始碼; 或者是你很想要某些官網提供的驅動程序才有的特殊功能;又或者是你真的很不想要再買一張額外的網卡。 此時,就得要重新編譯網絡卡的驅動程序啰。 **Tips:** 事實上,如果你要新添購硬件時,請先查閱一下硬件包裝上面是否提及支持 Linux 的字樣, 因為有些硬件廠商在推出新硬件時,常常會漏掉 Linux 驅動程序的撰寫。 如果包裝上面有提到支持的話,那么至少你會獲得官方網站所提供的驅動程序原始碼啊! ^\_^ ![](https://box.kancloud.cn/2016-05-13_5735736501917.gif) 因為我們這里使用的網絡卡是 Intel 的 82540EM Gigabit Ethernet 控制芯片,假設你需要的驅動程序得要由 Intel 官網取得最新的版本,而不要使用預設的核心所提供的版本時,那你該如何處理呢?請注意,鳥哥這個小節只是一個范例簡介, 不同的廠商推出的驅動程序安裝方式都有點不太一樣,你得要參考驅動程序的讀我檔 (READ ME) 或相關檔案來安裝才行。 此外,如果默認驅動程序已經捉到了網絡卡,鳥哥是建議使用預設的驅動程序就好了喔! 另外,由于編譯程序需要編譯程序以及核心相關信息,因此得要預安裝 gcc, make, kernel-header 等軟件才行。 但是我們選擇的安裝模式為『basic server』,這些軟件默認都沒有安裝的,所以你得要先安裝這些軟件才行。 這些軟件可以簡單的透過 yum 使用『yum groupinstall 'Development Tools'』來安裝,只可惜你并沒有網絡啊! 所以就得要透過原本光盤一個一個去處理 RPM 屬性相依的問題來解決了~很麻煩的~不然的話,就得要透過更改 yum 配置文件,使用本機檔案的類型來取得原版光盤的 yum 軟件列表啰!鳥哥這里假設你已經安裝了所需要的編譯程序了, 接下來的動作是: 1. 取得官方網站的驅動程序: 再次說明,你可以復制鳥哥的環境,透過 Virtualbox 的模擬而來。我們這里使用的是 Intel 的網卡,你可以到如下的網站去下載: - [http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&keyword='e1000-'](http://downloadcenter.intel.com/SearchResult.aspx?lang=eng&keyword=%27e1000-%27) 最后 (2011/07) 下載的版本為 8.0.30,確實比上個小節提到的版本還要新!下載的文件名為 e1000-8.0.30.tar.gz, 鳥哥將它放置于 /root 底下,然后準備來處理編譯過程吧! 2. 解壓縮與編譯: 使用 root 的身份進行如下工作吧: ``` [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 的檔案,記得看一看,這個檔案內會說明很多信息, # 包括如何編譯,以及這個模塊所支持的芯片組哩! [root@www e1000-8.0.30]# cd src [root@www src]# make install ``` 最后這個模塊會被編譯完成且安裝放置于如下的檔名: /lib/modules/$(uname -r)/kernel/drivers/net/e1000/e1000.ko。 接下來我們得要重載這個新的模塊才行呦! 3. 模塊之測試與處理 由于這個模塊已經被加載啦,所以我們得要先移除舊的模塊后,才能夠重載這個模塊。使用的方法有點像這樣: ``` # 1\. 先移除已經加載在內存中的舊模塊 [root@www ~]# rmmod e1000 # 此時已經捉到的網卡會整個消失不見!因為驅動程序被卸除了嘛! # 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: <u>8.0.30-NAPI</u> <==就是這里! license: GPL description: Intel(R) PRO/1000 Network Driver ``` 請自行與前一小節比對一下,就會發現真的捉到正確的版本啰!不過,這個模塊在下次新的核心推出后就會失效! 為什么呢?因為新核心會給一個新的驅動程序嘛!就不是你現在這個 8.0.30 的版本啰。這點還是要再次說明的。 4. 設定開機自動啟動網絡卡模塊 (Option) 如果你在開機就能夠正確的取得這個模塊的話,那么你的網卡就沒有問題啦!這個步驟是可以略過的。如果你的核心還是捉不到網卡, 那你可能得要自己處理一下模塊的對應才行。怎么處理呢?很簡單,在 /etc/modprobe.d/ 目錄下建立一個名為 ether.conf 的檔案, 內容將模塊與網卡代號鏈接在一塊即可!這樣處理: ``` [root@www ~]# vim /etc/modprobe.d/ether.conf alias eth0 e1000 alias eth1 e1000 <==因為鳥哥有兩張網卡嘛! [root@www ~]# sync; reboot ``` 為了測試一下剛剛的設定是否會生效,通常鳥哥都會嘗試一次重新啟動,然后開機完成之后觀察一下是否有正確的啟動網絡卡, 并觀察一下模塊加載的情況,如果一切都順利,那就太完美了! 5. 嘗試設定 IP 等到一切就緒之后,總得試看看這樣的網絡卡模塊是否可以順利的設定好 IP 吧? 所以我們先手動給他一個私有 IP 看看先: ``` [root@www ~]# ifconfig eth0 192.168.1.100 [root@www ~]# ifconfig eth0 Link encap:Ethernet HWaddr 08:00:27:71:85:BD inet addr:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0 ....(以下省略).... ``` 嘿嘿!真的設定妥當哩!然后利用 ping 這個指令去 ping 一下網域內的其他計算機, 看看能不能有響應,就知道你的網絡卡是否 OK 的啦!通常是沒有問題的啦! - - - - - - ### 4.1.3 Linux 網絡相關配置文件案 我們知道 TCP/IP 的重要參數主要是: IP, Netmask, Gateway, DNS IP ,而且千萬不要忘記你這部主機也應該要有主機名 (hostname)!此外,我們也知道 IP 的取得有手動設定、DHCP 處理等。那么這些參數主要是寫在哪些配置文件?如何對應呢? 底下就讓我們來處理一番! 所需網絡參數 主要配置文件檔名 重要參數IP Netmask DHCP 與否 Gateway 等 /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=網卡的代號 BOOTPROTO=是否使用 dhcp HWADDR=是否加入網卡卡號(MAC) IPADDR=就是IP地址 NETMASK=只網絡屏蔽啦 ONBOOT=要不要默認啟動此接口 GATEWAY=就是通訊閘啦 NM\_CONTROLLED=額外的網管軟件 鳥哥建議取消這個項目!主機名 /etc/sysconfig/network NETWORKING=要不要有網絡 NETWORKING\_IPV6=支持IPv6否? HOSTNAME=你的主機名DNS IP /etc/resolv.conf nameserver DNS的IP私有 IP 對應的主機名 /etc/hosts 私有IP 主機名 別名你沒有看錯,主要需要修改的就是這四個檔案而已!因此沒有很困難!大家都想太多了!詳細的設定后續小節再來講, 這里先有概念即可。除此之外,還有些檔案或許你也應該要知道一下比較好呦! - /etc/services 這個檔案則是記錄架構在 TCP/IP 上面的總總協議,包括 http, ftp, ssh, telnet 等等服務所定義的 port number ,都是這個檔案所規劃出來的。如果你想要自定義一個新的協議與 port 的對應,就得要改這個檔案了; - /etc/protocols 這個檔案則是在定義出 IP 封包協議的相關數據,包括 ICMP/TCP/UDP 這方面的封包協議的定義等。 大概知道上面這幾個檔案后,未來要修改網絡參數時,那就太簡單了!至于網絡方面的啟動指令的話,可以記得幾個簡單的指令即可喔! - /etc/init.d/network restart 這個 script 最重要!因為可以一口氣重新啟動整個網絡的參數! 他會主動的去讀取所有的網絡配置文件,所以可以很快的恢復系統默認的參數值。 - ifup eth0 (ifdown eth0) 啟動或者是關閉某張網絡接口。可以透過這個簡單的 script 來處理喔! 這兩個 script 會主動到 /etc/sysconfig/network-scripts/ 目錄下, 讀取適當的配置文件來處理啊! (例如 ifcfg-eth0)。 大概你只要只到這些基本的指令與檔案,哈哈!網絡參數的設定就太簡單啦! 不過,最好你還是要了解 [shell script](http://linux.vbird.org/linux_basic/0340bashshell-scripts.php) ,比較好!因為可以追蹤整個網絡的設定條件。 why ?這是因為每個 distributions 的設定數據可能都不太相同,不過卻都以 /etc/init.d/network 作為啟動的 script , 因此,你只要了解到該檔案的內容,很容易就追蹤得出來你的配置文件所需要的內容呢!對吧! 另外,新版的 CentOS 6.x 還有額外推出一個名稱為 NetworkManager 的軟件機制來管理網絡, 不過,鳥哥還是比較喜歡手工打造自己的網絡環境,所以很建議將該軟件關閉呢!還好,我們安裝的『basic server ([第一章的 1.2.2-2](http://linux.vbird.org/linux_server/0105beforeserver.php#server_target))』 就這么巧的沒有安裝該軟件!好佳在~^\_^ - - - - - -
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看