dhcp的编译安装

解压源码:

tar zxvf dhcp-4.2.5-P1.tar.gz
cd dhcp-4.2.5-P1/

配置:

./configure --host=arm-linux ac_cv_file__dev_random=yes

修改Makefile:

cd bind
vim Makefile +55

添加配置 :

./configure BUILD_CC=gcc ac_cv_file__dev_random=yes --host=arm-linux --disable-kqueue
tar xzf bind.tar.gz
vim bind-9.8.4-P2/lib/export/dns/Makefile.in +169
修改CC :
${BUILD_CC} ${ALL_CFLAGS} ${LDFLAGS} -o $@ ${srcdir}/gen.c ${LIBS}
cd ../
make
make DESTDIR=$PWD/tmp install

复制应用程序、配置文件和脚本文件到根文件系统

cp ./client/scripts/linux /mnt/rootfs/etc/dhclient-script
vim /mnt/rootfs/etc/dhclient-script
将#!/bin/bash改成#!/bin/sh
chmod +x /mnt/rootfs/etc/dhclient-script
cd ./tmp/usr/local/
cp ./bin/* /mnt/rootfs/bin/
cp ./sbin/* /mnt/rootfs/sbin/
cp ./etc/dhclient.conf.example /mnt/rootfs/etc/dhclient.conf
cp ./etc/dhcpd.conf.example /mnt/rootfs/etc/dhcpd.conf

创建进程交互文件目录:

mkdir -p /mnt/rootfs/var/db/
touch /mnt/rootfs/var/db/dhclient.leases
touch /mnt/rootfs/var/db/dhcpd.leases

树莓派上安装DHCPD

sudo apt install udhcpd
sudo vim /etc/udhcpd.conf       #修改DHCP池,DNS,网关地址
sudo vim /etc/default/udhcp     #将DHCPD_ENABLE="no"注释,使能UDHCPD
sudo touch /var/lib/misc/udhcpd.leases
sudo systemctl restart udhcpd.service

工具使用

在这里的实验中的热插拔,由于我使用的是sdio接口wifi,直接使用mdev.conf中设备名直接使用wlan0貌似不好使,还没有找到原因(直接将设备名改为任意字符“.*”,本来想通过echo “$MDEV”,找到模块名,但竟然没有匹配上,非常有可能是驱动没有实现的问题),最后直接将auto_wifi_xx.sh脚本命令复制到rcS文件中运行算了,有待后续找到问题。

客户端:

最简单的就是打开网卡之后,使用dhclient wlan0获得ip、网关和DNS
dhclient -d wlan0 可以得到运行的调试信息


添加热插拔功能实现:
当插入网卡的时候,先执行wpa_supplicant连接热点,启动wpa_cli检测连接完成,然后执行脚本启动dhclient

vim /etc/mdev.conf
wlan0 0:0 777 * /etc/auto_wifi_sta.sh

vim /etc/auto_wifi_sta.sh

#!/bin/sh
if [ $ACTION = "add" ];
then                                              wpa_supplicant -B -c/etc/wifi_pswd.conf  -iwlan0wpa_cli -a/etc/wpa_action.sh -B
else                     killall wpa_supplicantkillall wpa_cli killall dhclient
fi

添加执行权限

chmod +x /etc/auto_wifi_sta.sh

一连接上WIFI AP, 就自动执行dhclient脚本:
vim /etc/wpa_action.sh

#!/bin/sh
IFNAME=$1
CMD=$2
if [ "$CMD" = "CONNECTED" ]; thenecho connect $IFNAME, dhclient for it > /dev/consoledhclient $IFNAME
fi
if [ "$CMD" = "DISCONNECTED" ]; thenecho disconnect $IFNAME, kill dhclient for it > /dev/consolekillall dhclient
fi

添加执行权限:

chmod +x /etc/wpa_action.sh

服务端:

最简单的命令,先在/etc/dhcpd.conf中添加一个可分配的网段,然后根据这个网段设置无线网卡的ip:

subnet 192.168.88.0 netmask 255.255.255.0 {range 192.168.88.150 192.168.88.200;    option domain-name-servers 192.168.88.1;        option routers 192.168.88.1;
}
ifconfig wlan0 192.168.88.1
dhcpd -cf /etc/dhcpd.conf wlan0

热插拔功能实现:

vim /etc/mdev.conf
wlan0 0:0 777 * /etc/auto_wifi_ap.sh
vim /etc/auto_wifi_ap.sh
#!/bin/sh
if [ $ACTION = "add" ];
thenecho -e "Hostapd AP Starting\n"hostapd -B /etc/hostapd.confifconfig wlan0 192.168.88.1dhcpd -cf /etc/dhcpd.conf wlan0
elseecho -e "Hostapd AP Closing.\n"killall hostapdkillall dhcpd
fi

添加执行权限:

chmod +x /etc/auto_wifi_ap.sh

dhcp的安装与使用相关推荐

  1. linux下DHCP的安装配置

    今天在整理以前的资料的时候,看到了这篇过去积攒的资料,过程详细所以拿来给大家一块分享,同时我也在做,提高一下熟练度. [实验名称]Linux下DHCP服务的配置与安装 [实验拓扑] [实验目标] 了解 ...

  2. DHCP的安装与分配

    工作任务描述 近来随着公司的业务不断增长,公司的规模也在一步一步的膨胀,计算机数量的增长非常明显,管理员几乎每天都在忙着为新员工手工做系统,分IP,将他们的主机连入网络,但时间一长,他们发现公司的IP ...

  3. linux 下DHCP的安装

    今天与大家分享linux下是怎么样实现DHCP的 一.首先了解DHCP的概念 DHCP是实现主机IP地址DNS等动态配置的网络协议. DNCP可以在多种操作系统中实现,包括最常用的LINUX系统和WI ...

  4. DHCP的安装到简单测试(tar方式)

    今天继续写一篇以tar方式安装DHCP服务器的文章.为什么用tar方式不用rpm,主要是因为我发现到网站上下载安装文件的时候,很难见到有最新rpm包的(等不及了,哈哈),况且网上有很多以rpm安装文章 ...

  5. kickstart+TFTP+PXE+NFS+DHCP批量安装系统,raid

    服务端给工作站批量安装系统 通过PXE(预启动执行环境,通过网卡启动,网卡必须支持PXE技术)技术,支持工作站从远程服务器下载镜像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP ...

  6. linux dhcp rpm 安装

    rpm –ivh dhcp-3.0.5-7.el5.i386.rpm        //rpm安装DHCP的服务器端 cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.s ...

  7. linux的dhcp的安装,linux下DHCP的安装配置

    一,首先是安装DHCP的rpm包 ,然后配置下列文档,如在10.255.6.0子网掩码是255.255.255.0 的 DHCP的配置文档/etc/dhcpd.conf =============== ...

  8. 详解DHCP服务安装与管理

    一.DHCP是什么 名称:DHCP – Dynamic Host Configuration Protocol 动态主机配置协议  功能:DHCP(Dynamic Host Configuration ...

  9. linux配置PXE+DHCP批量安装操作系统

    PXE(preboot execute environment,预启动执行环境) 如果只有一两台电脑要装系统,我们可以使用光盘或者U盘装系统,假如有成百上千台电脑需要装操作系统,如果还用光盘U盘的方式 ...

最新文章

  1. java.lang.Class
  2. 利用隐藏神经元解决异或问题的小型示例程序
  3. mysql自动异地备份脚本_MYSQL数据库自动本地/异地双备份/MYSQL增量备份
  4. python可以实现什么黑科技_Python黑科技之元类
  5. Tomcat : IOException while loading persisted sessions: java.io.EOFException
  6. 常用正则表达式和shell命令列表
  7. java周期_java 周期时期计算
  8. mysql基本常用命令
  9. 通过CrawlSpider对招聘网站进行整站爬取(拉勾网实战)
  10. TCP/UDP套接字网络协议
  11. 日语阅读-1-如何看ほう的用法
  12. easypoi 语法_知识点总结及语法学习资料及视频
  13. python:画混淆矩阵
  14. oracle 进入empt,关于redhat6.2静默安装oracle11g出现的问题 大神救命
  15. 远程桌面无法连接解决方法
  16. 15b万用表怎么测电容_怎么判断启动电容好坏_启动电容怎么测量好坏_数字万用表测电容好坏...
  17. NetWare 客户服务禁用了欢迎屏幕和快速切换恢复方法
  18. ⻦哥的LINUX私房菜 学习
  19. 雾霾、压力、不良习惯对肌肤的4大危害
  20. Leetcode. Largest Rectangle in Histogram

热门文章

  1. 数据库关系模型之关系演算:存在量词和全称量词的使用(2020-04-13)
  2. html代码生产工具可排班,排班算法
  3. Google发布手机街景地图
  4. [usaco2010_mar_silver]极品飞车
  5. linux在内核中设置开机logo
  6. android手机振动
  7. 网络大电影《齐天大圣之大闹龙宫》投资上线,限时预购中
  8. 美国版战狼—12勇士
  9. 6.openwrt改变打印串口波特率,添加ssh client,修改wwan口配置为自动获取ip
  10. 解决Neo4j Server shutdown initiated by request