--

samba

  smb   (service message block 服务消息块)


nfs:   linux to linux
samba:  linux to windows


smb使用的netbios通讯协议

netbios   (network basic input/output system) --最早由IBM发展出来的目的为让局域网内少数电脑进行网络连结的协议,初期的设定并不是针对大型网络,并且他是无法横跨不同路由的; 微软就使用了它进行局域网内的通讯 

现在有所谓的netbios over tcp/ip  可以横跨不同路由
netbeui   (netbios extened user interface)  为IBM在netbios基础上发展而来的改良版本


用samba登入某部windows主机,要加入此windows主机的群组(workgroup),并且也要设定一下netbios name (要求唯一),然后就可以视权限进行资源的访问了

 

samba通过两个守护进程来控制

  nmbd 用来管理workgroup,netbios name的解析等          用udp 的137,138端口


  smbd 用来管理samba主机分享的目录,档案  用tcp的139和445  (TCP的可靠性)

 

cifs            common  interface file system

mount -t cifs -o username=administrator //ip/共享名 /mnt

 

 特点:
 1,能够支持更详细的访问控制
 2,能够跨平台(linux和windows)共享文件

[root@li ~]# yum list |grep samba
This system is not registered with RHN.
RHN support will be disabled.
samba-common.i386               --公共的工具包,包括samba.conf和检测其语法的测试工具testparm 
samba.i386                     --samba服务端         
samba-client.i386               --客户端的工具指令           
samba-swat.i386                 --图形化samba配置工具,其于web接口

 

[root@li ~]# yum install samba* -y

 

  服务器端主配置文件: /etc/samba/smb.conf
  netbios名与ip对应文件 /etc/samba/lmhosts
  密码存放文件: /etc/samba/passdb.tdb   --用sampasswd -a加入用户后就存在了
  日志文件:   /var/log/samba/ 


 man smb.conf --查找帮助


[root@li ~]# cat /etc/samba/smb.conf |grep -v "#" |grep -v ^";" |grep -v ^$
[global] --定义全局的参数
        workgroup = MYGROUP --定义工作组
        server string = Samba Server Version %v  --定义服务器的描述
        security = user   --定义工作模式:share,user,domain,ads
        passdb backend = tdbsam  --使用本地的.tdb文件保存账号密码
        load printers = yes --加载打印机
        cups options = raw --打印机类型
[homes]  --保留的的资源名
        comment = Home Directories
        browseable = no
        writable = yes
[printers] --保留的资源名
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes


security =
share   不用密码,包括匿名用户
user 使用samba自己的密码资料库
server,domain,ads     使用外部主机的密码

共享目录有关的参数

browseable  匿名用户是否可见
public    是否让所有可以登入的使用者看到,匿名用户是否可以登录
guest ok   和public一样,使用其中之一就可以
writable   是否可写
read only  是否只读  --这个参数与writable同时存在会有冲突,以后面出现的设定值为主
create  mode   umask类似
valid users   指定能够进入的使用者


[root@dns ~]# netstat -ntlup |grep bd
tcp        0      0 0.0.0.0:139                 0.0.0.0:*                   LISTEN      3859/smbd          
tcp        0      0 0.0.0.0:445                 0.0.0.0:*                   LISTEN      3859/smbd          
udp        0      0 10.1.1.35:137               0.0.0.0:*                               3862/nmbd          
udp        0      0 192.168.66.1:137            0.0.0.0:*                               3862/nmbd          
udp        0      0 172.16.104.1:137            0.0.0.0:*                               3862/nmbd          
udp        0      0 0.0.0.0:137                 0.0.0.0:*                               3862/nmbd          
udp        0      0 10.1.1.35:138               0.0.0.0:*                               3862/nmbd          
udp        0      0 192.168.66.1:138            0.0.0.0:*                               3862/nmbd          
udp        0      0 172.16.104.1:138            0.0.0.0:*                               3862/nmbd          
udp        0      0 0.0.0.0:138                 0.0.0.0:*                               3862/nmbd  

 

