cev*_*ing 72 networking ip debian
我有一个 Debian 系统作为无线路由器使用eth0和wlan0。现在,我就手动添加一个额外的网络eth1有ifconfig:
alix:~# ifconfig eth1 192.168.0.2 网络掩码 255.255.255.0 alix:~# netstat -rn 内核IP路由表 目标网关 Genmask 标志 MSS 窗口 irtt Iface 0.0.0.0 192.168.2.1 0.0.0.0 UG 0 0 0 eth0 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan0 alix:~# ping 192.168.0.254 PING 192.168.0.254 (192.168.0.254) 56(84) 字节数据。 来自 192.168.0.254 的 64 个字节:icmp_req=1 ttl=64 time=0.537 ms 来自 192.168.0.254 的 64 个字节:icmp_req=2 ttl=64 time=0.199 ms 来自 192.168.0.254 的 64 个字节:icmp_req=3 ttl=64 time=0.188 ms ^C --- 192.168.0.254 ping 统计 --- 发送 3 个数据包,接收 3 个数据包,0% 数据包丢失,时间 2005ms rtt min/avg/max/mdev = 0.188/0.308/0.537/0.161 毫秒
如您所见,一切正常。
现在我想让配置永久化。因此,我将以下部分添加到/etc/network/interfaces:
alix:~# sed -n '/iface eth1/,/^$/p' /etc/network/interfaces iface eth1 inet 静态 地址 192.168.0.2 网络掩码 255.255.255.0
但是当我尝试启动网络时,出现以下错误:
alix:~# ifconfig eth1 down alix:~# ifup -v eth1 配置接口 eth1=eth1 (inet) 运行部分 --verbose /etc/network/if-pre-up.d 运行部分:执行 /etc/network/if-pre-up.d/hostapd ip 地址添加 192.168.0.2/255.255.255.0 广播 192.168.0.255 dev eth1 标签 eth1 RTNETLINK 回答:文件存在 无法启动 eth1。
当我ip手动运行命令时,我收到相同的错误:
alix:~# ip addr add 192.168.0.2/255.255.255.0 broadcast 192.168.0.255 dev eth1 label eth1 RTNETLINK 回答:文件存在
命令有什么问题?我如何告诉 Debian 做正确的事?
cev*_*ing 98
我知道我必须在启动之前冲洗设备:
# ip addr flush dev eth1
Run Code Online (Sandbox Code Playgroud)
Ubuntu Server Guide 中提到了像这样清除手动设置的接口配置信息。
ale*_*one 10
使用ip addr flush会起作用,但它也会清除在该界面上设置的任何和所有地址 - 如果您登录到远程计算机,可能包括您正在使用的地址。这可能会将您锁定在设备之外。
RNETLINK answers: File exists当您尝试add使用与现有规则冲突的规则时会发生这种情况。我猜想 OP 遇到了这个问题,因为他们已经用ifconfig. 通常可以通过将add命令转换为类似结构的命令change或replace命令来解决此错误。
使用ip addr change或ip addr replace代替更安全。