debian 系统下,有没有简单的办法检测指定网卡配置是 dhcp/static/manual?

2021-10-24 10:43:16 +08:00
 skinny

我想到的是通过查找网卡配置文件 /etc/network/interfaces 的内容来判定,但是网卡配置可能写到了 /etc/network/interfaces.d 下的某个文件,而且配置文件内容的一行要是被拆成了奇形怪状的好几行怎么办?虽然多写几句 bash script 也能搞定,但是想问问有没有别的办法。

那个 ifquery 命令我试过,没有用,按 help 输出和 manpage 操作,要么输出为空,要么根本不能正常解析它自己的选项,连示例都不能运行。

3049 次点击
所在节点    Linux
9 条回复
Ayahuasec
2021-10-24 10:56:47 +08:00
dhcp 和 static/manual 好像可以通过 ip addr 里每个网卡的 ip 的那一行看有没有 dynamic 来确定
不过我也不知道怎么把 manual 和 static 区别开来
Remember
2021-10-24 12:17:31 +08:00
ps -auxf , check if isc-dhcp process exist.
skinny
2021-10-24 12:23:52 +08:00
@Ayahuasec 有的 VPS 环境即便是 dhcp 也没有 dynamic……
skinny
2021-10-24 12:39:41 +08:00
@Remember 嗯,查 dhcp 客户端进程信息也是一个检查是不是 dhcp 的办法
zyq2280539
2021-10-24 13:36:21 +08:00
debian 下不知道,我知道 ubuntu 下做这些很容易
ruidoBlanco
2021-10-24 14:35:30 +08:00
一句话的事儿。

awk '/iface eth0/' /etc/network/{interfaces,interfaces.d/*}
Arnie97
2021-10-24 14:45:42 +08:00
这个问题的前提是系统管理员一定用 ifupdown 体系设置的网络么…

作为只用 systemd networkd 并把 /etc/network 整个删了的 Debian 用户,我建议用一楼说的判定逻辑:

$ ip a s eth0 dynamic
liuxu
2021-10-24 16:03:23 +08:00
$ journalctl -u NetworkManager --no-tail |grep dhclient
liuxu
2021-10-24 16:14:23 +08:00
@liuxu 不过有的 vps 没有用 NetworkManager.service

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/810117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX