連上 Internet
要連上 Internet 最重要的當然是要先讓你的『網路卡』可以正常工作囉!如果您是照鳥哥推薦的,使用 RLT 8139 晶片的網路卡,那您應該在安裝 Linux 的時候就已經捉到網路卡了,那真是恭喜您啦!因為您的網路卡應該已經可以正常的工作囉!那如果在安裝的時候並沒有捉到網路卡呢?該如何是好?那也不用擔心,因為您也可以事後才安裝網路卡的驅動程式呀!不過,因為 Linux 並不像 Windows 是那樣的隨插即用,所以需要動一些手術的!如果很不幸的,您使用的是比較罕見的一些晶片組網路卡,以致於在安裝 Linux 時,並無法捉到這張卡,那也不用擔心,在這裡,鳥哥提供一個奇怪的卡的安裝方法,其他的驅動程式安裝法大致上是大同小異的!這張卡的型號是:FNW-9702-T,是日本製的。
- 下載驅動程式:
你在選購網路卡的時候,只要看到是 RLT 8139 系列晶片的網路卡,則 Linux 肯定是有支援的!若是想要買雜牌的卡或是特別想要的卡(例如 D-Link 530 TX),那你就必須要注意這些卡的包裝上面是否有提及『支援 Linux 』字樣!如果有支援的話就可以買了,因為一定會有驅動程式附在上面的磁片中的,以鳥哥的 FNW-9702-T 為例,他就有附上一塊驅動程式片,裡頭有一個 linux 目錄,裡面就是安裝驅動程式的原始碼啦!如果找不到驅動程式的話,你可以到下面的網站去找找看有沒有你需要的驅動程式原始檔案,例如上面提到的 D-Link 530TX的驅動程式原始碼在這個網站中就有提供下載!
Linux Network Drivers
- 在 Linux 下編譯驅動程式模組:
下載了驅動程式原始碼之後,再來就是開始編譯了! FNW-9702-T 這塊卡的驅動程式放在軟碟的 linux 目錄下,檔名為 viarhine.c 並附上一個可執行的批次檔 trans,其實,沒有 trans 也沒有關係,只要有 viarhine.c 這個檔案就行了!(1)先將軟碟 mount 上系統,(2)然後將原始碼複製到 /tmp 目錄下,(3)開始編譯。整個指令為:
如上所示,最後一行 viarhine.c 就是你的驅動程式原始碼啦(要改成你的檔名)!而 gcc 是系統預設的 C 語言編譯程式,後面接的是編譯成 Modules 的參數,照著打就對了!這樣執行完畢之後,會在 /tmp 下產生一個名為 viarhine.o 的檔案。(當然,如果你是使用別的原始碼,則你的檔名會成為==>filename.o)
[root@tsai /root]# mount -t vfat /dev/fd0 /mnt/floppy
[root@tsai /root]# cp /mnt/floppy/linux/viarhine.c /tmp
[root@tsai /root]# cd /tmp
[root@tsai /tmp]# gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6 -c viarhine.c
- 將編譯好的模組安裝在 Linux 中:
基本上,如果你以鳥哥的系統為範例的話,會發現你的驅動程式模組都放在 /lib/modules/2.2.12-20/ 底下,而網路的驅動程式則放在:安裝的步驟是:
- /lib/modules/2.2.12-20/net/ (2.2.12-20是你的核心版本)
基本上在 /etc/conf.modules 加入上面那兩行字之後,系統就可以捉到這張網路卡了! conf.modules 有點像這樣:
- 將你剛剛編譯完成的模組放置到這個目錄來:
cp /tmp/viarhine.o /lib/modules/2.2.12-20/net/
- 然後在 /etc/conf.modules 這個檔案中,將這個模組加入!
vi /etc/conf.modules (使用 vi 修改 conf.modules 這個檔案)
alias eth0 viarhine
install viarhine insmod viarhine
上面是兩張網路卡的系統,其中,第一張網路卡的晶片是 rtl8139 而第二張網路卡的型號則是 viarhine !
alias eth0 rtl8139
alias eth1 viarhine
install viarhine insmod viarhine
- 開始於 /etc/sysconfig 中進行設定:
設定 /etc/sysconfig/network 檔案:
在設定完了上面的驅動程式後,接下來是要開始設定系統了!請先進入 /etc/sysconfig 這個目錄中,在這個目錄下有一個檔案名為 network,這是網路的基本設定檔,有點像這樣:
在上表中每個咚咚的意義為:
[root@tsai sysconfig]# more network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=tsai.adsldns.org
GATEWAY=
GATEWAYDEV=eth0而如果你改過了 network 這個檔案的時候,記得要重新啟動 network 喔,使用下列參數啟動:
- NETWORKING=yes:代表網路正在運作中,若為 no 則沒有運作網路;
- FORWARD_IPV4=yes:代表這個系統可被當作 NAT 使用;
- HOSTNAME=tsai.adsldns.org:代表這個系統主機的名稱(要改主機名稱由此改變);
- GATEWAY:這表示你的通訊閘為哪一個位址,由於我們是使用撥接的,所以一般通訊閘會自動由撥接程式所給予!然而由於我們在這個機器上使用了 NAT 技術,因此 GATEWAYDEV=eth0 就會多出這一行!
/etc/rc.d/init.d/network reload
設定 /etc/sysconfig/network-scripts/ifcfg-eth0:
接下來我們要開始設定執行檔了!在 /etc/sysconfig/network-scripts 中有很多各 ifcfg-XXX 的型式的檔案,這些就是執行檔,其中 ifcfg-lo 是每部機器都會有的內部網路系統,而由於我們剛剛設定完了驅動程式,不見得會有 ifcfg-eth0 這個檔案,你可以自己以 vi 來編輯這個檔案。如果是第一張網路卡,則為 ifcfg-eth0 ,第二張為 ifcfg-eth1 ,以此類推!
[root@tsai network-scripts]# more ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes在上面的例子中,我們以虛擬 IP 來作為示範,假定這部機器的 IP 為 192.168.1.2 ,則 BROADCAST 就是 192.168.1.255 (xxx.xxx.xxx.255),NETMASL 通常是 255.255.255.0 (與你的 IP class 有關,不過,通常我們就設成 255.255.255.0 也就是了), NETWORK 就設為 192.168.1.0 (xxx.xxx.xxx.0)。如果你的網路位址是固定的,那上面的網址就跟著改變即可!
- DEVICE=eth0:這個裝置的名稱;
- BOOTPROTO=static:使用我們給的網路名稱(若為浮動 IP 則為 dhcp )
- BROADCAST=192.168.1.255:這是節點的網域;
- IPADDR=192.168.1.2:這是這塊網路卡的位址;
- NETMASL=255.255.255.0:子遮罩網路;
- NETWORK=192.168.1.0:工作的網域;
- ONBOOT=yes:開機自動開啟網路卡。
- 啟動網路卡:
再來就是啟動網路卡啦,啟動的方式很簡單,只要輸入 ifup eth0 即可:
上表中,『 ifup 裝置』就是啟動裝置的意思,所以如果你有多張網路卡的話,就由此來設定吧!至於 ifdown 就是關閉網路卡的意思!
[root@tsai network-scripts]# ifup eth0
[root@tsai network-scripts]# ifdown eth0
- 確認網路卡正常工作:
一切工作都完成之後,當然要確認網路卡是否可以正常工作了,即使沒有連上 Internet 也沒有關係,使用了虛擬 IP 仍然可以使你的網路卡正常工作的,所以在 ifup eth0 之後,可以用 ifconfig 來視察一下你的網路情況:
正常來講,如果你尚未連上 Internet 的話,則只有 eth0, lo 兩個系統在上面!
[root@tsai network-scripts]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:20:F1:4D
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8568007 errors:0 dropped:0 overruns:0 frame:0
TX packets:8351854 errors:0 dropped:0 overruns:0 carrier:0
collisions:986 txqueuelen:100
Interrupt:10 Base address:0x6100eth1 Link encap:Ethernet HWaddr 00:80:C8:5A:87:01
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8381302 errors:0 dropped:0 overruns:0 frame:0
TX packets:8532065 errors:0 dropped:0 overruns:0 carrier:0
collisions:317 txqueuelen:100
Interrupt:9 Base address:0x6200lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:567 errors:0 dropped:0 overruns:0 frame:0
TX packets:567 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0ppp0 Link encap:Point-to-Point Protocol
inet addr:211.74.249.38 P-t-P:172.16.11.8 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:8356088 errors:0 dropped:0 overruns:0 frame:0
TX packets:8532063 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10
- 完成安裝。
確定了 網路卡 沒有問題之後,再來則是網路連線的問題了!請先確認你的網路硬體連線沒有問題,請到前面看看去。這裡先說說如果以固定制(或者是校園網路系統)的情況之下,你已經知道了你的 IP 與 gateway 的 address 的話,該如何設定以登上網路呢?『請特別注意,這是給已經知道你的 IP 與 Gateway 的情況下使用的方法,若是使用 ADSL 撥接系統上網的話,請使用下面的方法!』
- 在安裝 Linux 的時候設定:
如果你還沒有忘記安裝的步驟,並且使用的網路卡為 Linux 支援的 RTL 8139 系列晶片的話,在安裝過程中應該就已經輸入好 IP address 及 通訊閘(gateway)了!果真如此的話,當真恭喜你,因為你應該已經可以順利的連上網路了!如果沒有的話,請以以下的方法修改設定檔吧!
- 修改 /etc/sysconfig/network-scripts/ifcfg-ethX 檔案:
如果你是新增加網路卡的話,且使用的是 Linux 支援的網路晶片,那在開機過程中, Linux 會詢問你是否要輸入 IP address 、子遮罩網路以及相關的 gateway 與 DNS server 的 IP,如果沒有的話,就必須修改 network 與 ifcfg-eth0 這兩個檔案了。
以下我們假設:
- IP為 192.168.1.2;
- 子遮罩網路為 255.255.255.0;
- gateway 為 192.168.1.1;
- 慣用的 DNS server 為 139.175.10.20;
- 主機名稱設定為 test-redhat.adsldns.org
第一步:修改 network 檔案:在 /etc/config/network 這個檔案中,修改成下面的模樣:
第二步:修改 ifcfg-eth0 檔案:
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=test-redhat.adsldns.org
GATEWAY=192.168.1.1
GATEWAYDEV=在 /etc/config/network-scripts/ifcfg-eth0 這個檔案,需要修改成這個模樣:
第三步:修改 resolv.conf 檔案:
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes在 /etc/resolv.conf 這個檔案主要是用來設定你慣用的 DNS 用的,需要改成如下模樣:
search
nameserver 139.175.10.20
nameserver 139.175.55.244- 啟動:
修改完上述三個檔案之後,再來就是啟動網路啦:
啟動後在使用 ifconfig 去觀察一下你的網路情況,使用 hostname 去察看一下你的網路名稱,也可以使用 route 去看看你的路由表!
[root@tsai network-scripts]# ifup eth0
- 完成。
在 Linux 系統中,要以 ADSL 連上 Internet 是一件很簡單的事情,使用 rp-pppoe 軟體就可以進行撥接了!安裝也很方便喔!請先確認你的網路硬體連線沒有問題,請到前面看看去。再來要注意的是,目前有兩種安裝的方法,分別是使用 rpm 檔案來安裝,或者直接以 binary (*.tar.gz) 的檔案來安裝!最近在網路上大家都常常會問到,怎麼有些版本下的 Linux 無法編譯 RPM 的檔案呢?於是鳥哥就將 binary 的安裝方法順便也寫上來吧!所以,如果使用 rpm 檔案無法順利安裝 OK 的話,就直接使用 binary 的方法吧!
step 1:
[root@tsai /root]# cp rp-pppoe-2.6-1.src.rpm /usr/src/redhat/SRPMS [root@tsai /root]# cd /usr/src/redhat/SRPMS 將檔案移動至系統預設的 SRPM 的放置目錄(方便以後查詢) step 2:
step 3:
[root@tsai /root]#
rpm -q rp-pppoe
|
安裝完畢之後,會在 /usr/sbin 當中多了 adsl-start,
adsl-stop, adsl-setup, adsl-status 等檔案,至於設定檔則在 /etc/ppp
當中!如果你要詳細的看每一個指令的用法,可以使用 man
adsl-setup ....等指令名稱來觀察!我們這裡僅提供設定的方法及執行的方法!
step 1:
[root@tsai /root]# /sbin/ifdown eth0 [root@tsai /root]# /usr/sbin/adsl-setup 假設我們以第一塊網路卡連上 ADSL ,所以先斷掉 eth0 的連線! step 2:
step 3:
step 4:
step 5:
step 6:
step 7:
step 8:
>>> Accept these
settings and adjust configuration files (y/n)? y
Adjusting /etc/ppp/pppoe.conf
|
[root@tsai
network-scripts]# /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:50:FC:20:F1:4D inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:8568007 errors:0 dropped:0 overruns:0 frame:0 TX packets:8351854 errors:0 dropped:0 overruns:0 carrier:0 collisions:986 txqueuelen:100 Interrupt:10 Base address:0x6100 eth1
Link encap:Ethernet HWaddr 00:80:C8:5A:87:01
lo
Link encap:Local Loopback
ppp0
Link encap:Point-to-Point Protocol
|
[root@tsai
/root]# crontab -e
進入 iv 編輯畫面,將下面的字寫進去: 01-59/3 * *
* * root /usr/sbin/adsl-start
|
如果再懶一點的話,請直接在 /etc/cron.hourly 這個目錄之下執行:
[root@tsai
cron.hourly]# echo /usr/sbin/adsl-start > adsl-start.sh
將 /usr/sbin/adsl-start 這個指令寫進去 adsl-start.sh 這個檔案中; [root@tsai cron.hourly]#
chmod 744 adsl-start.sh
|
由於 /etc/cron.hourly 是系統預設的每小時均要執行的檔案夾,所以你將 adsl-start.sh 放置在這個資料夾中,則每小時系統會自動的執行這個指令一次喔!
[root@tsai
root]# mv rp-pppoe-2.8.tar.gz /usr/local/src/
[root@tsai root]# cd /usr/local/src [root@tsai src]# tar -zxvf rp-pppoe-2.8.tar.gz [root@tsai src]# cd rp-pppoe-2.8 上面的指令只是在解壓縮罷了,有概念的玩家不用照作! [root@tsai rp-pppoe-2.8]#
./configure --prefix=/usr/local
[root@tsai rp-pppoe-2.8]#
make; make install
|
[root@tsai
root]# vi .bashrc
PATH="/usr/local/bin:/usr/local/sbin:/usr/local/snmp/sbin:/usr/local/snmp/bin:/usr/local/squid/bin:/bin:/sbin:/usr/bin:/usr/sbin"
[root@tsai root]# source /root/.bashrc |
其實你也可以使用 userconf 這個圖形介面的網路設定程式來設定你的網路,基本上他的設定與我們手動的設定差不多的,有興趣的話你可以連線到 study-area 這裡看看,以下節錄出一些片段:
- 您可以在文字模式下(不是在 X Window 裡面)輸入﹕netconf
- 然後選擇﹕Basic host information
- 按 Enter 之後﹐在Host name 那裡輸入您的機器名稱﹐如﹕redhat52.siyongc.domain
- 然後按向下的方向鍵(不要用 Tab 鍵)﹐跳到Config mode那裡﹐選擇 Enable 和 Manual。至於 Dhcp 和 Bootp﹐除非您確定網路上面有提供這個兩種服務﹐否則不要選擇。這裡的 Menual 是使用靜態 IP 的意思。
- 然後是Primary name + domain﹐其格式是﹕“機器名稱.網域名稱”﹐如﹕redhat52.siyongc.domain
- 在Aliases (opt) 裡面輸入機器的別名﹐我這裡使用﹕redhat52。這樣﹐如果您嫌機器名稱太長大話﹐就可以使用別名來代替機器全稱了。例如執行 ping redhat52.siyongc.domain 和 ping redhat52 是一樣的。
- 再來是IP address和Netmask﹐如﹕192.168.0.17/255.255.255.0﹐這對寶貝通常都要同時指定。如果您不清楚怎麼設定 IP 和 Mask﹐請到“網路基礎”中的“IP基礎”看看。
- 再下來是Net device﹐我們先從第一張網路卡開始﹕eth0。‘eth’就是Ethernet 的意思﹐這是我們最常見的網路類型了。而通常電腦設備都是從 0 開始排列的﹐所以 eth0 就是裝在本機的第一張 ethernet 網路卡。
- 如果您使用的網路卡是 NE2000 兼容 PCI 網路卡﹐在 Kernel module 那裡輸入 ne2k-pci 。假如您是按上面的例子裝的NE2000 兼容卡﹐則改為 ne 。無論如何﹐您必須知道您的網路卡使用什麼 module。您可以在 /lib/modules/`uname -r`/ 下面的 net 和 pcmcia 這兩個目錄中找到各種網路卡的 module。
- 如果您使用 PCI 或 pcmcia 網路卡﹐您應該不用理會I/O port (opt) 和 Irq (opt) 這個兩項。不過﹐如果您確切知道設備使用的資源是什麼﹐倒也可以指定的﹐尤其在多網路卡的情況下。
- 如果您繼續按向下的方向鍵﹐則可以設定其他的網路卡了﹐其設定項目都是一樣的。
- 當所有設備設定好之後﹐您可以按 ‘Tab’鍵跳到“Accept”鍵﹐然後按 Enter 回到上一級畫面。
- 然後按方向鍵選擇“Name serve specification (DNS)”﹐再按 Enter 。
- 首先在DNS usage那裡確定 DNS is required for normal operation 被選擇了。
- 然後輸入default domain﹐我這裡是 siyongc.domain。
- 然後是nameserver 1﹐因為我打算用本機架設 DNS 伺服器的﹐所以輸入本機 IP 地址﹕192.168.0.17 。
- 接著是nameserver 2 (opt)﹐您可以考慮將上游網路的 DNS 伺服器放這了﹐如您的 ISP 提供的 DNS。
- 如果您知道您可能還需要其他的 DNS 伺服器﹐可以將之放在nameserver 3 (opt) 那裡。
- 再來是指定 search domain 1 (opt)﹐這裡可以考慮您的上游 domain 名稱。
- 如果您的網路還連接到其他的網路去掉話﹐可以分別將之放進search domain 2 3 4.... (opt)中去。
- 如果都設定好了﹐請按Accept 鍵回到上一級畫面。
- 進入Routing and gateways﹐如果您的機器通過 router 連接上游網路的話﹐可以將預設網關寫進Default gateway裡面。假如您的機器本身用來做 router 的話﹐則指向自己的 IP 地址﹐同時將 Enable routing 選擇。不過﹐如果您只是使用接撥連線到 ISP 的話﹐則不指定任何 Default gateway。
- 完成之後按Accept。
- 如果您的網路還連接到其他網路的話﹐請一一在orther routes to networks 及其他項目指定好。如果您對 routing 設定(這非常重要)不是很清楚﹐請參考“網路基礎”。
- 至於其他項目﹐暫時不用設定。等以後講到該題目了再回來設定。
- 然後選擇Quit 。
- 如果您要設定馬上生效﹐選擇Active the changes然後 Enter。否則跳到 Quit 。