Ubuntu

eno1 上沒有 IP 地址

  • January 20, 2018

我很遺憾地說,儘管有很多關於沒有 IP 地址的問題,但我似乎無法找到針對我的具體情況的解決方案。我希望通過一些技術細節,有人可以指出這個 windows 傢伙他哪裡出錯了。

**問題:**新的乙太網 PCI-x 卡上沒有 IP 地址。背景:執行 docker 容器和 samba 的家庭開發伺服器。最初是使用無線安裝菜單設置的,在我嘗試用 TP-LINK TG-3468 Gigabit PIC Express 卡替換之前工作正常。

作業系統:Ubuntu 16.04.3 LTS

$ifconfig eno1
br-1...
br-8...
docker0...
lo...

注意到我沒有看到新 NIC 的 eno1,但確實看到了一些 docker 創建的介面

$ifconfig eno1
eno1   Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
      BROADCAST MULTICAST MTU:1500 Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 everruns:0 carrier:0
      RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
      Interrupt:20 Memory:f7f00000-f7f20000

內容/etc/network/interfaces

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet dhcp

我相信我的路由存在問題,儘管我無法弄清楚如何設置路由到我的網關的東西

$route
Destination     Gateway     Genmask      Flags  Metric   Ref   Use   Iface
172.17.0.0      *           255.255.0.0  U      0        0       0   docker0
172.18.0.0      *           255.255.0.0  U      0        0       0   br-8...
172.19.0.0      *           255.255.0.0  U      0        0       0   br-1...

嘗試設置到路由器的路由:

sudo route add default gw 192.168.1.254

結果是SIOCADDRT: Network is unreachable

我還嘗試將介面文件設置為嘗試從路由器中獲取靜態 IP,但這也沒有任何改善。我從來沒有獲得IP,我永遠也做不到。

編輯1:結果ip route get 192.168.1.254

RTNETLINK answers: Network is unreachable

編輯 2:嘗試通過以下方式手動配置靜態 IP:

sudo /sbin/ifconfig eth0 192.168.1.91 netmask 255.255.255.0 broadcast 192.168.1.255

之後仍然無法ping通路由器。

更多資訊:

$sudo lshw -numeric -C network
*-network
 description Ethernet interface
 product: 82579V Gigabit Network Connection [8086:1503]
 vendor: Intel Corporation [8086]
 physical id: 19
 bus info: pci@0000:00:19.0
 logical name: eno1
 version: 04
 serial: XX:XX:XX:XX:XX:XX
 capacity: 1Gbit/s
 width: 32 bits
 clock: 33MHz
 capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
 configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.13-4 ip=192.168.1.91 latency=0 link=no multicast=yes port=twisted pair
 resources: irq:33 memory:f7f00000-f7f1ffff memoroy:f7f39000-f7f39fff ioport:f080(size=32)

編輯3:

$ip link show eno1
3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff

XX 是我的 MAC 地址。

@EricF,未安裝 brctl 並且不bridge link show返回任何內容。我的理解是,這些介面是由 docker 創建的,以允許流量進入我目前已關閉的容器。如果這些容器被啟動,那麼相同的bridge link show命令會返回我最初沒有列出的介面列表。我對此的評估是 eno1 沒有使用網橋,而 docker 介面使用了。

問題(或問題之一,考慮到 ErikF 關於橋接的評論)是您的介面未連接:

3: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP>

NO-CARRIER和缺少的標誌(LOWER_UP對於“低層啟動”意味著鏈路層,乙太網)告訴我們 NIC 無法發送或接收數據,僅僅是因為它似乎沒有連接到任何東西(物理上)。可能電纜沒有插入一側或開關已關閉…

路由配置

您只能配置連結本地的網關等 IP 地址,即您的介面之一必須在其網路中具有此 IP(IP 地址和網路遮罩)。

通常這意味著您可以在不配置任何路由的情況下 ping 網關。

你也可以使用命令

ip route get 192.168.1.254

看看如何處理這些數據包。結果必須是一條192.168.1.254 dev線,而不是一條192.168.1.254 via線。

引用自:https://unix.stackexchange.com/questions/418396