令 ifplugd 支持网桥和弹出消息(2012-03-04 更新)

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
回复
头像
自由建客
帖子: 13445
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: [email protected]
送出感谢: 12 次
接收感谢: 114 次
联系:

令 ifplugd 支持网桥和弹出消息(2012-03-04 更新)

#1

帖子 自由建客 » 2012-03-04 8:57

令 ifplugd 支持网桥和弹出消息

[text]
# 更新日志:
2012-03-04
无实质性变更。仅修改对于网桥的弹出消息提示方式。比如原本只提示“eth0”并不能说明 eth0 已加入网桥,现改为提示“br0:eth0”以求清晰。
2012-03-03 首发
实现支持网桥和在活动桌面弹出消息功能。
[/text]

ifplugd 对于喜欢用 /etc/network/interfaces 配置网络的朋友来说确实是个好东西。但它并不支持网桥,也不能在通断之时如同 network-manager 一般弹出消息。

不支持网桥原因在于,它只能检测并直接操作(ifup / ifdown)eth0 等物理接口的通断,而网桥的起停偏偏并不能直接操作物理接口。本脚本便是对原有的 /etc/ifplugd/action.d/ifupdown 略加修改了一下,加了一种映射机制,令其操作物理接口所属的网桥。有兴趣的朋友可对照原先的 ifplugd 脚本。映射关系记录在 /var/run/ifplugd.map 之中,一行一射,左为物理接口,右为所属网桥,中间等号相连不含空白符,比如 eth0=br0。

使用时,只要在 /etc/network/interfaces 中加入操作映射表之行即可,请看以下示例。若使用网桥 br0,则将 eth0 的映射目标修该为 br0。若不用网桥而直接使用 eth0,则删除其映射项,改成 eth0=eth0 当然也可以,但显然有些多此一举。
[text]
# interfaces 示例
iface eth0 inet dhcp
pre-up ifdown br0
post-up sed -i '/^eth0=/d' /var/run/ifplugd.map || true

iface br0 inet dhcp
pre-up ifdown eth0
pre-up ifup tap1
pre-up ifconfig tap1 0.0.0.0
bridge_ports eth0 tap1
post-up sed -i '/^eth0=/d' /var/run/ifplugd.map || true
post-up echo 'eth0=br0' >>/var/run/ifplugd.map
[/text]

不支持弹出消息原因在于, ifplugd 并不像 network-manager 一样有桌面端(托盘图标那个),而是只有守护进程。守护进程素来不知该如何发送消息到当前活动桌面,所以一直以来它只能在后台默默工作,直到我写了个 notify-send2(我不知道别人是否也写了个类似的,我并未在网上撞见)。关于 notify-send2,请看《让守护进程给活动桌面发送弹出消息》。若链接已死请看我签名,若未直接显示相关信息,请点击【更多在此】!

另外,如果用 dhcp 获取 IP,插入网线时消息弹出会比较慢,因为 ifup 总要等到获取 IP 成功或超时(通常是 32 秒)。作为守护进程,弹出消息语言由系统默认语言(Debian / Ubuntu 常定义在 /etc/default/locale)决定,而非某桌面用户设置。

依赖的系统所属包(Debian / Ubuntu): ifplugd dash sed
依赖的非系统原有工具: notify-send2
ifplugd-action.tar.gz
(697 Bytes) 下载 102 次
SHA1: 15fd8624eeb1f970325fdc9c154d3fb12f4138b7
lookme9999
帖子: 14
注册时间: 2009-09-28 15:59
送出感谢: 0
接收感谢: 0

Re: 令 ifplugd 支持网桥和弹出消息(2012-03-04 更新)

#2

帖子 lookme9999 » 2012-04-13 0:09

:em11 虽然我看不懂,我在努力看懂,顶一个
头像
自由建客
帖子: 13445
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: [email protected]
送出感谢: 12 次
接收感谢: 114 次
联系:

Re: 令 ifplugd 支持网桥和弹出消息(2012-03-04 更新)

#3

帖子 自由建客 » 2012-04-13 20:13

用 ifplugd 的才明白。
头像
ywmy210
帖子: 252
注册时间: 2010-10-14 12:54
送出感谢: 25 次
接收感谢: 0

Re: 令 ifplugd 支持网桥和弹出消息(2012-03-04 更新)

#4

帖子 ywmy210 » 2012-04-24 8:00

看代码头疼。。
回复

回到 “网络相关问题”