📄 0130internet_connect.htm
字号:
<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en"><html><head> <meta http-equiv="Content-Type" content="text/html; "> <meta name="Author" content="VBird"> <meta name="GENERATOR" content="Mozilla/4.5 [zh-TW] (WinNT; I) [Netscape]"> <meta name="Description" content="網路卡的安裝,與連接上 Internet 的方法介紹"> <title>鸟哥的 Linux 私房菜 -- 连上 Internet 的方法与步骤</title><!-- saved from url=(0022)http://internet.e-mail --><style> <!-- body{background-image=url(http://linux.vbird.org/VBirdLinux.jpg);background-ATTACHMENT=FIXED} --></style></head><body nosave="" background="0130internet_connect_files/VBirdLinux.jpg"><center><center><b><font size="+2" color="#3333ff"><font face="SimSun">鸟哥的</font><font face="Times New Roman,Times"> Linux </font><font face="SimSun">与</font><font face="Times New Roman,Times"> ADSL </font><font face="SimSun">私房菜</font></font></b><br><a href="http://linux.vbird.org/" target="_top"><img src="0130internet_connect_files/VBirdTitle2.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_basic"><img src="0130internet_connect_files/icon_system.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_server"><img src="0130internet_connect_files/icon_server.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/linux_security"><img src="0130internet_connect_files/icon_security.jpg" nosave="" border="0" height="25" width="90"></a><a href="http://phorum.vbird.org/" target="_blank"><img src="0130internet_connect_files/icon_forums.gif" nosave="" border="0" height="25" width="90"></a><a href="http://linux.vbird.org/adsl"><img src="0130internet_connect_files/icon_adsl.gif" nosave="" border="0" height="25" width="90"></a><br><hr width="100%"></center><font size="+2" color="#3333ff"><a href="http://linux.vbird.org/linux_server/0130internet_connect.php" target="_self"><font face="SimSun">连上</font><font face="Times New Roman,Times">Internet</font></a></font></center><div align="right"><font size="-1" color="#3333ff" face="SimSun">最近更新日期:2003/09/19</font></div><font size="-2" color="#3333ff" face="SimSun"> </font><table bgcolor="#ffcccc" border="1" cols="1" width="100%"><tbody><tr><td><font size="-1" color="#000099">呼呼!终于要来到修改 Linux 网络参数的章节了!在前面的<a href="http://linux.vbird.org/linux_server/0110network_basic.php">网络基础</a>章节内我们知道了主机要连上 Internet 需要一些正确的网络参数设定,这些设定在Windows 系统上面的修改则在<a href="http://linux.vbird.org/linux_server/0120intranet.php">局域网络的架构</a>里面进行了说明。在这一章当中,我们则主要以固定 IP 的设定方式来修改 Linux的网络参数,同时,也会介绍如何使用 ADSL 的拨接方式来上网,此外,因为 Cablemodem 使用者也不在少数,所以我们也说明一下 Cable modem 在 Linux 下的设定方式喔!</font></td></tr></tbody></table><font size="-2" color="#000099"> </font><br><font color="#000099"><font size="+1"><a href="#config_files">Linux 网络相关设定档案</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#NIC">安装网络卡</a></font>:</font><br><font color="#000099"> :<a href="#NIC_compile">手动安装网络卡驱动程序</a>:<a href="#NIC_compile_dmesg">dmesg</a>,</font><br><font color="#000099"> :<a href="#NIC_test">使用 Private IP 测试网络卡之运作</a>:<a href="#NIC_test_ifconfig">手动设定</a>,<a href="#NIC_test_file">档案设定</a></font><br><font size="+1" color="#000099"><a href="#connect">连上 Internet的方法</a>:</font><br><font color="#000099"> :<a href="#connect_fix_IP">固定 IP 上网方式</a>:非拨接上网之方式</font><br><font color="#000099"> :<a href="#connect_cable">Cable Modem 上网方式</a></font><br><font color="#000099"> :<a href="#connect_adsl">ADSL 拨接上网方式</a></font><br><font color="#000099"> :<a href="#connect_rp-pppoe">拨接程序 rp-pppoe讯息错误处理</a></font><br><font color="#000099"><a href="#hosts">设定内部保留 IP 与 DNS IP</a>:</font><br><font color="#000099"> :<a href="#etc_hosts">/etc/hosts</a>,</font><br><font color="#000099"> :<a href="#etc_resolv.conf">/etc/resolv.conf</a>,</font><br><font color="#000099"><font size="+1"><a href="#problems">无法联机的自我检查几大问题详解</a></font>:</font><br><font color="#000099"><font size="+1"><a href="#ex">课后练习</a></font>:</font><br><font size="+1" color="#000099"><a href="#reference">参考数据</a></font><br><hr width="100%"><a name="config_files"></a><font size="+1" color="#000099">Linux网络相关设定档案</font><ul>要开始玩 Linux 网络之前,<font color="#000066">请新手务必了解 Linux网络相关设定档案放置的目录与文件名</font>!这真的很重要!因为在 Linux 底下修改IP 只要动到一个档案即可,修改主机名称也只要一个档案,所以只要将这些文件名称记起来,呵呵!未来在进行网络的测试与修订时,真的会事半功倍~完全不需要什么linuxconf, webmin 等工具的帮助,真的很简单啦!底下赶紧来说一说与 Linux网络最相关的几个档案档名与他的用途!<br> <ul><li><font color="#000099" face="SimSun">/etc/sysconfig/network:</font></li><br><font face="SimSun">这个档案主要的功能在于『<font color="#000066">主机名称(HOSTNAME )的修改,启动 Network 与否</font>』!在某些版本的 Linux 上面,只要修改过这个档案,可能需要重新启动Linux ( reboot ) 才能让设定生效。</font><br><font face="SimSun"> </font><li><font color="#000099" face="SimSun">/etc/sysconfig/network-scrips/ifcfg-ethn:</font></li><br><font face="SimSun">这个档案的内容即是设定网络卡的参数档案啦!里面可以设定『<font color="#000066">network,IP, netmask, broadcast, gateway, 开机时的 IP 取得方式( DHCP, static ),是否在开机的时候启动</font>』等等。至于 ifcfg-ethn 那个 n 是数字啦!如果是第一块网络卡,则文件名称为<font color="#000066">ifcfg-eth0</font>,第二块网络卡为 <font color="#000066">ifcfg-eth1</font> 以此类推。</font><br><font face="SimSun"> </font><li><font color="#000099" face="SimSun">/etc/modules.conf:</font></li><br><font face="SimSun">如果硬件要能动作,当然要核心有支持才行!同时,我们也可以利用外挂的核心模块(可以将他想成是驱动程序)来驱动硬件,而开机时用来设定加载核心模块的档案就是modules.conf 啦。所以说,这个档案只在核心找不到网络卡的芯片组时才会动用到!</font><br><font face="SimSun"> </font><li><font color="#000099" face="SimSun">/etc/resolv.conf:</font></li><br><font face="SimSun">我们在 <a href="http://linux.vbird.org/linux_server/0110network_basic.php">网络基础</a>里面稍微提到的 DNS 功能是什么?对啦!进行主机名称与 IP 的对应!而 resolv.conf就是设定 DNS ( 名称解析服务器 ) 的档案,常常有人提到『咦!我已经可以 ping到外部计算机的公共 IP 了,为何输入网址却无法联机?』通常发生的错误就是这个档案里面的设定不正确啦!请注意!通常这个档案可以输入中华电信的DNS ( 168.95.1.1 )!</font><br><font face="SimSun"> </font><li><font color="#000099" face="SimSun">/etc/hosts:</font></li><br><font face="SimSun">这个档案可以记录计算机的 IP 对应主机的名称或者主机的别名!特别留意的是,在局域网络内有些服务需要反查Client 的身份,此时就会动用到主机名称对应 IP 的数据。但是因为局域网络内使用私有保留IP ,当然无法进行 Hostname 对应 IP 的行为,这个时候该服务就会呆呆的等待30~60 秒~如果可以避过这个反查,或者是直接告诉主机 Hostname 与 IP 的对应,那么就可以节省这个反查的时间了!所以,如此一来省去反查的时间,就可以改善LAN 内的联机速度了!这个 hosts 就是用来设定 Hostname 对应 IP 的啦!更多的信息请查阅后续服务器章节DNS 主机的介绍。</font><br><font face="SimSun"> </font></ul>与 Linux 的网络设定有关的大概就是这几个档案啦!只要知道这些档案的放置地点,那么差不多网络的设定就不会有太大的问题了!</ul><hr width="100%"><a name="NIC"></a><font size="+1" color="#000099">安装网络卡:</font><ol>网络卡是个硬件啊,所以要驱动他的话,核心就需要有支持该网络卡的芯片组才行。一般来说,目前新版的Linux 预设可以支持的网络卡芯片组数量已经很完备了,包括大厂的 3COM, Intel以及初阶的 RealTek, D-Link 等网络卡芯片都已经被支持,所以使用者可以很轻易的设定好他们的网络卡。不过,如果万一不幸核心没有支持该网络卡的话,那么您可以透过(1)<a href="http://linux.vbird.org/linux_basic/0540kernel.php">重新编译核心</a>或者是 (2)<font color="#000066">编译网络卡驱动模块( Modules )</font>,并且加载该模块,好让核心可以支持网络卡这块硬件啦!但是,重编核心或编译网络卡核心模块都不是简单的工作,所以万一您的网络卡真的不被预设的Linux 网络芯片所支持,那么鸟哥真的建议直接换一块被 Linux 支持的网络卡吧,例如很便宜的螃蟹卡!免得花了太多时间在硬件确认上面,划不来的!^_^ 如果您是照鸟哥推荐的,使用 RLT 8139 芯片 ( RealTek 8139 ) 的网络卡( 就是螃蟹卡 ) ,那您应该在安装 Linux 的时候就已经捉到网络卡了,那真是恭喜您啦!因为您的网络卡应该已经可以正常的工作啰!那如果在安装的时候并没有捉到网络卡呢?该如何是好?那也不用担心,因为您也可以事后才安装网络卡的驱动程序呀!不过,因为Linux 并不像 Windows 是那样的随插即用,所以需要动一些手术的!<br> <br>如果很不幸的,您使用的是比较罕见的一些网络卡,或者是 Linux 核心支持度不太够的网卡,以致于在安装Linux 时,并无法捉到这张卡,那也不用担心,我们可以使用较为简单的核心模块编译来支持这张网卡。底下我们以D-Link 530 这一张曾被称为 Linux 恶魔卡的网络卡来进行模块的编译,如果您使用的是其它厂牌的网络卡,其实编译过程与底下的流程是类似的喔!<br> <br><hr width="100%"><a name="NIC_compile"></a><font color="#000099">手动安装网络卡驱动程序</font><br><font color="#000000"> </font><br>如前面所说的,我们的 Linux 预设核心里面,已经建立了很多的网络卡驱动程序模块了!所以啰!编译网络卡模块之前的首要工作就是先确认一下您的网络卡的芯片组是否有被支持呢?如果有支持的话『<font color="#000066">那么自然不需要编译模块了咯</font>』!<font color="#000066">D-Link 530</font> 这块网络卡的芯片组就是有名的 <font color="#000066">via-rhine</font>( 有的时候也写成是 <font color="#000066">viarhine</font> ),先来找一找有没有这块网卡的模块吧。核心预设的网络卡模块路径在底下可以发现:<br> <table border="1" cols="1" width="550"><tbody><tr><td bgcolor="#000000"><font size="-1" color="#ffffcc" face="SimSun">1.先察看一下核心版本,因为不同的版本模块放置的路径不同。</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@test/root]#</font><font color="#ffff00"> uname -r</font></font><br><font size="-1" color="#ffffff" face="SimSun">2.4.20-18.9</font><br><font size="-1" color="#ff6666" face="SimSun">上面是以 RedHat 9 为范例, 他的核心是 2.4 版喔。</font><br><font size="-1" color="#ffffff" face="SimSun"> </font><br><font size="-1" color="#ffffcc" face="SimSun">2. 核心模块的路径:</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@test/root]# </font><font color="#ffff00">cd /lib/modules/`uname -r`/kernel/drivers/net</font></font><br><font size="-1" color="#ff6666" face="SimSun">上面是 2.4版的路径</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@test/root]# </font><font color="#ffff00">cd /lib/modules/`uname -r`/net</font></font><br><font size="-1" color="#ff6666" face="SimSun">上面是 2.2版的路径,请依照您的实际核心来查询。</font><br><font size="-1" color="#ffffff" face="SimSun"> </font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testnet]#</font><font color="#ffff00"> ls -l via*</font></font><br><font size="-1" color="#ffffff" face="SimSun">-rw-r--r--   1 root     root       17892 Sep  7  2001 via-rhine.o</font><br><font size="-1" color="#ff6666" face="SimSun">太好了!被支援到呢!</font></td></tr></tbody></table> <br><font color="#000000">如果幸运的话,那么您的网络卡就已经被支持,可以跳过编译的过程,直接进行模块的加载吧!万一您连自己的网络卡到底有没有被Linux 捉到都不知道,那么可以使用底下的方法来测试:</font><br> <a name="NIC_compile_dmesg"></a><table border="1" cols="1" width="550"><tbody><tr><td bgcolor="#000000"><font size="-1" face="SimSun"><font color="#ffffff">[root@test/root]#</font><font color="#ffff00"> dmesg | grep eth</font></font><br><font size="-1" color="#ffffff" face="SimSun">divert: allocatingdivert_blk for eth0</font><br><font size="-1" color="#ffffff" face="SimSun">eth0: RealTekRTL8139 Fast Ethernet at 0xc4844000, 00:50:fc:20:f1:4c, IRQ 10</font><br><font size="-1" color="#ffffff" face="SimSun">eth0: Identified 8139 chip type 'RTL-8139C'</font><br><font size="-1" color="#ffffff" face="SimSun">eth0: Setting100mbps full-duplex based on auto-negotiated partner ability 45e1.</font><br><font size="-1" color="#ffffff" face="SimSun">divert: allocatingdivert_blk for eth1</font><br><font size="-1" color="#ffffff" face="SimSun">eth1: DigitalDC21041 Tulip rev 33 at 0xc4852000, 21041 mode, 00:80:C8:5A:87:10, IRQ9.</font></td></tr></tbody></table> <br><font color="#000000">看到上面的信息了吗?因为我有两张网络卡,一张是螃蟹卡( eth0 ) 另一张则是很旧很旧的 10 Mbps 的网络卡,Linux 预设就捉到了!所以我也就不需要重新编译核心模块!不过,万一捉不到呢?亦即上面没有显示出eth0 或者 eth1 等信息,那就表示 Linux 无法找到该硬件,呵呵!底下就得来编译啰!</font><br><font color="#000000"> </font><ol><li><font color="#000099">下载网络卡驱动程序模块:</font></li><br>万一不幸的,您的网络卡的驱动模块恰好不在 Linux 的预设支持当中,例如买到了杂牌的卡或是特别想要的卡( 例如 D-Link 530 TX ) ,那您就必须要注意这些卡的包装上面是否有提及『支持Linux 』字样!如果有支持的话就可以买了,因为一定会有驱动程序附在上面的磁盘中的,以鸟哥的
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -