工作遇到一个需求就是:当拔出网线时,释放掉IP;再次插上网线时,重新分配IP地址。

这个可以分成两部分来做:

1、获取拔插网线的状态

2、释放IP和重新分配IP

一、获取网线的拔插状态:

方法一:用swconfig命令去获取网线的拔插状态

swconfig命令形式:

swconfig dev [port |vlan ] (help|set |get |load |show)

若不知道dev设备名,则先用swconfig list查看一下

例如:

root@:/# swconfig list

Found: switch0 - QCA DESS #可以看到设备名为switch0

以我的板子为例,

在终端敲下:swconfig dev switch0 port 4 get link | awk '{print $2}' | cut -d":" -f2

就可以获取网线的状态,一般为“up”或者"down",即;连接和断开

方法二:利用热拔插事件去检测网卡的拔插状态

二、释放IP

释放IP,就是删除掉IP,

一种方法是利用ifconfig命令,

另外一种是ip命令的删除方式,

还有一种是命令:dhclient -r

三、重新分配IP

这里提供几种方法去获取IP

方法1:

重启network服务

service network restart或者/etc/init.d/network restart

方法2:

单独启动和关闭某个网卡

ifconfig eth0 down #eth0是网卡名字

ifconfig eth0 up

方法3:

使用ifup命令

例如我的板子:ifup lan命令就可以更新IP

ifup lan #lan是设备名

方法4:

利用dhcp服务获取IP

命令:dhclient

方法5:

命令:udhcpc -i br-lan #br-lan是网卡名,用ifconfig可以查看网卡名

这个是单独更新指定的网卡IP,

例如你要更新的网卡是eth0,则命令是:udhcpc -i eth0

那么把上面合起来就能满足拔出网线,是否IP;插入网线,重新分配IP的功能了!

代码如下:

while true; do

status=`swconfig dev switch0 port 4 get link | awk '{print $2}' | cut -d":" -f2` #这个是获取当前网线的拔插状态,UP就是插着网线,down就是拔出网线

if [ "$status" = "up" ]; then

echo "link up" >/dev/console #连上网线时,打印出信息"link up"

udhcpc -i br-lan #插上网线,更新br-lan的IP地址

else

echo "link down" >/dev/console#拔出网线时,打印出信息"link down"

ifconfig br-lan 0.0.0.0 #拔出网线,重置br-lan的IP地址

fi

sleep 2

done

