📄 0340dhcp.htm
字号:
处已经设定啰!</font></p><p><font size="-1" color="#ffffcc" face="SimSun"># 3. 静态 IP的设定:</font><br><font size="-1" color="#ffff00" face="SimSun">host vbird-inside{</font><br><font size="-1" color="#ffff00" face="SimSun"> hardwareethernet  00:40:95:30:43:B4;</font><br><font size="-1" color="#ffff00" face="SimSun"> fixed-address192.168.1.5;</font><br><font size="-1" color="#ffff00" face="SimSun"> optionbroadcast-address 192.168.1.255;</font><br><font size="-1" color="#ffff00" face="SimSun"> optionrouters 192.168.1.2;</font><br><font size="-1" color="#ffff00" face="SimSun">}</font><br><font size="-1" color="#ff6666" face="SimSun"># 静态 IP 肯定跟MAC 有关的,所以请先查出来 MAC 吧!然后的设定您都知道啦!</font></p></td></tr></tbody></table> <ul><li>在 Global 的设定当中,也就是不在 subnet 与 host 的括号内的设定数据,就是可以被视为『预设』的数据啦!也就是说,当subnet 里头没有写到租约期限啦、没有写到 domain-name 啦,那么这个 Global的设定就会自动被拿去做为该设定内的设定内容啰!</li></ul> <li><font color="#000099">建立租约期限档案:</font></li><br>既然我们知道 DHCP 是由用户与主机端之间的租约是否到期来进行是否继续联机的动作,那么自然就有所谓的『签约仪式』啰!哈哈!真会掰!这个时候,我们就得要知道一下,那么我到底要在哪里设定这个租约期限档案呢?<font color="#000066">如果在比较早期的版本中,这个步骤一定要进行的!不过,目前的版本中,似乎预设已经有这个租约期限档案了</font>!无论如何,还是作一下比较安心啦!<br> <table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">touch /etc/dhcpd.leases </font></font><br><font size="-1" color="#ff6666" face="SimSun"># 建立租约档案同样的,注意您的版本目录!</font></td></tr></tbody></table> <br>这个档案倒是蛮有趣的!因为在实际的运作过程中,这个档案本身不会有什么作用,但是在启动了DHCP 之后,这个档案会被 copy 一份成为底下的档案: 『<font color="#000066" face="SimSun">/var/lib/dhcp/hdcpd.leases</font>』而真正在记录的,其实就是这个/var 底下的档案啦!后面我们再来看一下这个档案的内容吧!目前还不会用到这个档案的内容啰!(<i><font color="#000066">注:如果您使用的Linux 是最近的版本,那么应该不需要再执行这个步骤了!无论如何,您可以先略过这个步骤,到启动的时刻下,如果未能正确启动,再回来做这一步都还来得及呢!</font></i>)<br> <li><font color="#000099">编辑 scripts 内容:</font></li><br>咦!不是可以启动了吗?喔不~我们还得要检查一下,您要提供 DHCP 的接口是哪一个呢!就如同我上面的图示,基本上,我的主机是有两块网络卡的,一块对外一块对内,而我只对这个对内部的网络卡启动DHCP ,因此,我可以修改一下我的 /etc/rc.d/init.d/dhcp 这个档案:注:我是以Mandrake 9.0 为例来说明的,如果您是使用 Red Hat 或者是 OpenLinux 等其它版本时,您应该可以找到『daemon /usr/sbin/dhcpd 』那一行,将他改成底下的样子也就可以啦!<br> <table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">vi /etc/rc.d/init.d/dhcpd</font></font><br><font size="-1" color="#ff6666" face="SimSun"># 这是启动的script 档案</font><p><font size="-1" color="#ff6666" face="SimSun"># 先找到底下的设定内容,如果没有找到也没有关系,就自行新增吧!</font><br><font size="-1" face="SimSun"><font color="#ffff00">CONFIGFILE="/etc/dhcpd.conf" </font><font color="#ff6666"> #这个是设定档案的完整路径名称</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">LEASEFILE="/var/lib/dhcp/dhcpd.leases" </font><font color="#ff6666">#这个是在设定租约期限记录档案</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">INTERFACES="eth0" </font><font color="#ff6666"> #这个则是要启用 DHCP 的主机网络适配卡</font></font><br><font size="-1" face="SimSun"><font color="#ffff00">OPTIONS="-q" </font><font color="#ff6666"> #其它的 dhcpd 的参数设定值!</font></font><br><font size="-1" color="#ffff00" face="SimSun">start() {</font><br><font size="-1" face="SimSun"><font color="#ffffff"> </font><font color="#ff6666"> .....(略)...</font></font><br><font size="-1" color="#ffff00" face="SimSun"> daemon/usr/sbin/dhcpd -cf $CONFIGFILE -lf $LEASEFILE $OPTIONS $INTERFACES</font><br><font size="-1" face="SimSun"><font color="#ffffff"> </font><font color="#ff6666"> .....(略)...</font></font><br><font size="-1" color="#ffff00" face="SimSun">}</font><br><font size="-1" color="#ff6666" face="SimSun">....</font></p></td></tr></tbody></table> <br>基本上,上面的 /etc/dhcpd.conf 设定档案的所在目录是可以变动的!就在这里进行更动即可!您可以使用man dhcpd 就可以知道每个参数代表的意义了!请注意,那个 start() 里面的信息,只要更动找到的daemon .... 那一行即可!至于上面的参数设定内容,则可以参考 BASH 的变量设定方法来写!目前因为我们只要针对eth0 来启用 DHCP 而已,所以上面 INTERFACES 的部分我就写入了 eth0 而已,如果您还要启动eth1 的话,那么就需要:『 <b><font color="#000066" face="SimSun">INTERFACES="eth0eth1"</font></b>』两个界面中间以空格符来隔开!这样,大致上就已经设定妥当了!准备来去启动啦!<br> <li><font color="#000099">启动 DHCP 服务:</font></li><br>启动服务的方法不需要再教了吧!?直接给他执行刚刚改过的 scripts 即可:<br> <table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">/etc/rc.d/init.d/dhcpd start </font><font color="#ff6666">启动的啦!</font></font><br><font size="-1" color="#ffffff" face="SimSun">Starting dhcpd:                             [  OK  ]</font></td></tr></tbody></table> <br>注意屏幕前面要显示 OK 才可以呢!好了,除此之外,我们还要确认 DHCP 已经启动才行!<br> <li><font color="#000099">确认正确的启动 DHCP :观察启动的 port 号与登录文件的讯息:</font></li><br>要注意的是,虽然我们已经驱动了 script 了,不过,您仍然不会知道,那个script 是否真的让您的 service 启动了哪?所以,在启动任何的服务之后,观察一下两个东西,一个是port 是否以启动,另一个则是到登录文件去查询一下讯息!这都是很重要的信息呢!所以,您应该这样做:<br> <table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" color="#ffffcc" face="SimSun">1. 最重要的就是察看登录档!也就是/var/log/messages 这个档案了!</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">vi /var/log/messages  </font><font color="#ff6666">先看看登录挡吧!</font></font><br><font size="-1" color="#ffffff" face="SimSun">Nov 23 23:35:09vbird dhcpd: Wrote 0 deleted host decls to leases file.</font><br><font size="-1" color="#ffffff" face="SimSun">Nov 23 23:35:09vbird dhcpd: Wrote 0 new dynamic host decls to leases file.</font><br><font size="-1" color="#ffffff" face="SimSun">Nov 23 23:35:09vbird dhcpd: Wrote 0 leases to leases file.</font><br><font size="-1" color="#ffffff" face="SimSun">Nov 23 23:35:09vbird dhcpd: dhcpd startup succeeded</font><br><font size="-1" color="#ff6666" face="SimSun">一定要看到Wrote xxxx to leases file 以及 succeeded 的字眼,</font><br><font size="-1" color="#ff6666" face="SimSun">才能确定启动成功!</font><p><font size="-1" color="#ffffcc" face="SimSun">2. 再来,观察一下port 有没有在 listen </font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]# </font><font color="#ffff00">netstat -utl</font></font><br><font size="-1" color="#ffffff" face="SimSun">Active Internetconnections (only servers)</font><br><font size="-1" color="#ffffff" face="SimSun">Proto Recv-QSend-Q Local Address          Foreign Address         State</font><br><font size="-1" color="#ffffff" face="SimSun">udp       0      0 *:bootps               *:*</font><br><font size="-1" face="SimSun"><font color="#ffffff">[root@testdhcp]# </font><font color="#ffff00">netstat -utln</font></font><br><font size="-1" color="#ffffff" face="SimSun">Active Internetconnections (only servers)</font><br><font size="-1" color="#ffffff" face="SimSun">Proto Recv-QSend-Q Local Address          Foreign Address         State</font><br><font size="-1" color="#ffffff" face="SimSun">udp       0      0 0.0.0.0:67             0.0.0.0:*</font></p></td></tr></tbody></table> <br>仔细的看到喔! DHCP 显示的是 bootps 这个字样! WHY ?没有什么奇特的原因啦,因为DHCP 的前身就是 bootps 这个 protocol ,所以当然就沿用啦!如果您想要修改这个字眼使成为dhcp 的话,可以修改 /etc/services :<br> <table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]#</font><font color="#ffff00"> vi /etc/services</font></font><br><font size="-1" color="#ff6666" face="SimSun">找到这两行:</font><br><font size="-1" color="#ffffff" face="SimSun">bootps        67/tcp                         # BOOTP server</font><br><font size="-1" color="#ffffff" face="SimSun">bootps        67/udp</font><p><font size="-1" color="#ff6666" face="SimSun">将他改成</font><br><font size="-1" color="#ffffff" face="SimSun">dhcp           67/tcp</font><br><font size="-1" color="#ffffff" face="SimSun">dhcp           67/udp</font></p></td></tr></tbody></table> <br>那未来使用 netstat -tln 就可以得到 dhcp 的显示了!嗄!忘记 netstat后面的参数意义!喂!不要再混了!赶快回到前几篇提过的『<a href="http://linux.vbird.org/linux_server/0140networkcommand.php#netstat">Linux常用网络指令介绍</a>』练一练基本功吧!<br> <li><font color="#000099">修改 /etc/hosts 档案内容对应:</font></li><br>如果您有仔细的瞧过前几章的 <a href="http://linux.vbird.org/linux_server/0110network_basic.php">网络基础</a>的话,那么应该还会记得那个 /etc/hosts 会影响内部计算机的联机速度很大吧?!那么我现在使用DHCP 之后,糟糕!我怎么知道哪一部 PC 连上我的主机,那么要怎么填写 /etc/hosts的内容呢?这真是太简单了!那就将所有可能的计算机 IP 都加进去该档案呀! ^_^!以我为例,在这个例子中,我的分配的 IP 至少有 192.168.1.5, 192.168.1.21~ 192.168.1.100 ,所以我的 /etc/hosts 可以写成:<br> <table bgcolor="#000000" border="1" cols="1" width="550"><tbody><tr><td><font size="-1" face="SimSun"><font color="#ffffff">[root@testroot]#</font><font color="#ffff00"> vi /etc/hosts</font></font><br><font size="-1" color="#ffff00" face="SimSun">127.0.0.1 localhost.localdomain localhost</font><br><font size="-1" color="#ffff00" face="SimSun">192.168.1.2 vbird-server</font><br><font size="-1" color="#ffff00" face="SimSun">192.168.1.5 static-ip</font><br><font size="-1" color="#ffff00" face="SimSun">192.168.1.21 dynamic-021</font><br><font size="-1" color="#ffff00" face="SimSun">192.168.1.22 dynamic-022</font><br><font size="-1" color="#ffff00" face="SimSun">.....</font><br><font size="-1" color="#ffff00" face="SimSun">192.168.1.100dynamic-100</font></td></tr></tbody></table>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -