4连上 Internet.docx
- 文档编号:11339766
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:44
- 大小:379.87KB
4连上 Internet.docx
《4连上 Internet.docx》由会员分享,可在线阅读,更多相关《4连上 Internet.docx(44页珍藏版)》请在冰点文库上搜索。
4连上Internet
连上Internet2
Linux连上Internet前的注意事项:
2
Linux的网络卡2
编译网络卡驱动程序4
解压缩与编译:
5
模块之测试与处理6
设定开机自动启动网络卡模块7
尝试设定IP7
Linux网络相关设定档案8
连上Internet的方法:
9
固定IP上网方式10
修改主机名称:
/etc/sysconfig/network10
设定网络参数:
/etc/sysconfig/network-scripts/ifcfg-eth011
启动与关闭网卡12
设定DNS的IP:
/etc/resolv.conf13
可自动取得IP的环境14
ADSL拨接上网15
这张网络卡(假设是eth0)有接内部网络(LAN)15
没有内部网域16
无线网络--以笔记型计算机为例21
无线网络所需要的硬件21
网络安全方面22
关于ESSID/SSID:
23
开始联机25
取得驱动程序并实际安装:
25
测试模块,并且对应网络卡与模块:
(modprobe与iwconfig)27
利用iwlist侦测AP:
28
设定网络卡设定文件(ifcfg-ethn)29
启动与观察无线网卡29
常见问题说明30
内部网域使用某些联机服务(如FTP,POP3)所遇到的联机延迟问题30
网址列无法解析问题32
预设路由的问题32
重点回顾33
课后练习33
连上Internet
呼呼!
终于要来到修改Linux网络参数的章节了!
在前面的网络基础章节内我们知道了主机要连上Internet需要一些正确的网络参数设定,这些设定在Windows系统上面的修改则在局域网络的架构里面进行了说明。
在这一章当中,我们则主要以固定IP的设定方式来修改Linux的网络参数,同时,也会介绍如何使用ADSL的拨接方式来上网,此外,因为Cablemodem使用者也不在少数,所以我们也说明一下Cablemodem在Linux下的设定方式喔!
最后,由于笔记型计算机使用者大增,由于笔记型计算机常使用无线网络,因此本文也加入了无线网络的联机介绍啊!
Linux连上Internet前的注意事项:
要连上Internet时,由前几章的数据来说,我们知道需要设定一组网络参数,包括IP,netmask,network,broadcast,gateway以及DNS主机的IP等等,那我们也知道,其实整个主机最重要的设定,就是『先要驱动网络卡』,否则主机连网络卡都捉不到时,怎么设定IP参数都是没有用的,您说是吧!
所以底下我们就来谈一谈,您要如何确定网络卡已经被捉到,而Linux主机的网络参数又该如何设定?
Linux的网络卡
在Linux里面的各项装置几乎都是以文件名称来取代的,例如/dev/hda代表IDE1接口的第一个master硬盘等等。
不过,网络卡的代号(NetworkInterfaceCard,NIC)却是以模块对应装置名称来代替的,而预设的网络卡代号为eth0,第二张网络卡则为eth1,以此类推。
我们知道网络卡其实是硬件,所以当然需要核心支持才能驱动他。
一般来说,目前新版的Linuxdistributions预设可以支持的网络卡芯片组数量已经很完备了,包括大厂的3COM,Intel以及初阶的RealTek,D-Link等网络卡芯片都已经被支持,所以使用者可以很轻易的设定好他们的网络卡。
不过,万一您的网络卡芯片组开发商不愿意释出开放源(OpenSource)的硬件驱动程序,或者是该网络卡太新了,使得Linux核心来不及支持时,那么您就得要透过:
重新编译核心
编译网络卡的核心模块
好让核心可以支持网络卡这块硬件啦!
但是,重编核心或编译网络卡核心模块都不是简单的工作,而且有时原始码又可能无法在每部主机上面编译成功,所以万一您的网络卡真的不被预设的Linux网络芯片所支持,那么鸟哥真的建议直接换一块被Linux支持的网络卡吧,例如很便宜的螃蟹卡!
免得花了太多时间在硬件确认上面,划不来的!
^_^
如果您是照鸟哥推荐的,使用RLT8139芯片(RealTek8139)的网络卡(就是螃蟹卡),那您应该在安装Linux的时候就已经捉到网络卡了,那真是恭喜您啦!
因为您的网络卡应该已经可以正常的工作啰!
那如果在安装的时候并没有捉到网络卡呢?
该如何是好?
那也不用担心,因为您也可以事后才安装网络卡的驱动程序呀!
不过,因为Linux并不像Windows是那样的随插即用,所以需要动一些手术的!
另外,其实有的时候Linux的预设网络卡模块可能无法完全100%的发挥网络卡的功能的,所以,有的时候您还是得必须要自行编译网络卡的模块才行喔!
当然,那个网络卡的模块就得要自行由网络卡开发商的官方网站下载了!
不过,如果您的网络卡是自行编译安装的,那么每次重新安装其它版本的核心时,您都必须要自行重新手动编译过该模块。
因为模块与核心是有相关性的啊!
好了,假设您的网络卡已经在主机上面,不论是内建的还是自行安插到PCI或PCI-x或PCI-E的接口上,那么如何确认该网络卡有被核心捉到呢?
很简单啊!
就利用dmesg来查阅即可:
[root@linux~]#dmesg|grep-ineth
117:
divert:
notallocatingdivert_blkfornon-ethernetdevicelo
171:
divert:
allocatingdivert_blkforeth0
227:
divert:
notallocatingdivert_blkfornon-ethernetdevicesit0
228:
eth0:
noIPv6routerspresent
[root@linux~]#dmesg|cat-n|less
#...前面省略...
1693c59x:
DonaldBeckerandothers.
1700000:
00:
08.0:
3ComPCI3c905CTornadoat0xe800.VersLK1.1.19
171divert:
allocatingdivert_blkforeth0
#...后面省略...
透过这个dmesg可以发现系统在开机时确实有捉到网络卡,然后透过搜寻行号,就能够找到该网络卡的驱动模块;当然,您也可以透过lspci来查阅网络卡的相关模块吶!
另外,您也可以透过这个dmesg了解到该张网络卡的代号喔!
举例来说,鸟哥上面这个讯息就显示:
我的这张网络卡代号是eth0
[root@linux~]#lspci
00:
08.0Ethernetcontroller:
3ComCorporation3c905C-TX/TX-M[Tornado](rev74)
看到了吧?
鸟哥的某一部主机就是使用3Com的网络卡啊!
Linux系统本身就内建了3c905C这个驱动程序,所以鸟哥根本不需要自行安装驱动程序吶!
真是高兴!
^_^那么这个3c905的驱动程序放在哪里啊?
就是核心模块啊!
在这个地方:
[root@linux~]#cd/lib/modules/`uname-r`/kernel/drivers/net
[root@linuxnet]#modinfo3c59x.ko
filename:
3c59x.ko
author:
DonaldBecker
description:
3Com3c59x/3c9xxethernetdriverLK1.1.1910Nov2002
license:
GPL
version:
LK1.1.19DBFD1C112761D573276AC45
parm:
debug:
3c59xdebuglevel(0-6)
.....以下省略.....
你可以先以lsmod查询各个相关的模块后,再到这个地方来检查,或者是直接以上面这个目录下的档案,配合lsmod所显示出来的各个模块名称相对应,以取得各个网络卡的模块名称说!
这样了解吗?
OK那你如何知道你的网络卡卡号呢?
很简单啊!
不管有没有启动你的网络卡,都可以使用:
『ifconfigeth0』来查询你的网卡卡号。
如果网络卡已经安装好了,那么请前往固定IP上网方式去设定ifcfg-eth0这个档案(如果是新增的网卡,这个档案可能不会存在喔!
,需要自己建立)。
好了,万一你的网络卡无法被驱动,不过好在官方有提供相关的原始码时,您就可以自行编译啦!
编译网络卡驱动程序
如果你买到的网络卡实在太新,导致Linux预设核心不支持,或者您实在是很想要一些官方网站提供的驱动程序的新功能,那实在就得要自行编译核心啦!
事实上,如果您要新添购硬件时,请先查阅一下硬件包装上面是否提及支持Linux的字样,因为有些硬件厂商在推出新硬件时,常常会漏掉Linux驱动程序的撰写,如果包装上面有提到支持的话,那么至少您会获得官方网站所提供的驱动程序原始码啊!
^_^
鸟哥以我们实验室内一部P-4内建Gigabit以太网络卡的CentOSLinux系统来作介绍,这部主机的内建以太网络使用的是Marvell的88E8001芯片,鸟哥到他们网站上面找到了一个2006/04释出的最新驱动程序来安装,该原始的文件名称为install-8_40.tar.bz2,看到.tar.bz2就应该知道他是属于原始码,虽然鸟哥这部主机已经正确的捉到网络卡了,不过,我们还是来更新一下让这个模块成为最新的驱动程序吧!
^_^
另外,记得啊,要编译就得要有gcc,make,kernel-devel等套件才行喔!
不要说你忘了!
赶紧回到基础篇里面看看先!
假设您已经:
前往官方网站取得驱动程序的原始码了;
已经在您的系统上面安装了gcc,make,kernel-devel等套件;
那接下来的编译步骤是这样的:
解压缩与编译:
假设您下载下来的档案放置在/root内的话,那么使用root的身份进行如下工作吧:
[root@linux~]#cd/usr/src
[root@linuxsrc]#ln-skernels/2.6.9-34.0.1.EL-smp-i686/linux
[root@linuxsrc]#cd~
上面这个步骤很重要!
因为驱动程序的模块都会需要找到核心的包含档案与相关函式库,而一般来说,Linuxkernel2.6以后的版本,则都会预设将核心原始码放在/usr/src/kernels/(version)这个目录内,但一般程序却是假设核心原始码在/usr/src/linux,因此我们必须要先作个手术,将原始码与/usr/src/linux作个连结啊!
请注意,那个原始码请依照您的核心版本与Linuxdistribution之公布为准。
[root@linux~]#tar-jxvfinstall-8_40.tar.bz2
[root@linux~]#cdDriverInstall
#此时在该目录下有个README的档案,记得看一看,这个档案内会说明很多信息,
#包括如何编译,以及这个模块所支持的芯片组哩!
[root@linuxDriverInstall]#./install.sh
这个模块写的比较人性化,因为他有给予一个可直接安装测试的script,所以我们可以直接执行这个指令即可,很单纯吧!
^_^。
不过记得,这些动作请在主机前进行。
因为这个script会主动的重新启动网络卡喔!
所以如果你是在网络上联机到此主机上面动作的话,嘿嘿!
那可是会失败的!
这个指令会有很多的选项在里面,请依序选择:
1)installation
y(install)
然后这个script便会主动的进行编译、模块卸除以及模块安装到/lib/modules/`uname-r`/kernel/drivers/net这个目录中,并且尝试加载这个模块,以及启动网络卡喔!
如果一切无误,您就会看到如下画面:
eth0:
networkconnectionupusingportA
speed:
1000
autonegotiation:
yes
duplexmode:
full
flowctrl:
symmetric
role:
slave
irqmoderation:
disabled
scatter-gather:
enabled
tx-checksum:
enabled
rx-checksum:
enabled
rx-polling:
enabled
这样就算安装妥当啰!
很简单吧!
^_^
模块之测试与处理
事实上,刚刚我们那个模块其实已经主动的加载到我们的系统当中了,不过,如果您所取得的原始码并没有附上这么一支人性化的script的话,那么您就得要自行进行底下的动作了。
[root@linux~]#ls-l
drwxr-xr-x2rootroot4096Jul2011:
57sk98lin
[root@linux~]#ls-lsk98lin
-rw-r--r--1rootroot2666344Jul2011:
57sk98lin.ko
#上面那个目录假设是我编译出来的模块,里面还会有一个档案喔!
那个档案就是
#sk98lin.ko,要注意,新的2.6版的核心模块扩展名都变成.ko的格式了!
[root@linux~]#cp-ask98lin/lib/modules/`uname-r`/kernel/drivers/net
#注意啊!
整个网络卡驱动模块就是放在上面的目录中,不要写错了。
[root@linux~]#depmod-a
#将所有的模块进行重新分析的工作!
建立关连档案
[root@linux~]#lsmod|grep'sk98lin'
#先确认『sk98lin』这个模块不存在,然后就可以开始测试:
[root@linux~]#modprobesk98lin
[root@linux~]#lsmod|grep'sk98lin'
#如果有相关的字样跑出来时,就表示这个模块可以顺利的被加载啦!
如果可以顺利加载的话,恭喜您,您所自行编译的驱动程序已经搞定啦!
不过,当有新版本的核心释出时,您也安装了新版的核心,那么上面的动作您就得要再进行一次,为什么呢?
想一想,刚刚您将编译出来的驱动程序模块放在哪里?
然后编译的时候参考的核心原始码又是在哪里?
那您就会晓得『为什么』了!
^_^
设定开机自动启动网络卡模块
我们前面提到,Linux的网络卡其实仅是一个代号,并不是类似硬盘的装置档案,所以,我们必须要指定这个代号与模块的对应才行,在CentOS(RedHat系统)的对应是使用/etc/modprobe.conf,至于旧版的2.4核心中,则使用的是/etc/modules.conf,注意一下您的核心版本。
鸟哥的CentOS4.3使用的是/etc/modprobe.conf,所以我就得这么做:
[root@linux~]#vi/etc/modprobe.conf
#修改或增加底下这一行吧!
aliaseth0sk98lin
[root@linux~]#sync;reboot
为了测试一下刚刚的设定是否会生效,通常鸟哥都会尝试一次重新开机,然后开机完成之后观察一下是否有正确的启动网络卡,并观察一下模块加载的情况,如果一切都顺利,那就太完美了!
尝试设定IP
等到一切就绪之后,总得试看看这样的网络卡模块是否可以顺利的设定好IP吧?
所以我们先手动给他一个私有IP看看先:
[root@linux~]#ifconfigeth0192.168.1.100
[root@linux~]#ifconfig
eth0Linkencap:
EthernetHWaddr00:
01:
BA:
77:
16:
52
inetaddr:
192.168.1.100Bcast:
192.168.1.255Mask:
255.255.255.0
.....以下省略.....
嘿嘿!
真的设定妥当哩!
然后利用ping这个指令去ping一下网域内的其它计算机,看看能不能有响应,就知道您的网络卡是否OK的啦!
通常是没有问题的啦!
Linux网络相关设定档案
要开始玩Linux网络之前,请您务必了解Linux网络相关设定档案放置的目录与文件名!
这真的很重要!
因为在Linux底下修改IP只要动到一个档案即可,修改主机名称也只要一个档案,所以只要将这些文件名称记起来,呵呵!
未来在进行网络的测试与修订时,真的会事半功倍~完全不需要什么linuxconf,webmin等额外工具的帮助,真的很简单啦!
底下赶紧来说一说与Linux网络最相关的几个档案档名与他的用途!
/etc/sysconfig/network
这个档案主要的功能在于设定『主机名称(HOSTNAME)与启动Network与否』!
一般来说,如果您变动过这个档案内的主机名称时,请务必重新开机(reboot),因为这样才会让系统上面所有的程序都使用最新设定的主机名称喔!
(在SuSEL上面,主机名称是记录在/etc/HOSTNAME里面的!
)
/etc/sysconfig/network-scrips/ifcfg-eth0
这个档案的内容即是设定网络卡参数的档案啦!
里面可以设定『network,IP,netmask,broadcast,gateway,开机时的IP取得方式(DHCP,static),是否在开机的时候启动』等等。
至于ifcfg-eth0指的是第一块网络卡,而第二块网络卡为ifcfg-eth1以此类推。
(在SuSE上面则是使用/etc/sysconfig/network/ifcfg-eth0)。
/etc/modprobe.conf
如果硬件要能动作,当然要核心有支持才行!
同时,我们也可以利用外挂的核心模块(可以将他想成是驱动程序)来驱动硬件,而开机时用来设定加载核心模块的档案就是modprobe.conf啦。
一般来说,目前的distributions通常使用模块的方式来编译网络卡驱动程序,所以,当您安装完毕后,您的网络卡与模块对应通常已经写到这个档案当中啰!
/etc/resolv.conf
我们在网络基础里面稍微提到的DNS功能是什么?
对啦,就是进行主机名称与IP的对应!
而resolv.conf就是设定DNSIP(名称解析服务器)的档案,常常有人提到『咦!
我已经可以ping到外部计算机的公共IP了,为何输入网址却无法联机?
』通常发生的错误就是这个档案里面的设定不正确啦!
请注意!
通常这个档案可以输入中华电信的DNS(168.95.1.1)!
/etc/hosts
这个档案可以记录计算机的IP对应主机的名称或者主机的别名!
特别留意的是,在局域网络内有些服务需要反查Client的身份,此时就会动用到主机名称对应IP的数据。
但是因为局域网络内使用私有保留IP,当然无法进行Hostname对应IP的行为,这个时候该服务就会呆呆的等待30~60秒~如果可以避过这个反查,或者是直接告诉主机Hostname与IP的对应,那么就可以节省这个反查的时间了!
所以,如此一来省去反查的时间,就可以改善LAN内的联机速度了!
这个hosts就是用来设定Hostname对应IP的啦!
更多的信息请查阅后续服务器章节DNS服务器的介绍。
/etc/services
这个档案则是记录架构在TCP/IP上面的总总协议,包括http,ftp,ssh,telnet等等服务所定义的portnumber,都是这个档案所规划出来的。
如果您想要自订一个新的协议与port的对应,就得要改这个档案了;
/etc/protocols
这个档案则是在定义出IP封包协议的相关数据,包括ICMP/TCP/UDP这方面的封包协议的定义等。
大概知道上面这几个档案后,未来要修改网络参数时,那就太简单了!
至于网络方面的启动指令的话,可以记得几个简单的指令即可喔!
/etc/init.d/networkrestart
这个script最重要!
因为可以一口气重新启动整个网络的参数!
他会主动的去读取所有的网络设定文件,所以可以很快的恢复系统预设的参数值。
ifupeth0(ifdowneth0)
启动或者是关闭某张网络接口。
可以透过这个简单的script来处理喔!
这两个script会主动到/etc/sysconfig/network-scripts/目录下,读取适当的设定档来处理啊!
(例如ifcfg-eth0)。
大概您只要只到这些基本的指令与档案,哈哈!
网络参数的设定就太简单啦!
不过,最好您还是要了解shellscript,比较好!
因为可以追踪整个网络的设定条件。
why?
这是因为每个distributions的设定数据可能都不太相同,不过却都以/etc/init.d/network作为启动的script,因此,您只要了解到该档案的内容,很容易就追踪得出来您的设定档所需要的内容呢!
对吧!
连上Internet的方法:
在前一章局域网络的简易设定里面,我们知道了连上Internet的方法有好多种,不过在现今的台湾,主要的联机方法其实是以
(1)学术网络、
(2)ADSL固接与拨接、(3)Cablemodem等方式为主,此外,由于目前使用Linuxnotebook的使用者大增,而Notebook通常是以无线网络来联机的,所以鸟哥在这里也尝试使用一款无线网络来进行联机设定。
至于传统的56Kbps拨接则因为速度较慢且使用度越来越低,所以在这里就不多做介绍了。
另外请特别留意,底下的说明全部都是假设您的网络卡已经正常驱动的情况下,所以,万一您的网络卡还是无法启动时,看是要
(1)参考前面的说明重新编译一个模块,还是
(2)早点放弃,赶紧买张便宜的网络卡来安装与设定,那就完全依照您的需求啦!
固定IP上网方式
所谓的固定IP就是指在您的网络参数当中,你只要输入既定的IP参数即可。
那么这个既定的IP来自哪里呢?
一般来说,他可能来自于:
学术网络:
由学校单位直接给予的一组IP网络参数;
固定制ADSL:
向ISP申请的一组固定IP的网络参数;
企业内部或IP分享器内部的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4连上 Internet