linux拔掉网线ip仍然在,openwrt 实现网线的拔插能够释放IP和重新分配IP地址相关推荐

  1. linux网线插拔后ip地址丢失,网线拔掉检测,嵌入式网线直连开发板断电网线拔掉之后,上电仍能自动设置static静态ip地址...

    网线拔掉检测,嵌入式网线直连开发板断电网线拔掉之后,上电仍能自动设置静态ip地址 1.首先设置永久固定静态ip地址 luther@gliethttp:~$ sudo vim /etc/network/ ...

  2. Linux网络知识详解以及demo(Centos6、7)——OSI、TCP、UDP、IP、子网掩码/划分、网关、路由、广播、虚拟网络、网卡、交换机、DNS、ARP

    ip地址:网络通讯标识信息 子网掩码:在局域网中可以有多少个主机 网关:从一个局域网到另一个局域网的必经之路 网络号:主机位全为0 广播地址:主机位全为1 子网掩码:网络位全为1,主机位全为0 虚拟软 ...

  3. linux网卡下有两个system,systemd-networkd 作为网络管理服务,导致dhcp给所有网卡分配同样的IP...

    我们虚拟机之前的网卡配置是交给 init的 networking 服务来管理的, 具体配置不同系统系统可能不一样. 比如 Debian/Ubuntu系列操作系统配置在 /etc/network/int ...

  4. Linux下为网卡分配IP的工具dhclient

    一. 工具说明--来自man dhclient 二.自动为网卡分配IP的配置 其中,enp0s2是中的0和2是怎么来的? 可见网卡位于pci的bus0dev2. 如果01-netcfg.yaml中配置 ...

  5. 用网线给服务器装系统,只用网线从零开始安装系统

    只用一根网线,没有光驱,软驱和U盘,如何从零安装系统? 这里的安装不是指ghost 那一类克隆方式的安装,而是从原始光盘镜像一步步安装,不喜欢ghost 方式,别人做好的不放心,自己做呢-- 既然已经 ...

  6. 开发板给电脑自动分配IP?手把手教部署零配置网络实现电脑与开发板直连

    关注.星标嵌入式客栈,精彩及时送达 [导读] 在做一个ZYNQ项目时,需要实现嵌入式Linux与Windows电脑直连.可能会有盆友会遇到类似的需求,所以整理分享一下. 问题描述 基于ZYNQ芯片设计 ...

  7. 网络基础3-1(细谈IP协议头, 网络层,子网划分,路由选择,数据链路层,以太网帧格式,MAC地址,再谈ARP协议)

    IP协议 IP协议头格式 4位版本号(version): 指定IP协议的版本, 对于IPv4来说, 就是4 4位头部长度(header length): IP头部的长度是多少个.32bit, 也就是 ...

  8. 使用MultiPowerOnOffTool工具 测试拔插网线对路由器的影响

    使用MultiPowerOnOffTool工具 测试拔插网线对路由器的影响: 链接:https://pan.baidu.com/s/1Y1wxa4RnmAB4t3zKvSoY_g 提取码:xxxx 1 ...

  9. 华为eNSP 配置DHCP自动分配IP地址

    目录 ​一.DHCP Global 全局配置地址池 (一)修改与客户端相连的接口 (二)配置DHCP地址池 (三)自动获取IP 二.高级DHCP配置 三.DHCP interface 基于接口的DHC ...

  10. 路由器自动ip服务器无响应,路由器无法自动分配IP地址原因及解决方法

    在现在生活中,路由器担当了很多要的作用,兼职较多服务器功能,这样的规划确实方便了管理和维护,但也为网络的安全.稳定运行埋下了隐患,一旦网络发生故障,对整个局域网的影响几乎是毁灭性的,本篇介绍如何解决路 ...

最新文章

  1. 分组表管理之保存分组表数据
  2. java期末考试试卷及答案文库_JAVA期末考试试卷及答案
  3. JVM的架构和执行过程
  4. ESX虚拟机文件列表详解
  5. HSI颜色空间及其应用
  6. linux ps查看进程命令
  7. Windows phone listbox动态添加列表项
  8. golang刷Leetcode系列 --- 加1
  9. hp-ux mysql_HP-UX 安装MySQL
  10. golang mysql连接池原理_redis mysql 连接池 之 golang 实现
  11. php fpm子进程数配置,php-fpm进程管理方式以及子进程数量配置原则详解
  12. 解决iSlider的一些问题(滑动组件)
  13. AST语法结构树初学者完整教程
  14. 构建postfix邮件服务器(五)extmail和extman的安装,实现web使用和管理邮件系统...
  15. 让css旋转字体图标
  16. 2022年网络安全行业发展趋势
  17. CSS——网易云音乐之登录页面的实现
  18. ME525 刷机历险记
  19. ShinyApp中的表格:第三天笔记
  20. 常见编码格式(中文编码)

热门文章

  1. 001-前端课程介绍
  2. (转)Qt添加windows开机自启动
  3. 行为金融(八):羊群行为
  4. vue 中 axios的post请求,415错误
  5. ART加载OAT文件的过程分析
  6. VSCode运行Java报错No delegateCommandHandler for vscode.java.resolveMainMethod
  7. windows设置定时自动关闭应用
  8. trackpoint_为什么TrackPoint键盘是ThinkPad爱好者的好礼物
  9. 08 SSM整合案例【企业权限管理系统】:04.AdminLTE的基本介绍
  10. 小程序image组件自适应宽高比