Dhclient - Linux / Unix命令

dhclient - 动态主机配置协议客户端

概要

dhclient [ -p port ] [ -d ] [ -q ] [ -1 ] [ -r ] [ -lf 租赁文件 ] [ -pf pid文件 ] [ -cf 配置文件 ] [ -sf 脚本文件 ] [ -s 服务器 ] [ -g中继] [ -n ] [ -nw ] [ -w ] [ if0 [ ... ifN ]]

描述

Internet软件联盟DHCP客户端dhclient通过静态分配地址提供了一种使用动态主机配置协议,BOOTP协议配置一个或多个网络接口或者这些协议失败的方法。

操作

DHCP协议允许主机联系中央服务器,该中央服务器维护可以在一个或多个子网上分配的IP地址列表。 DHCP客户端可以从该池中请求地址,然后临时将其用于网络通信。 DHCP协议还提供了一种机制,客户可以通过该机制了解其所连接网络的重要细节,例如默认路由器的位置,名称服务器的位置等。

启动时,dhclient会读取dhclient.conf以获取配置说明。 然后它会获取当前系统中配置的所有网络接口的列表。 对于每个接口,它都会尝试使用DHCP协议配置接口。

为了跟踪系统重启和服务器重启时的租用情况,dhclient会在dhclient.leases (5)文件中保存它已分配的租约列表。 在启动时,读取dhclient.conf文件后,dhclient读取dhclient.leases文件以刷新其已分配租约的内存。

当获得新的租约时,它将附加到dhclient.leases文件的末尾。 为了防止文件变得任意大,dhclient会不时从它的内核租约数据库中创建一个新的dhclient.leases文件。 旧版本的dhclient.leases文件保留在名称dhclient.leases〜下,直到下一次dhclient重写数据库。

如果DHCP服务器在第一次调用dhclient时(通常是在初始系统引导过程中)不可用,旧租约将保留。 在这种情况下,对dhclient.leases文件中尚未过期的旧租约进行测试,如果它们被确定为有效,则会使用它们,直到它们到期或DHCP服务器可用。

有时可能需要访问不存在DHCP服务器的网络的移动主机可能预装有该网络上固定地址的租约。 当所有联系DHCP服务器的尝试都失败时,dhclient会尝试验证静态租约,如果成功,将使用该租约直到重新启动。

移动主机也可能会前往某些网络,但DHCP不可用但BOOTP在。 在这种情况下,与网络管理员一起安排在BOOTP数据库中的条目可能是有利的,以便主机可以在该网络上快速启动,而不是循环通过旧租约列表。

命令行

dhclient应尝试配置的网络接口的名称可以在命令行中指定。 如果在命令行中没有指定接口名称,则dhclient通常将标识所有网络接口,如果可能则消除非广播接口,并尝试配置每个接口。

也可以在dhclient.conf(5)文件中按名称指定接口。 如果以这种方式指定接口,则客户端将只配置在配置文件或命令行中指定的接口,并将忽略所有其他接口。

如果DHCP客户端应侦听并在标准(端口68)以外的端口上传输,则可以使用-p标志。 应该跟随dhclient应该使用的udp端口号。 这对于调试目的非常有用。 如果为客户端指定了不同的端口以侦听和发送,则客户端也将使用不同的目标端口 - 一个大于指定的目标端口。

DHCP客户端在获取IP地址之前,通常会将其发送的任何协议消息发送到IP限制的广播地址255.255.255.255。 出于调试目的,让服务器将这些消息传输到其他地址可能会很有用。 这可以用-s标志指定,后跟目标的IP地址或域名。

出于测试目的,可以使用-g标志设置客户端发送的所有数据包的giaddr字段,然后再发送IP地址。 这只对测试有用,不应期望以任何一致或有用的方式工作。

DHCP客户端通常会在前台运行,直到它配置了一个接口,然后恢复在后台运行。 要运行强制dhclient始终作为前台进程运行,应指定-d标志。 在调试器下运行客户端时,或者在System V系统上的inittab运行时,这非常有用。

客户端通常会打印一条启动消息,并将协议序列显示到标准错误描述符,直到它获得一个地址,然后仅使用syslog(3)工具记录消息。 -q标志防止除错误以外的任何消息被打印到标准错误描述符。

客户端通常不会释放当前的租约,因为它不是DHCP协议所要求的。 一些有线ISP要求他们的客户通知服务器他们是否希望释放分配的IP地址。 -r标志显式释放当前的租约,一旦租约被释放,客户端退出。

-1标志导致dhclient尝试一次获得租约。 如果失败,dhclient以退出代码2退出。

DHCP客户端通常从/etc/dhclient.conf获取其配置信息/var/lib/dh​​cp/dhclient.leases获取其租约数据库将其进程ID存储在名为/var/run/dhclient.pid的文件中并配置使用/ sbin / dhclient-script的网络接口要为这些文件指定不同的名称和/或位置,请分别使用-cf, -lf, -pf-sf标志,后跟该文件的名称。 如果在启动DHCP客户端时,例如, / var / lib / dhcp/ var / run尚未装载,这可能特别有用。

如果DHCP客户端无法识别要配置的任何网络接口,则它通常会退出。 在笔记本电脑和其他具有热插拔I / O总线的计算机上,系统启动后可能会添加广播接口。 当-w标志没有找到任何这样的接口时,可以使客户端不会退出。 然后可以使用omshell(8)程序在网络接口已被添加或删除时通知客户端,以便客户端可以尝试在该接口上配置IP地址。

可以指示DHCP客户端不要尝试使用-n标志配置任何接口。 这最有可能与-w标志结合使用。

也可以指示客户端立即成为守护进程,而不是等到它获得IP地址。 这可以通过提供-nw标志来完成。

组态

单独讨论dhclient.conf(8)文件的语法。

OMAPI

DHCP客户端提供了一些在运行时控制它的能力,而不会停止它。 该功能是使用OMAPI提供的,该API用于处理远程对象。 OMAPI客户端使用TCP / IP连接到客户端,进行身份验证,然后可以检查客户端的当前状态并对其进行更改。

用户程序不应直接实施基础OMAPI协议,而应使用dhcpctl API或OMAPI本身。 Dhcpctl是一个处理OMAPI不会自动执行的一些管家杂事的包装器。 Dhcpctl和OMAPI记录在dhcpctl(3)omapi(3)中 。 你想要用客户端做的大多数事情都可以使用omshell(1)命令直接完成,而不必编写一个特殊的程序。

控制对象

控制对象允许您关闭客户端,释放它拥有的所有租约并删除它可能添加的任何DNS记录。 它还允许您暂停客户端 - 这将取消客户端正在使用的任何接口的配置。 然后您可以重新启动它,这会导致它重新配置这些接口。 您通常会在进入休眠状态或睡在笔记本电脑前暂停客户端。 然后你会恢复它的权力回来后。 这允许PC卡在计算机处于休眠或睡眠状态时关闭,然后在电脑退出休眠或休眠状态后重新初始化为之前的状态。

控制对象有一个属性 - 状态属性。 要关闭客户端,请将其状态属性设置为2.它将自动执行DHCPRELEASE。 要暂停它,请将其状态属性设置为3.要恢复它,请将其状态属性设置为4。

重要提示:使用man命令%man )查看特定计算机上的命令使用方式。