【问题标题】:3 IP address from RPI3 eth + wlan +?3 来自 RPI3 eth + wlan + 的 IP 地址?
【发布时间】:2016-06-11 15:03:17
【问题描述】:

我有一个 raspberry 3 通过以太网和 wifi 连接到我的路由器。 所以我知道我应该有 2 个 IP 地址来引用它。

但我写了hostname -I,得到了3个不同的IP地址:
192.168.1.100192.168.1.33192.168.1.35

第三个IP从何而来?

  • 如果我从 RPI 断开以太网电缆并再次写入 hostname -I,我会得到:
    192.168.1.100192.168.1.33

  • 这对 'ifconfig' 结果没有意义:

    
    
    eth0      Link encap:Ethernet  HWaddr b8:27:eb:d6:xx:xx
              inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::ba27:ebff:fed6:xxxx/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:23152 errors:0 dropped:6 overruns:0 frame:0
              TX packets:51977 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:12371346 (11.7 MiB)  TX bytes:58608891 (55.8 MiB)
    
    lo        Link encap:Local Loopback
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:416 errors:0 dropped:0 overruns:0 frame:0
              TX packets:416 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1
              RX bytes:47205 (46.0 KiB)  TX bytes:47205 (46.0 KiB)
    
    wlan0     Link encap:Ethernet  HWaddr b8:27:eb:83:xx:xx
              inet addr:192.168.1.33  Bcast:192.168.1.255  Mask:255.255.255.0
              inet6 addr: fe80::8df4:f4d0:xxxx:115/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:28407 errors:0 dropped:23070 overruns:0 frame:0
              TX packets:4040 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:7492811 (7.1 MiB)  TX bytes:4725779 (4.5 MiB)
    

更新: 正如 Bugfinger 指出的那样,ip addr show 的使用显示了地址分配给哪个设备:


2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:d6:fb:5a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet 192.168.1.35/24 brd 192.168.1.255 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::ba27:ebff:fed6:fb5a/64 scope link
       valid_lft forever preferred_lft forever`
  
我有 2 个不同的 eth0 地址:

scope global eth0scope global secondary eth0

【问题讨论】:

  • 请添加ip addr show的输出。在那里你可以看到地址分配给了哪个设备。
  • 也就是说,有 2 个不同范围的不同 IP? linux-ip.net/html/tools-ip-address.html
  • 我在启动时运行了一个脚本,强制将本地 IP 设置为 192.168.1.100。这可能是 eth0 的双 IP 的起源
  • 您是否编辑了您的/etc/network/interfaces?如果是这样,也请将该文件放入您的问题中。
  • 什么样的脚本?手工制作的?

标签: raspberry-pi3


【解决方案1】:

最近的 Raspbian 版本(自 Jessie 以来)正在使用 DHCP 客户端守护程序 (DHCPCD) 来配置网络设备。所以要在/etc/dhcpcd.conf中配置静态IP地址。如果您手动或通过/etc/network/interfaces 将它们配置为静态,您最终会在同一设备上获得一个静态和一个动态 IP 地址。据我了解,目前尚不清楚这是 DHCPCD 中的错误还是配置错误后的预期行为。

无论如何,要改变这一点,您必须执行以下操作。

要查看它是否正在运行,请检查以下输出:

sudo service dhcpcd status

如果它没有运行,启动它:

sudo service dhcpcd start
sudo systemctl enable dhcpcd

如果您已经更改了/etc/network/interfaces,则需要还原这些更改。该文件的原始内容(在 Jessie 中)是:

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual
allow-hotplug wlan0
iface wlan0 inet manual
   wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
   wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

现在应该通过 DHCP 重新配置所有接口。如果您现在想为eth0 设置静态IP 地址,请编辑/etc/dhcpcd.conf 并输入:

interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1 # or whatever your router is
static domain_name_servers=192.168.1.1 # same as router

保存文件和sudo reboot 后,您的Raspi 应该以静态eth0 和动态wlan0 重新启动,并且没有多余的IP 地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多