找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 6586|回复: 22

OpenWrt什么命令可以断开网口物理连接?

[复制链接]
发表于 2019-2-19 04:04 | 显示全部楼层 |阅读模式
本帖最后由 scucs 于 2019-2-20 23:23 编辑

我有一个脚本,修改路由器LAN网段后,需要重新给电脑(DHCP客户端)分配地址。我尝试过以下方法:
1.   /etc/init.d/dnsmasq restart
2.   /etc/init.d/network restart
3.   ifdown lan && sleep 5 && ifup lan
均无效,电脑始终没有显示网线断开,也没有重新获取新的IP地址。

请教一下,什么命令可以断开网口物理连接再连上(模拟拔掉网线再插上)?
之前在一些QQ群咨询了一下,得到的答复是写寄存器重置switch,但这种方法我没法用,我需要不同机型通用的命令,因为要在不同架构路由器的OpenWrt上实现。
是否有更好的方法?谢谢!

编辑一下:
摸索了一天,找到原因:
/etc/init.d/network restart或者ifdown或者ifconfig xxx down命令,只能让CPU内置的switch物理断开。
问题就出在外挂switch芯片的路由器上,就好比外接了一个交换机,电脑是连在交换机上的,路由器CPU物理断网不影响外挂switch。所以电脑感应不到物理断网,不会重新发送DHCP request。


原因是找到了,解决方案还是没有。。。

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-2-19 09:03 | 显示全部楼层
直接reboot

点评

目前是这样处理,但这样处理很低级,也达不到实时性要求。  详情 回复 发表于 2019-2-19 13:33
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-19 09:19 | 显示全部楼层
也是遇到过,后面没解决,关注一下
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-19 13:33 来自手机 | 显示全部楼层
cocor 发表于 2019-2-19 09:03
直接reboot

目前是这样处理,但这样处理很低级,也达不到实时性要求。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-19 16:50 | 显示全部楼层
DHCP 分配的IP都有一个有效期的,在有效期内你把脚本运行一万遍,ip都不会变的,除非你重启DHCP 服务

点评

/etc/init.d/dnsmasq restart不就是重启DHCP服务吗?  详情 回复 发表于 2019-2-19 22:08
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-19 22:08 | 显示全部楼层
raykong 发表于 2019-2-19 16:50
DHCP 分配的IP都有一个有效期的,在有效期内你把脚本运行一万遍,ip都不会变的,除非你重启DHCP 服务

/etc/init.d/dnsmasq restart不就是重启DHCP服务吗?
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-19 22:43 | 显示全部楼层
把dncp有效期改成1分钟,好像这样也不行哦
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-20 01:23 | 显示全部楼层
/etc/init.d/network restart是会重启网络,所以你没断就说明你没重启,自己找问题吧

点评

我连续下载测试了,/etc/init.d/network restart的时候,网会断,但网络重新启动之后,不拔网线,客户端(电脑)死活不会重新获取IP地址,还是我修改前的网段,所以一直没法上网。直到我拔网线重插,才会重新获取IP  详情 回复 发表于 2019-2-20 03:26
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-20 03:26 | 显示全部楼层
本帖最后由 scucs 于 2019-2-20 03:28 编辑
paldier 发表于 2019-2-20 01:23
/etc/init.d/network restart是会重启网络,所以你没断就说明你没重启,自己找问题吧

我连续下载测试了,/etc/init.d/network restart的时候,网会断,但电脑不会显示网线拔出。只要我不拔网线,网络重新启动之后,客户端(电脑)死活不会重新获取IP地址,还是我修改前的网段,所以一直没法上网。直到我拔网线重插,才会重新获取IP地址。我现在搞不定的就是这个。

点评

是这样的,重启网络只是linux重启了网络这个软件模块,并没有让网卡这个硬件断电。而客户端必须要所连接网卡断电才会认为网络断开。如果你路由器和客户端中间还有交换机的话,即使重启路由,客户端都不会主动去重新  详情 回复 发表于 2019-2-20 09:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-20 09:06 | 显示全部楼层
scucs 发表于 2019-2-20 03:26
我连续下载测试了,/etc/init.d/network restart的时候,网会断,但电脑不会显示网线拔出。只要我不拔网 ...

是这样的,重启网络只是linux重启了网络这个软件模块,并没有让网卡这个硬件断电。而客户端必须要所连接网卡断电才会认为网络断开。如果你路由器和客户端中间还有交换机的话,即使重启路由,客户端都不会主动去重新获取IP

点评

路由器直接连电脑。中间没有交换机。值得注意的是,/etc/init.d/network restart 也不会让路由器网口物理断电。  详情 回复 发表于 2019-2-20 13:47
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-20 10:36 | 显示全部楼层
/etc/init.d/network restart不会重新分配ip应该是sdk的bug,op是没问题的,有些厂家的sdk确实存在这个问题,方法也就只有用他们的工具关掉物理端口然后在打开,你想搞跨芯片是不可能的,除非你把arm mips mipsle x86封装到一起,想想你那小flash能不能放下这个工具,但你可以在makeflie里给不同的芯片安装不同的工具和脚本,这个就简单了
如果你是op出现这个问题,那么锅就是你的了,检测自己的代码吧

点评

换了几个不同的路由器试了一下,得出以下结论: CPU内置switch的,/etc/init.d/network restart的时候,会线缆拔出断网的。 麻烦的是外挂switch芯片的路由器,/etc/init.d/network restart的时候,不会物理断网(  详情 回复 发表于 2019-2-20 22:36
不是厂家sdk。LEDE 17.01.4。 /etc/init.d/network restart之后,不会重新分配ip地址。 但/etc/init.d/network stop && sleep 3600 && /etc/init.d/network start 这样会重新分配ip地址。前提是,network服务停的  详情 回复 发表于 2019-2-20 13:52
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-20 13:47 来自手机 | 显示全部楼层
cocor 发表于 2019-2-20 09:06
是这样的,重启网络只是linux重启了网络这个软件模块,并没有让网卡这个硬件断电。而客户端必须要所连接 ...

路由器直接连电脑。中间没有交换机。值得注意的是,/etc/init.d/network restart 也不会让路由器网口物理断电。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| 发表于 2019-2-20 13:52 来自手机 | 显示全部楼层
paldier 发表于 2019-2-20 10:36
/etc/init.d/network restart不会重新分配ip应该是sdk的bug,op是没问题的,有些厂家的sdk确实存在这个问题 ...

不是厂家sdk。LEDE 17.01.4。
/etc/init.d/network restart之后,不会重新分配ip地址。
但/etc/init.d/network stop && sleep 3600 && /etc/init.d/network start  这样会重新分配ip地址。前提是,network服务停的时间够久。我试过,sleep 600(10分钟)都没用。非要sleep 3600(1小时)才能重新分配。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-20 14:37 | 显示全部楼层
路由上除了reboot也一直没找到好办法,后来只好在电脑网卡禁用再启用。

点评

我也是。 要么就是电脑上ipconfig /renew也行  详情 回复 发表于 2019-2-20 17:31
不知道用ifdown eth0 && ifup eth0(这里主要是直接重启物理网卡)能不能行。  详情 回复 发表于 2019-2-20 16:02
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2019-2-20 16:02 | 显示全部楼层
leeyeung 发表于 2019-2-20 14:37
路由上除了reboot也一直没找到好办法,后来只好在电脑网卡禁用再启用。

不知道用ifdown eth0 && ifup eth0(这里主要是直接重启物理网卡)能不能行。

点评

没用过,试过了。是逻辑断网口,不是物理断网口。  详情 回复 发表于 2019-2-20 17:31
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-4-20 23:52

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表