使用linux的客户端工具做测试:
       smbclient - ftp-like client to access SMB/CIFS resources
       on servers

[root@li ~]# smbclient -L //10.1.1.45 
Password:  --直接回车,表示以匿名用户登录,但没有看到共享资源,只有服务器的基本信息

[root@li ~]# smbclient -L //10.1.1.45  -U a --使用用户名登录,登录失败
Password:
session setup failed: NT_STATUS_LOGON_FAILURE


原因: 
1,默认security = user 模式,这种模式指定访问用户需要密码,匿名用户除外
2, samba账号有两个要求,一,要求是系统用户  二,要把系统用户通过samba的命令把它加入到samba服务里去


[root@li ~]# smbpasswd -a a  --注意是在服务端做
New SMB password:
Retype new SMB password:
Added user a.


[root@li ~]# smbclient -L //10.1.1.45  -U a --再使用a用户登录
Password:
Domain=[LI] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server Version 3.0.33-3.14.el5)
        a               Disk      Home Directories  --发现多了一个共享资源,共享资源名为用户名一样


[root@li ~]# smbclient //10.1.1.45/a -U a
Password:
Domain=[LI] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> pwd  --查看当前登录的目录
Current directory is \\10.1.1.45\a\
smb: \> ?  --帮助
smb: \> help get --查看get命令的帮助 
smb: \> ls  --列表
smb: \> put install.log --上传
putting file install.log as \install.log (966.9 kb/s) (average 966.9 kb/s)
smb: \> get vvv
getting file \vvv of size 0 as vvv (0.0 kb/s) (average 0.0 kb/s)
smb: \> rm vvv


windows客户端登录

在cmd下输入   \\10.1.1.45\a  

 然后会弹出一个登录界面,输入用户名和smbpasswd -a定义的密码


上面的实验知道,就是配置段内的homes这个保留资源
[homes]  --定义共享资源的名字,   自动变成对应的用户名
        comment = Home Directories --资源描述
        browseable = no  --指定在匿名用户使用-L时是否可见
        writable = yes --表示可写,能够上传删除等操作

--也就是说默认samba是把每个服务器端系统用户的家目录都共享了,但是需要smbpasswd -a加入smb帐号里


====================================================================

 


例2.  share模式
# vim /etc/samba/smb.conf

[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = share --在这里把user改为share
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes
[share]  --新定义了一个共享的资源,共享名为share
    comment = public for everyone
    path = /share --实际共享的资源目录名
    guest ok = yes --表示可以匿名访问
    browseable = yes


 /etc/init.d/smb reload  --重装载smb服务


[root@li ~]# smbclient -L //10.1.1.45 --使用匿名用户查看共享资源列表
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]

        Sharename       Type      Comment
        ---------       ----      -------
        share           Disk      public for everyone  --可以看到这个新的共享资源


[root@li ~]# smbclient //10.1.1.45/share --使用匿名用户登录共享资源名为share
Password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
Server not using user level security and no password supplied.
smb: \> put install.log  --匿名用户上传失败
NT_STATUS_ACCESS_DENIED opening remote file \install.log
smb: \> rm rc.local  --也不能删除
NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \rc.local

 

--也就是说匿名用户对这个新建的共享资源只能下载

 


例3 ,share模式下匿名用户可写

修改配置文件:
[share]
    comment = public for everyone
    path = /share
    guest ok = yes
    browseable = yes
    writeable = yes --加上这一句,表示可写


/etc/init.d/smb reload


再次上传,还是发现失败


原因:匿名用户登录的时候,samba是使用nobody的身份去操作的,而共享的/share目录权限属性如下,nobody用户是不能写的
[root@li ~]# ll -d /share/
drwxr-xr-x 5 root root 4096 Aug 17 16:27 /share/

修改/share的目录权限,允许nobody用户可写
 chmod 757 /share/

[root@li ~]# smbclient //10.1.1.45/share
Password:
smb: \> put install.log  --再次上传成功  --也可以删除
putting file install.log as \install.log (2486.3 kb/s) (average 2486.3 kb/s)

 

 

例4,share模式,不允许匿名用户登录时的讨论


修改配置文件:
[share]
    comment = public for everyone
    path = /share
    guest ok = no  --表示不允许匿名用户登录,或者public =no
    browseable = yes
    writeable = yes 

 

总结: share 的特点

  如果是guest ok =yes 的资源,就可以不用帐号和密码访问 ,但user模式是一样的;
  如果是guest ok = no 的资源,你还是不能匿名访问。但有个注意的地方,只能在linux下的客户端才能够使用帐号和密码访问这些资源,在windows客户端是不行,发现在登录弹出框被锁了 

 

 那到底和user有什么区别?
 区别就是share模式拒绝匿名用户访问,在linux下可以使用普通用户去访问它,    windows客户端匿名和普通用户都登录不上去了,因为登录框被锁,这是一个要注意的地方
 还有就是在user模式,如果允许匿名用户登录,则在windows登录框也不能匿名用户登录


--总结:对于自定义的共享资源,如果想要拒绝匿名登录,则不要用share模式,用user模式。允许匿名登录,则使用share模式。


--特殊情况:如果是share模式,guest ok =no,windows登录框被锁的情况。登录共享资源登不上去;可以有个方法绕过去:就是先用普通用户登录自己的家目录资源,也是被锁,但可以直接输密码登录上去。然后再登录共享资源,还是被锁,但这次可以直接输普通用户密码登录成功。

 


例5:user模式普通用户可写的情况


--和share模式一样,首先你登录的普通用户对系统的共享目录要有w权限,服务内也要定义writable=yes或read only = no

 


例六:验证writable 参数和 read only参数同时存在的情况
     验证guest ok参数和public参数同时存在的情况
 

[share]
    comment = public for everyone
    path = /share
    browseable = yes
    read only = yes --这里表示只读,也就是不可写
    writeable = yes --这里表示可写,与上面的参数冲突,后面的生效,所以应该是可写的

/etc/init.d/smb reload   

[root@li ~]# smbclient //10.1.1.45/share  -U a
Password:
Domain=[LI] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
smb: \> put 456  --上传成功,表示可写,验证成功
putting file 456 as \456 (0.0 kb/s) (average nan kb/s)

 
--总结:这两个参数是一对反义参数,如果同时存在,哪个在后,则哪个生效

--guest ok 和 public这是一对同义参数,如果同时存在,也是哪个在后,则哪个生效. 

--所以这些参数,尽量只写一个,防止冲突

 

例七.关于用户互相能删除文件的解决


使用b用户登录/share共享资源,也上传两个文件   678 和 789

查看一下用户上传的文件属性
[root@li ~]# ls /share/ -l
total 60
-rwxr--r--  1 a      a          0 Sep  2 11:39 123
-rwxr--r--  1 a      a          0 Sep  2 11:39 456
-rwxr--r--  1 b      b          0 Sep  2 11:43 678
-rwxr--r--  1 b      b          0 Sep  2 11:43 789


[root@li ~]# smbclient //10.1.1.45/share  -U a
smb: \> rm 678

[root@li ~]# smbclient //10.1.1.45/share  -U b
smb: \> rm 123

把a用户上传的456改成577,也就是自己对自己的文件没有写权限
[root@li ~]# chmod 577 /share/456
[root@li ~]# ls /share/ -l
total 60
-r-xrwxrwx  1 a      a          0 Sep  2 11:39 456

[root@li ~]# smbclient //10.1.1.45/share  -U b --用b用户去删除,删除失败
smb: \> rm 456
NT_STATUS_CANNOT_DELETE deleting remote file \456


再次把a用户上传的456改成200,也就是自己对自己的文件只有写权限
[root@li ~]# chmod 200 /share/456
[root@li ~]# ls /share/ -l
total 60
--w-------  1 a      a          0 Sep  2 11:39 456

[root@li ~]# smbclient //10.1.1.45/share  -U b  --用b用户去删除,删除成功
smb: \> rm 456


   分析总结:  只要文件的拥有者对这个文件有可写的权限,那么别人就可以删除它 (200权限例子)
      文件的拥有者对这个文件没有可写的权限,别人就不能删除它,连自己都不能删除  (577权限的例子)

 

