我在一台有两个以太网接口(etho 和 eth1)的服务器上遇到了问题,它运行 linux-ubuntu-server。我需要 eth1 不发出任何 dhcp 请求,因为我只需要它作为一个监听接口,显然我需要 eth0 正常运行。那么我该如何禁用 eth1 上的任何 dhcpclient 请求?
预先感谢。
答案1
就像是:
auto lo eth0 eth1
iface lo inet loopback
iface eth1 inet static
address 192.168.32.130
netmask 255.255.255.0
gateway 192.168.32.1
在您的/etc/network/interfaces
配置文件中将为您分配eth1
一个静态 IP 地址。
答案2
有时即使/etc/network/interfaces
文件正确,dhclient
也会继续在静态接口上请求 IP 地址。问题可能是存在/var/lib/dhcp/dhclient.*.leases
包含不正确信息的旧文件。只需 kill dhclient
,删除这些文件,然后重新启动(通过在 DHCP 接口上执行ifdown
/ ifup
)。
答案3
对于现代 Linux 操作系统,这可以通过网络管理器进行控制:
在 RHEL 中:更改
BOOTPROTO=dhcp
文件中的行/etc/sysconfig/网络脚本/ifcfg-eth1至BOOTPROTO=static
,然后重新启动网络服务。在 Debian 中:将文件中的
method=auto
行更改为method=static
/etc/NetworkManager/system-connections/有线连接 1,然后重新启动网络服务。
答案4
如果您不想在此接口上添加静态 IP,也许您必须删除由 DHCP 客户端分配的 IP。
运行此脚本将删除 eth0 上的 ip。
#!/bin/sh
localip=`ip addr list dev eth0 | grep "inet " | sed 's/\(^\s*inet\s\)\([0-9\.]*\)\([\s\/].*\)/\2/'`
if [[$ip != ""]]; then
sudo ip addr del $localip dev eth0
fi
您需要手动运行它或将其设置为 crontab。或者,尝试在分配 IP 后调用它,但我不知道如何挂接它。删除 IP 地址后,它就像在此接口上禁用 dhcp 客户端一样工作。
注意:这只是一种解决方法,通过删除指定接口上的 DHCP 客户端的影响,而不是真正禁用它。它适用于我的解决方案,该解决方案要求接口处于开启状态且未分配任何 IP 地址。