由于要使用网络通讯,所以不可避免的要用到dhcp。理想的网络通讯方式是下面3种都要支持:

  1,接入已有网络。这便要求可以作为dhcp客户端。

  2,作为DHCP服务器,动态分配IP。

  3,指定固定IP

  第3种情况没有什么好说的,简单说下前2种情况。

  使用步骤:

  (1)在内核的网络项里面把DHCP配置上;

  (2)在busybox里面把[*]udhcp server(udhcpd)

  [*]udhcp client(udhcpc)都选上。

  udhcpd就是终端设备作为DHCP服务器

  udhcpc就是终端设备作为DHCP客户端

  busybox里面对dhcp都已经给出例子了,

  [zhh@localhost busybox-1.14.1]$ ls ./examples/udhcp/

  sample.bound  sample.deconfig  sample.nak  sample.renew  sample.script  simple.script  udhcpd.conf

  比如使用udhcpc时

  就可以直接把simple.script拿来使用,改不改名字都可以,busybox里面默认的目录文件是/usr/share/udhcpc/default.script

  可以查看下帮助

  # udhcpc --help

  BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary

  Usage: udhcpc [-Cfbnqtvo] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]

  [-p pidfile] [-r IP] [-s script] [-O dhcp-option]... [-P N]

  -V CLASSID      Vendor class identifier

  -i INTERFACE    Interface to use (default: eth0)

  -H,-h HOSTNAME  Client hostname

  -c CLIENTID     Client identifier

  -C              Suppress default client identifier

  -p file         Create pidfile

  -r IP           IP address to request

  -s file         Run file at DHCP events (default /usr/share/udhcpc/default.script)

  -t N            Send up to N request packets

  -T N            Try to get a lease for N seconds (default 3)

  -A N            Wait N seconds (default 20) after failure

  -O OPT          Request DHCP option OPT (cumulative)

  -o              Do not request any options (unless -O is also given)

  -f              Run in foreground

  -b              Background if lease is not immediately obtained

  -S              Log to syslog too

  -n              Exit with failure if lease is not immediately obtained

  -q              Quit after obtaining lease

  -R              Release IP on quit

  -P N            Use port N instead of default 68

  -a              Use arping to validate offered address

  #

  这样就很好理解了。

  下面就说说使用udhcpd,同样可以直接把busybox自带的udhcpd.conf作为参考,怎么设置该文件就不详述了,去参考相关文档即可。看看udhcpd怎么使用

  # udhcpd --help

  BusyBox v1.14.1 (2010-01-22 10:35:16 CST) multi-call binary

  Usage: udhcpd [-fS] [-P N] [configfile]

  DHCP server

  -f      Run in foreground

  -S      Log to syslog too

  -P N    Use port N instead of default 67

  帮助一目了然。

  我使用的时候直接

  #udhcpd /etc/udhcpd.conf

  即可。

  还有一个租约文件要简要说说,使用udhcpd时会要求建立一个租约文件,按照提示创建一个就行了,它起什么作用呢?就是为了记录客户端所获得的IP,如果没有租约文件,则会重新给客户端分配一个新IP,如果有,则使用原先分配的IP。

http://blog.csdn.net/huojianying123456/article/details/47362215

以下几点基于busybox 1.23.2 中udhcp的实现, 不同客户端、服务器实现可能会有差异。
DHCP client  ---- udhcpc :
-R选项可以让udhcpc进程退出的时候释放ip地址。
   
DHCP Server ---- udhcpd:

1. 不会主动释放IP地址,即使原来的租约超时(前提是IP地址还没分配完,或者分配完了但是没有新的客户端请求地址);
2.  假设IP地址A已经超期,但是DHCP服务器还有剩余IP地址,这时如果有请求,服务器优先分配剩余的IP地址;
3. 假设服务器上没有剩余IP地址,但是有一批超期的IP地址,这时如果有请求,服务器优先分配超时最久的IP地址(即最早分配出去的IP地址);
4. 如果一个客户之前申请了IP地址A,然后不再续约,A地址超期; 过了很久该客户又去请求DHCP,如果这时A地址还没分配给其他客户,那么服务器还会分配A地址给该客户;
5. 释放租约只是把某一项请求的超时时间设置为当前时间,并不会删除该表项;
6. 如果所有的IP地址都分配出去了,并且都没到期,新的请求上来,不再分配IP地址,即使某个IP对应好的客户端已经不在线了(ping不通)。

udhcpc 和 udhcpd相关推荐

  1. udhcpc不配置默认网关问题解决

    问题现象 设备里的http server运行了CGI,在设置eth0为DHCP之后,怎么也没有默认路由信息.CGI调用的脚本最终是使用udhcpc,在shell里手工运行udhcpc总是能够自动设置默 ...

  2. ubuntu下安装交叉编译的环境脚本

    不少同学喜欢使用ubuntu进行嵌入式开发,但缺少不少开发环境和工具,以下为个人多年总结的配置环境脚本,供大家参考. 如sh的配置.vim的配置.smb配置等.可以直接保存为ubuntu.sh , 然 ...

  3. dhcp服务器能为客户端提供哪些信息,为DHCP客户端提供DHCP服务器的MAC [关闭]

    Background info: 我有一套专有的嵌入式Linux网络设备,其中一个将配置为DHCP服务器,其余的将是DHCP客户端 . 我需要让客户端设备只接受来自服务器设备的DHCP租约,忽略同一L ...

  4. WG225模块(SDIO WIFI)调试记录

    由于笔记是在wznote做的,图片部分无法粘贴过来,如需要看图可以点击此处查看 主芯片:TI-DM8168 Linux版本:2.6.37 WG225是深圳天工测控做的一款wifi+蓝牙的芯片模组 首先 ...

  5. 学习嵌入式的相关问题汇总

    udhcpd.leases这个文件是干什么的 ? `udhcpd.leases`是`udhcpd` DHCP服务器程序记录分配给DHCP客户端的IP地址的文件.当`udhcpd`分配一个新的IP地址给 ...

  6. busybox 知:构建

    文章目录 1. 前言 2. 构建 2.1. 下载 2.2. 配置 2.3. 编译 2.4. 举例 3. 使用 4. 参考 1. 前言 BusyBox 将许多常见 UNIX 实用程序的微小版本组合成一个 ...

  7. CentOS下使用busybox

    busybox被称为嵌入式linux的瑞士军刀,这句话是在busybox自己介绍自己的时候提出的(The Swiss Army Knife of Embedded Linux).busybox整合了很 ...

  8. wpa_supplicant 和hostpad让WiFi模块同时工作在AP+STA模式

    本文将介绍如何使用 wpa_supplicant服务程序和wpa_cli 客户端程序,让嵌入式设备的WIFI模块工作在station模式并连接网络,以及如何使用hostapd和udhcpd创建一个WI ...

  9. 纯手工打造mini linux实例

    8.2.1.mini linux内核编译 实验目的: 对Linux内核以非模块化手动编译,并借助busybox安装根文件系统,来制作最小化的linux系统.所谓非模块化,就是将各种所需的硬件驱动.支持 ...

  10. linux udhcpc指令,dhcpclient和udhcpc区别和用法

    udhcpc: 1.开发板支持的指令,内核移植时通过make menuconfig打开或关闭,并且需要修改Busybox 2.udhcpc只作为客户端使用,服务器指令为udhcpd. 3.使用方法 - ...

最新文章

  1. HarmonyOS UI开发 DirectionalLayout(定向布局) 的使用
  2. CI框架如何删除地址栏的 index.php
  3. SDUT OJ 数据结构实验之排序一:一趟快排
  4. hdu 1872(看病要排队)(优先队列)
  5. 不可不读的绝对英文经典
  6. SpringtBoot+SpringSecurity+Jwt+MyBatis整合实现用户认证以及权限控制
  7. python图像分割动态域值_python+opencv阈值分割
  8. python语音规划路线_重新规划路线(python)
  9. python爬虫外贸客户_python 爬虫抓取亚马逊数据
  10. 编写一个猜数字游戏程序:
  11. Element ui select同时获取value和label的值
  12. 博阅电纸书_【博阅电纸书】博阅 M1 柠檬电纸书阅读器评测,博阅T62电纸书评测_什么值得买...
  13. 精通 TensorFlow 1.x 中文版(初稿)
  14. 为什么项目经理依然想写代码?
  15. CSDN写博客图片的放大、缩小、去水印、居中
  16. Add NIC to Openfiler 2.3
  17. Atitit 文件系统概论 艾提拉著 目录 1. NTFS系统 1 1.1.  NTFS文件系统概述 1 1.2.   1.1  文件系统简介  1.2  NTFS文件系统 1 1.3. 第2章
  18. matlab 三对角矩阵 追赶法,计算方法追赶法解三对角矩阵方程
  19. android手机连接windows电脑,安卓手机USB怎么连接电脑上网(一个APP让你的安卓手机变Windows电脑)...
  20. el-dialog el-tabs结合样式改造

热门文章

  1. SSIM公式:结构相似性计算原理,基于SSIM的图像质量评价
  2. 【软件工程】对软件工程课程的希望及个人目标
  3. SVN checkout 之后图标没有显示(绿色勾)的问题
  4. IP地址分类(五类)、保留地址
  5. VGA常用分辨率及计算方法
  6. 魔兽世界拍卖行稳定服务器,魔兽世界TBC:大量玩家拍卖行卡到抓狂,分析其中可能的原因...
  7. elas算法源码赏析(一):PGM格式图片的读取和保存
  8. 华硕aura完全卸载_手感细腻,外观出色,配件良心、华硕TUF GAMING K7 光轴机械键盘...
  9. 一种小封装485芯片
  10. 并查集算法题-We Are A Team-python实现