解决方法:
  chmod  o+t /share

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@
--这个与ftp和系统不同;
 ftp和系统一样:就是用户对目录有写权限,就可以删除里面的任意文件
 samba:只要文件的拥有者对这个文件有可写的权限,那么别人就可以删除它

但上面三种情况,想要不同用户之间不能互相删除,都是加t位来解决的

 

但ftp多个用户登录到同一个目录,有一个问题就是,不同用户如果能上传的话,可以上传一个同名的文件,那这样就可能造成a用户上传一个同名文件把b用户上传的文件给覆盖了

 

samba里默认就不允许上传同名文件,所以samba适合做文件服务器,多用户登录到同一个目录

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

 

 

例八: create mask 和 directory mask 直接定义上传后的文件或者目录的权限

[share]
    comment = public for everyone
    path = /share
    browseable = yes
    read only = yes
    writeable = yes
    create mask = 0444  --表示创建的或者上传的文件权限为444
    directory mask = 0666 --表示创建的或者上传的目录权限为666

/etc/init.d/smb  restart    

 

例九:user模式下,实现a用户可以上传下载,b用户只能下载,拒绝匿名用户访问

   valid users  = a,b,@group   --只允许a,b用户和group组访问
   write list  = a,@group         --允许写的用户列表

[share]
    comment = public for everyone
    path = /share
    guest ok = no --拒绝匿名用户,或者使用public = no
    write list = a --写列表只允许a用户写,表示只允许a用户上传

/etc/init.d/smb  reload


测试


例十:user模式下,实现a用户可以上传下载,b用户只能下载,属于smb组的用户可以登录和上传下载,别的普通用户和匿名用户都拒绝


[share]
    comment = public for a,b,@smb
    path = /share
    public = no
    valid users = a,b,@smb --注意users不要写成user
    write list = a,@smb


[root@li ~]# useradd smb
[root@li ~]# useradd smb2 -g smb
[root@li ~]# smbpasswd -a smb
[root@li ~]# smbpasswd -a smb2
[root@li ~]# id smb
uid=521(smb) gid=521(smb) groups=521(smb)
[root@li ~]# id smb2
uid=522(smb2) gid=521(smb) groups=521(smb)

验证OK 

 


例十一:user模式下,实现boss用户可以上传下载,secretary用户只能下载,属于it组的用户可以登录并且可以上传和删除自己上传的文件,互相之间不能删除,互相之间不能下载别人的文件,但可以下载boss上传的文件,别的普通用户和匿名用户都拒绝

 

[root@li ~]# useradd boss
[root@li ~]# useradd secretary
[root@li ~]# groupadd it
[root@li ~]# useradd -g it it1
[root@li ~]# useradd -g it it2

[root@li ~]# smbpasswd -a boss
[root@li ~]# smbpasswd -a secretary
[root@li ~]# smbpasswd -a it1
[root@li ~]# smbpasswd -a it2

user模式下

[test]
        comment = hahahahahaha
        path = /test
        public = no
        browseable = yes
        valid users = boss,secretary,@it
        write list = boss,@it
        create mask = 0704

 

mkdir /test 
chmod 757 /test
chmod o+t /test

 


例十二: user模式下,实现a上传下载(可以下载c上传的),b只能下载(可以下载所有人上传的),c只能上传不能下载(但可以下载自己上传的),都可以删除自己的文件,互相不能删除它人文件,其他用户和匿名用户登录拒绝


此例的关键难点是在c用户只能上传,首先思考什么情况才可以下载

-rw-r-----  1 root root     0 Sep  2 14:04 c1
-rw-r--r--  1 root root     0 Sep  2 14:28 c2

能否下载的关键就是登录的用户对下载的文件是否有读权限,
所以上面两个文件a用户只能下载c2,不能下载c1
 
 chmod o+t /share


vim /etc/samba/smb.conf

config file = /etc/samba/smb.conf.%U --手动加上这一句,表示针对每个用户都可以单独写一个配置文件,加在上面的全局[global]里


[share]
    comment = public for a,b,@smb
    path = /share
    public = no
    valid users = a,b,c  
    write list = a --这里先不写c,在下面c用户自己的配置文件里写
    create mask = 0740 --上传文件的权限为740,表示c用户没有r权限,所以c用户下载不了

 

vim /etc/samba/smb.conf.c  --建立一个c用户的单独的配置文件

[share]
   comment = share for c
   path = /share
   writeable = yes --上面的写列表里没有c,所以这里要为yes,表示能上传
   create mask = 0604   --6表示c用户上传的权限自己能读能删除,实现的是自己能下载自己上传的需求;4表示a,b用户能读,实现的是a,b用户能够下载c上传的文件

[root@li ~]# usermod -g a b --注意要把b用户加到a组里

 


例十三:访问控制

注意写到全局参数[global]下

1,拒绝10.1.1网段
hosts deny = 10.1.1.

1,拒绝10.1.1网段,但是允许10.1.1.35
hosts deny = 10.1.1.
hosts allow = 10.1.1.35

2,拒绝所有,但允许10.1.1网段,但又不允许10.1.1.45
hosts deny = all
hosts allow = 10.1.1.  EXCEPT 10.1.1.45


也可以写到单独的共享资源下,只针对此共享资源来进行访问控制

 

========================================================


samba补充知识点:
1,
smbpasswd
 -a    添加smb用户
 -d    禁用smb用户
 -x    删除smb用户
 -e    启用被禁用的smb用户


[root@li ~]# pdbedit -L
[root@li ~]# pdbedit -Lv


2,
linux客户端的访问除了
 smbclient //10.1.1.45/share  -U a

还可以挂载
 mount -t smbfs -o username=a //10.1.1.45/share /mnt --samba-2.x版本
 mount -t cifs -o username=a //10.1.1.45/share /mnt     --samba-3.x版本


3,
testparm  /etc/samba/smb.conf    --测试配置文件


4,网页samba控制工具
  yum install samba-swat  -y

vim /etc/xinetd.d/swat
 
service swat
{
        port            = 901 --端口为901
        socket_type     = stream
        wait            = no
        only_from       = 127.0.0.1 --只允许本地回环访问
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = no --把yes改为no代表启动
}


/etc/init.d/xinetd restart


[root@li test]# netstat -ntlup |grep 901
tcp        0      0 0.0.0.0:901                 0.0.0.0:*                   LISTEN      8201/xinetd  

访问方法:
http://127.0.0.1:901/ --只能用回环地址访问,因为/etc/xinet.d/swat的定义,
输入系统用户及其密码就可以进入 用root用户登录,选项更多

 


====================================================


dhcp  动态主机配置协议

  dynamic  host configureation  protocol


分配IP


一个客户端获取DHCP服务器IP的过程:

客户端先发一个DHCPDISCOVER包 
服务器收到后回应DHCPOFFER包  
客户端再发一个DHCPREQUEST包   
服务器再回应DHCPACK包,绑定地址


  

 软件包: dhcp  dhcp-devel
 
 yum install dhcp*  --安装软件包

 vim /etc/dhcpd.conf  --主配置文件,默认为空,有下面的信息

 # DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample 

 拷贝模块配置文件
    cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf

 

man dhcpd.conf   --查看配置帮助

 

[root@li test]# cat /etc/dhcpd.conf
ddns-update-style interim; --动态更新DNS记录的方式
ignore client-updates; --不启用动态DNS记录的功能

