我很遗憾地说,虽然有很多关于没有 IP 地址的问题,但我似乎无法找到针对我的具体情况的解决方案。我希望通过一些技术细节,有人可以指出这个 Windows 人员哪里出了问题。
问题:新以太网 PCI-x 卡上没有 IP 地址。背景:运行 docker 容器和 samba 的家庭开发服务器。最初是使用无线安装菜单进行设置的,该菜单工作正常,直到我尝试更换为 TP-LINK TG-3468 千兆位 PIC Express 卡。
操作系统:Ubuntu 16.04.3 LTS
$ifconfig eno1
br-1...
br-8...
docker0...
lo...
注意到我没有看到新网卡的 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 接口则使用网桥。
答案1
问题(或问题之一,考虑到 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
线。