我在向一个接口添加第二个 IP 地址时遇到问题。以下是我的/etc/networking/interfaces
# The loopback network interface
auto lo
iface lo inet loopback
#eth0 is our main IP address
auto eth0
iface eth0 inet static
address 198.58.103.*
netmask 255.255.255.0
gateway 198.58.103.1
#eth0:0 is our private address
auto eth0:0
iface eth0:0 inet static
address 192.168.129.134
netmask 255.255.128.0
#eth0:1 is for www.site.com
auto eth0:1
iface eth0:1 inet static
address 198.58.104.*
netmask 255.255.255.0
gateway 198.58.104.1
当我运行时/etc/init.d/networking restart
,我收到有关启动的失败错误eth0:1
:
RTNETLINK answers: File exists
Failed to bring up eth0:1.
eth0
这是什么原因?我第一次设置时没有遇到任何问题eth0:0
。
答案1
编辑:
问题是您定义了 2 个默认网关。您需要删除其中一个。我认为是 eth0:1 设备上的那个。
尝试再次添加已经存在的默认路由时抛出了文件存在错误。
首先,我假设主机号 * 是一个有效数字,而不是字面上的“*”?
现在试试这个方法。我怀疑启动脚本中自动行的解析存在问题 - 只是一种预感,我还没有查看过。
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#eth0 is our main IP address
auto eth0
iface eth0 inet static
address 198.58.103.*
netmask 255.255.255.0
gateway 198.58.103.1
# Put your nameserver address here!
dns-nameservers x.x.x.x
#eth0:0 is our private address
auto eth0:0
iface eth0:0 inet static
address 192.168.129.134
netmask 255.255.128.0
#eth0:1 is for www.site.com
auto eth0:1
iface eth0:1 inet static
address 198.58.104.*
netmask 255.255.255.0
# This shouldn't be here! remove it.
#gateway 198.58.104.1
其次,要摆脱烦人的 resolv.conf 错误,请运行:
sudo dpkg-reconfigure resolvconf
尽管这是另外一个问题。
答案2
尝试这个命令:
sudo dpkg-reconfigure resolvconf
还有这个:
ifdown eth0:0
ifdown eth0:1
ifdown eth0
ifup eth0
最后ifup eth0
启动主路由和别名,并且只设置一次路由。
答案3
目前基于 Debian 的系统语法已经改变。关键是使用带斜线子网的地址格式address 192.168.129.134/17
,而不再使用netmask
关键字。
基于 Debian 的系统的首选方法是使用网络配置文件。
别名方法倾向于使用这样的顺序:eth0, eth:0:0, eth0:1,
...
因此系统的第一个别名将是 eth0:0,为了在系统重启后实现持久性,请创建一个/etc/network/interfaces.d/eth0
具有以下内容的文件:
auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
address 192.168.129.134/17
或者您可以直接编辑文件/etc/network/interfaces
,但不建议这样做,因为它可能会被自动覆盖。
之后做
service networking restart
测试配置。之后使用以下命令进行检查:
service networking status
和
ip address