subnet 192.168.195.0 netmask 255.255.255.0 {   --DNS所在网段,服务器本身IP一定是固定,而且必须要在同一个网段内

# --- default gateway
        option routers                  192.168.195.1;--指定客户端获取的默认路由
        option subnet-mask              255.255.255.0;--默认路由的掩码

        option nis-domain               "cluster.org";--客户端获取的NIS域名
        option domain-name              "cluster.org";--客户端获取的域名
        option domain-name-servers      192.168.195.1;--给客户端分配DNS的指向,也就是自动加到客户端的/etc/reslov.conf

        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;--指定客户端获取的ntp服务器
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;

        range dynamic-bootp 192.168.195.50 192.168.195.52;  --分配给客户端的IP地址范围
        default-lease-time 21600; --默认租约时间
        max-lease-time 43200; --最大租约时间

        # we want the nameserver to appear at a fixed address
        host ns {  --以MAC地址为基准,静态IP地址与MAC绑定
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}

 

 

下面以host-only网段来进行测试

[root@li ~]# cat !$
cat /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;

subnet 172.16.163.0 netmask 255.255.255.0 {

# --- default gateway
        option routers                  172.16.163.1;
        option subnet-mask              255.255.255.0;

        option nis-domain               "cluster.com";
        option domain-name              "cluster.com";
        option domain-name-servers      172.16.163.1;

        option time-offset              -18000; # Eastern Standard Time
#       option ntp-servers              192.168.1.1;
#       option netbios-name-servers     192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;

        range dynamic-bootp 172.16.163.2 172.16.163.127;
        default-lease-time 21600;
        max-lease-time 43200;

        # we want the nameserver to appear at a fixed address
        host ns {
                next-server marvin.redhat.com;
                hardware ethernet 12:34:56:78:AB:CD;
                fixed-address 207.175.42.254;
        }
}

 

然后把虚拟机改成host-only网段,把网卡配置设置为dhcp分配,再/etc/init.d/network restart 

 

 

验证:
ifconfig --查看IP
cat /etc/resolv.conf --查看DNS指向
route -n  --查看网关
nisdomainname   --查看nis域

[root@localhost ~]# dhclient eth0
Internet Systems Consortium DHCP Client V3.0.5-RedHat
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

Listening on LPF/eth0/00:0c:29:c9:a6:47
Sending on   LPF/eth0/00:0c:29:c9:a6:47
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
DHCPOFFER from 172.16.163.1
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 172.16.163.1
bound to 172.16.163.127 -- renewal in 8970 seconds.

 

cat /var/log/message    --查看DHCP过程的日志
Mar 25 16:13:02 localhost kernel: eth0: link up
Mar 25 16:13:03 localhost dhclient: DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 4
Mar 25 16:13:04 localhost dhclient: DHCPOFFER from 172.16.163.1
Mar 25 16:13:04 localhost dhclient: DHCPREQUEST on eth0 to 255.255.255.255 port 67
Mar 25 16:13:04 localhost dhclient: DHCPACK from 172.16.163.1
Mar 25 16:13:06 localhost NET[4719]: /sbin/dhclient-script : updated /etc/resolv.conf
Mar 25 16:13:06 localhost avahi-daemon[2294]: Registering new address record for 172.16.163.127 on eth0.
Mar 25 16:13:06 localhost dhclient: bound to 172.16.163.127 -- renewal in 8676 seconds.


[root@localhost ~]# cat /var/lib/dhclient/dhclient-eth0.leases

lease {
  interface "eth0";
  fixed-address 172.16.163.127;
  option subnet-mask 255.255.255.0;
  option time-offset -18000;
  option routers 172.16.163.1;
  option dhcp-lease-time 21600;
  option dhcp-message-type 5;
  option domain-name-servers 172.16.163.1;
  option dhcp-server-identifier 172.16.163.1;
  option nis-domain "cluster.com";
  option domain-name "cluster.com";
  renew 5 2011/3/25 10:37:42;
  rebind 5 2011/3/25 13:28:04;
  expire 5 2011/3/25 14:13:04;
}

 

服务端可以查看分配的信息
[root@li ~]# cat /var/lib/dhcpd/dhcpd.leases
lease 172.16.163.127 {
  starts 5 2011/03/25 08:22:40;
  ends 5 2011/03/25 14:22:40;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:29:c9:a6:47;
}

 

注意的是:同一个网段不要有多个DHCP服务器,会造成客户端获取的混乱
 如果有时候不能正常获取到IP,把租约文件删除,再获取