Archlinux网络接口上出现两个IP

  • 发现两个IP

    我的电脑是直接连到公司的墙上的网口上网的,在测试路由器的时候,我把路由器的WAN口接墙上的网口,然后电脑连到路由器的LAN口上,上网正常。查看分配到的IP为192.168.111.2,路由器的IP为192.168.111.1, 想到我一直用 192.168.90.73 这个IP,有些配置也依赖这个IP,所以还想分到这个IP,所以把路由器的DHCP做了设置,路由器IP改为192.168.90.74,分配的IP范围为192.168.90.71-192.168.90.73,再次重连电脑分配的IP为192.168.90.71,然后发现上不了网了,浏览器上输入路由器的IP(192.168.90.74)竟然打开了我机器(192.168.90.71)上建的WEB服务,其他人连这个网络却可以通过192.168.90.74这个IP正常打开路由器界面,最终通过“ip address show”这个命令发现我的网口上有两个IP(192.168.90.71、192.168.90.74), ipconfig 和其它GUI工具只能看到第一个IP。

  • 第二个IP是怎么来的?

    抓包分析了一下DHCP网络包,只给分配了192.168.90.71这个IP,看来192.168.90.74这个IP是我机器上配置的,于是搜索/etc、/var下的文件,最后在/var/log/journal/*/system.journal中找到了日志:

    NetworkManager[375]: <debug> [1394509845.924245] [nm-system.c:280] sync_addresses(): (eno1): adding address '192.168.90.74/24'
    

    然后在NetworkManager的配置文件 /etc/NetworkManager/system-connections/Profile 1 中找到了相关配置:

    [ipv4]
    method=auto
    address1=192.168.90.74/24,192.168.90.2
    

    删除掉 address1 后,再重连网络,就只有一个IP了。

    这应该是 NetworkManager 的一个 BUG ,当手动设置IP后切回DHCP自动获取IP方式时不清除手动设置的时会出现。