连上 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 。