⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dhcp.txt

📁 Linux百科宝典 书籍语言: 简体中文 书籍类型: 系统专区 授权方式: 免费软件 书籍大小: 1024 KB
💻 TXT
📖 第 1 页 / 共 3 页
字号:
3.5 安装在 Debian 之上   你可以在下面的网址找到以 deb 方式包装的 DHCPcd 程式套件:      [16]ftp://ftp.debian.org/debian/dists/slink/main/binary-i386/net/dhcpc   d_0.70-4.deb      或者,你可以按照 Slackware 那节所描述的方法来安装。      要安装这个 deb 包装的程式套件,请输入:      dpkg -i /where/ever/your/debian/packages/are/dhcpd*deb      你几乎不必做任何的 DHCPcd 设定,因为: From: Heiko Schlittermann   (heiko@os.inf.tu-dresden.de)      这个 dhcpcd 的程式套件如同其它的 debian 套件一样,会将启动命令稿安装在   /etc/init.d/<package_name> 之上,此处为 /etc/init.d/dhcpcd,并将 之链结   到各个 /etc/rc?.d/ 目录中。      在 /etc/rc?.d/ 目录中所存放的各类档案,是开机时所执行的命令稿。      如果你在安装後不想重新开机,你应该考虑使用人工启动“监控程式”(daemon)   的方式:      /etc/init.d/dhcpcd start      当你完成以上的动作後,请跳至 [17]最後的步骤   3.6 在 LinuxPPC 与 MkLinux 上的设定   下面这节是 R. Shapiro 撰写的。      由 Yoichi Hariguchi 所发展的版本 0.65 和 0.7 的 dhcpcd 程式应该可以在使   用核心 2.1.24 的 LinuxPPC 与 MkLinux 上正常执行,但是,你必须注意以下几   个要点:      * 如果你想要或需要,透过原始程式码来建立可执行的档案,请注意,ppc   linux 上的 编译器会将 'char' 假定为 'unsigned char',但是,Hariguchi 的   原始程式码确将 'char' 假定为 'signed char'。所以,要透过原始程式码来产   生执行档,你必须编辑 Makefile,让 CFLAGS 中包含 "-fsigned-char" 这个选   项。      * 目前 linuxppc [就是所谓的 linux-pmac] 平台上最稳定的版本是 2.1.24,需   要的话 可到下面的网址取得 dhcpcd 的修正码: [18]2.1 版的修正码   (http://www.cro.net/ vuksan/dhcppatch)。 mklinux 平台上所发行的 DR2.1   和 DR3.0 这两个版本,采用的是 2.0 的核心 (2.0.33) ,所以,不必使用这个   修正码,但是,即使安装了这个修正码也没有什麽伤害。请注意 ,linuxppc 安   装光碟片上 dhcpcd 程式的 rpm 包装里,并不包含这个 2.1 修正码,因此 ,它   在 linuxppc 平台上无法正常运作,反倒是,可以在 mklinux 平台上正常执行。      * 当我们使用 linuxppc 平台的 2.1.24 核心时,在 dhcpcd 程式启动之後,你   会看到 一个简短的路由器警告讯息。你可以忽略它。      * Hariguchi 的 dhcpcd 程式会花一些时间,大约是 30 秒,来完成它初次连接   伺服器和 设定路由的动作。当我们使用的是 linuxppc 平台的 2.1.24 核心时,   上述的警告讯息, 只是在说明,路由已经设定完成了。      对於比较新版的 linuxppc 核心而言,由 Hariguchi 所发展的 dhcpcd 程式都无   法使用 :此时你 必须 改采 Sergei Viznyuk 所发展的版本(目前的发行版本为   1.3.9 )。麻烦的是 Viznyuk 的 dhcpcd 程式是以 glibc 2 为函式库来发展的   ,然而 linuxppc 2.1.1xx 却不使用这个函式库。结果,编译程式需要用到一些   技巧 - 相关的细节请与我 联络。一旦程式编译好之後,它就能够在较新版的核   心上正常运作了(在 linuxppc 的 2.1.24 版本或 MkLinux 的部分版本上还是不   行)。      现在我们来讨论 Viznyuk 所发展的 dhcpcd 程式,我手上有一个 Viznyuk 版的   dhcpcd (v1.3.7)执行档,可以在最近发行的 linuxppc 核心:2.1.102、103   、115、和 119,上 执行,并且已经完成测试。你应该可以透过原始程式码来产   生执行档,但是,我不知道实际 的细节。Viznyuk 版的 dhcpcd 无法在 2.1.24   的核心上运作,然而修补过的 Hariguchi 版的 dhcpcd 程式却可以正常使用。要   编译 Hariguchi 版的 dhcpcd 程式就容易多了。      摘要整理如下:     _________________________________________________________________   MkLinux:  Hariguchi: 可用; Viznyuk: 不可用2.1.24:   Hariguchi: 如果修正过,可以正常使用(产生执行档很容易); Viznyuk: 不可用2.1.102+: Hariguchi: 不可用; Viznyuk: 可用(产生执行档需要技巧)     _________________________________________________________________      请注意,Viznyuk 版的 dhcpcd 会把资料直接写到 /etc/resolv.conf 里(写入   之前会先 备份旧有的档案),因此你不必再自己从 /etc/dhcpc 复制或链结相关   的资讯。同时也请 注意它通常会把执行档放到 /sbin 目录中而不是放到   /usr/sbin 里,所以它的命令列选 项与 Hariguchi 版本之间会有一点不同。若   你使用 ifup 来启动 dhcpcd ,则 ifup 这个 命令稿也必须做一些小的修正。      若你想要取得给 linuxppc 使用的预先编译好之 dhcpcd 程式,请寄信到      [19]reshapiro@mediaone.net。      我也提供了二元码的 RPMs 包装档:      [20]ftp://ftp.linuxppc.org//pub/linuxppc/contrib/linuxppc-R4/RPMS/      请不要使用该目录之下的 dhcpcd-1.3.8-2.ppc.rpm 档案,它已经停止维护了。   可靠的版 本是 dhcpcd-0.70-0.ppc.rpm(给 linuxppc 2.1.24 使用的)以及   dhcpcd-1.3.8-3.ppc.rpm (给 linuxppc 2.1.102 和以上的版本使用的)。版本   1.3.9 的 rpm 包装档近期内应该 会提供出来。同时我还依照版本 0.65 和   0.70(由 Hariguchi 所发展)的方式对版本 1.3.9 (由 Viznyuk 所发展) 做   了一些修改(就是 附加上 -c 的命令列选项)。(请注意,标 准的 Viznyuk   dhcpcd 并不包含这样的内容。)   3.7 “记号环”(Token Ring)网路   若你尝试在“记号环”网路上执行 dhcpcd 程式,将无法正常运作。以下是   Henrik Stoerner (henrik_stoerner@olicom.dk) 提供给我的解决方案。      问题出在 dhcpcd 只认识“乙太网路”( Ethernet)卡。若它发现到“记号环”   网路卡 ,则它会拒绝做任何的事情,并且报告说“界面不是乙太网路”。      解决方案就是使用一个简单的修正码来变更 dhcpcd 的原始程式码。我已经将此   修正码 放在一个小型的网页上,并提供 RedHat 的 RPM 包装档和一个预先编译   好的二元档: [21]http://eolicom.olicom.dk/~storner/dhcp/      这个修正码已经送到了 dhcpcd 的维护者手上了,因此,它有希望被未来发行的   dhcpcd 版本所采用。   3.8 最後,请完成以下的动作   在你的机器重新开机之後,你应该设定网路的界面。请输入:      ifconfig      你应该会看到如下的内容     _________________________________________________________________   lo        Link encap:Local Loopback          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1          RX packets:302 errors:0 dropped:0 overruns:0 frame:0          TX packets:302 errors:0 dropped:0 overruns:0 carrier:0 coll:0eth0      Link encap:Ethernet  HWaddr 00:20:AF:EE:05:45          inet addr:24.128.53.102  Bcast:24.128.53.255  Mask:255.255.254.0          ^^^^^^^^^^^^^^^^^^^^^^^          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1          RX packets:24783 errors:1 dropped:1 overruns:0 frame:1          TX packets:11598 errors:0 dropped:0 overruns:0 carrier:0 coll:96          Interrupt:10 Base address:0x300     _________________________________________________________________      如果,你在 inet addr 之後看到一些正常的数字,这表示你已经设定好了。如果   ,你看到 的是 0.0.0.0 也不要绝望,它只是 dhcpcd 在取得 IP 位址前暂时的   设定值。如果,过了 几分钟之後,你仍然看到 0.0.0.0 ,请参考 [22]疑难排除   。DHCPcd 是一个“监控程式”(daemon),所以只要你的机器还活著,它将会持续   保持执行 的状态。它每三小时会与 DHCP 伺服器再联络一次,尝试续约 IP 位址   的租期。它会将所 有的讯息记录在 syslog 档案中(在 Slackware 上,为   /var/adm/syslog;在 RedHat/OpenLinux 上,为 /var/log/syslog)。      最後要做一件事。你必须指定名称伺服器。有两个方式可以完成这个步骤,你可   以要求网路 服务供应商,告知名称伺服器的 IP 位址,然後再将此位址填入   /etc/resolv.conf 档中 ,或者,你也可以让 DHCPcd 从 DHCP 伺服器取得资料   ,然後在 /etc/dhcpc 目录下产生 档案 resolv.conf。我决定使用 DHCPcd 来产   生档案 resolv.conf 的内容,方法如下:      备份旧的 /etc/resolv.conf 档案      mv /etc/resolv.conf /etc/resolv.conf.OLD      如果目录 /etc/dhcpc 不存在,你可以自行产生此目录      mkdir /etc/dhcpc      然候将 /etc/resolv.conf 以“符号链结”至 /etc/dhcpc/resolv.conf      ln -s /etc/dhcpc/resolv.conf /etc/resolv.conf      如果这个方式无法正常运作,请尝试使用下面的方法 (下面这个修正方法是   nothing@cc.gatech.edu 所建议的,其内容修改自 Henrik Stoerner 所提供的修   正方法)      我还必须执行下面这个步骤,只因为我的 dhcpcd 不会产生档案   /etc/dhcpc/resolv.conf 。我在 /etc/sysconfig/network-scripts/ifup 档案   中,做了以下的修改(虽然改的不是 很好,但是它已经可以为我解决这个问题了   ):     _________________________________________________________________   elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then    echo -n "Using DHCP for ${DEVICE}... "    /sbin/dhcpcd -c /etc/sysconfig/network-scripts/ifdhcpc-done ${DEVICE}    echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh    if [ -f /var/run/dhcp-wait-${DEVICE}.pid ]; then        ^^^^        echo "failed."        exit 1     _________________________________________________________________      我把它修改成:     _________________________________________________________________   elif [ "$BOOTPROTO" = dhcp -a "$ISALIAS" = no ]; then    echo -n "Using DHCP for ${DEVICE}... "    /sbin/dhcpcd    echo "echo \$$ > /var/run/dhcp-wait-${DEVICE}.pid; exec sleep 30" | sh    if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ]; then        ^^^^^^       echo "failed."       exit 1     _________________________________________________________________      注意 ! (bang) 这个符号 if [ ! -f /var/run/dhcp-wait-${DEVICE}.pid ];      总算大功告成,可以坐下来享受成果了 :-)。   3.9 其它注意事项   以下的步骤不是绝对必要,但是对某些人而言,可能就派得上用场。      a) 如果,你只是偶尔才会有网路连线的需求,你可以使用命令列的方式来启动   dhcpcd(要完成这个步骤,你必须拥有 root 的身份):      /usr/sbin/dhcpcd      当你想要关掉网路,请输入      /usr/sbin/dhcpcd -k   3.10 疑难排除   如果,你按照了上述的步骤,却仍然无法存取网路,很可能是因为:      I. 你的网路卡设定不正确。       在开机的过程中,你机器将会侦测你的网路卡,并且应该会显示下面几行的讯息   内容:     _________________________________________________________________   eth0: 3c509 at 0x300 tag 1, 10baseT port, address  00 20 af ee 11 11, IRQ 10.3c509.c:1.07 6/15/95 becker@cesdis.gsfc.nasa.gov     _________________________________________________________________      如果,你的 Linux 系统不会出现上面这个讯息,这表示,你的网路卡可能无法被   辨识。假 使,你使用的是一般的乙太网路卡(NE2000 相容),你应该会拿到一   片 DOS 工具磁片,你 可以用它来设定网路卡。尝试设定各个 IRQs 值,一直到   Linux 可以辨识到你的网路卡( IRQ 的值设定通常为 9,10,12)。      II. 所使用的 DHCP 伺服器支援 RFC 1541 标准/我的 DHCP 伺服器是 Windows   NT      尝试执行 dhcpcd ,请输入      dhcpcd -r      使用 ifconfig 来检查看看,是否你的网路界面已经设定好了(最初你所看到的   是 Inet.addr=0.0.0.0,你得等待几秒的设定时间)。      如果这个方法可以解决你的问题,则你应该在相关的开机命令稿中加上 "-r" 选   项,譬如 将 /sbin/dhcpcd 修改成 /sbin/dhcpcd -r 。      以 RedHat 为例,你必须编辑 /etc/sysconfig/network-scripts/ifup 这个命令

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -