操作系统:Ubuntu 16.04 LTS(GNU/Linux 4.4.0-1009-raspi2 armv7l)
因此,当我使用 Putty 从 Windows 通过 ssh 连接到我的机器时,我能够使用 IP192.168.0.60。
现在,当我从路由器管理网站列出我的设备时,它显示它正在使用 IP192.168.0.109。
这是 ifconfig cmd 的输出。
eth0 Link encap:Ethernet HWaddr b8:27:eb:86:e1:e0
inet addr:192.168.0.109 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::ba27:ebff:fe86:e1e0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2233 errors:0 dropped:0 overruns:0 frame:0
TX packets:1067 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:163132 (163.1 KB) TX bytes:167801 (167.8 KB)
这就是我所拥有的等/网络/接口
auto eth0
iface eth0 inet static
address 192.168.0.60
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameserver 8.8.8.8
dns-nameserver 8.8.4.4
需要考虑的另一个事实是,当我重新启动网络服务时,它会引发以下错误:
Job for networking.service failed because the control process exited with
error code. See "systemctl status networking.service" and "journalctl -xe" for details.
这是systemctl status 网络服务输出:
networking.service - Raise network interfaces
Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
Drop-In: /run/systemd/generator/networking.service.d
└─50-insserv.conf-$network.conf
Active: failed (Result: exit-code) since Thu 2017-03-23 15:31:59 UTC; 2min 1s ago
Docs: man:interfaces(5)
Process: 2046 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
Process: 2038 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list
Main PID: 2046 (code=exited, status=1/FAILURE)
Mar 23 15:31:58 ubuntu dhclient[2065]: DHCPREQUEST of 192.168.0.109 on eth0 to 255.255.255.255 port 67 (xid=0x6fc3c068)
Mar 23 15:31:58 ubuntu dhclient[2065]: DHCPACK of 192.168.0.109 from 192.168.0.1
Mar 23 15:31:58 ubuntu ifup[2046]: RTNETLINK answers: File exists
Mar 23 15:31:59 ubuntu ifup[2046]: bound to 192.168.0.109 -- renewal in 657200529 seconds.
Mar 23 15:31:59 ubuntu ifup[2046]: RTNETLINK answers: File exists
Mar 23 15:31:59 ubuntu ifup[2046]: Failed to bring up eth0.
Mar 23 15:31:59 ubuntu systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Mar 23 15:31:59 ubuntu systemd[1]: Failed to start Raise network interfaces.
Mar 23 15:31:59 ubuntu systemd[1]: networking.service: Unit entered failed state.
Mar 23 15:31:59 ubuntu systemd[1]: networking.service: Failed with result 'exit-code'.
请注意以下行:
Mar 23 15:31:59 ubuntu systemd[1]: Failed to start Raise network interfaces.
有人能告诉我发生了什么事以及如何解决吗?
编辑:路线-n的结果:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
答案1
您可能定义了静态 IP 地址,但同时也运行了 DHCP。
不要使用 ifconfig,而是通过以下方式查看接口上是否配置了多个 IP 地址
ip addr show eth0
查看是否有 dhcp 服务正在运行
ps -ef | grep dhcp
您可以通过以下方式禁用 dhcp 服务
sudo systemctl disable dhcpcd
然后我会说重启设备,看看辅助 IP 地址是否消失。这可能是因为您的 DNS(/etc/resolv.conf)设置正确,并指向您的 DHCP 服务器以获取 IP
答案2
我发现如果你利用/etc/网络/接口在 Ubuntu 中,最好禁用 Ubuntu 的网络管理器。当您在配置文件中设置静态 IP 等但 NetworkManager 却喜欢做自己的事情时,我和我的同事遇到了奇怪的问题。
查看停止并禁用 NetworkManager在 Ubuntu 帮助网站上。
尽管您的接口正在接收动态 IP,但您可以访问静态 IP,所以看看您的路由表是什么样的会很有趣: 路线-n
答案3
我遇到了类似的问题。
登录时我可以
ssh
从 192.168.1.83 和 192.168.1.253 登录。但是在配置时,我将其设置为手动 IPv4 配置并删除了 DHCP。
但由于某种原因,它采用了 DHCP IP 192.168.1.83。
我运行了
ifconfig
并显示了以下输出。[root@network ~]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.83 netmask 255.255.255.0 broadcast 192.168.1.255 ether 08:00:27:7c:23:31 txqueuelen 1000 (Ethernet) RX packets 11722 bytes 15567876 (14.8 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4551 bytes 331004 (323.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
如果我执行,
ip addr show
我会得到以下输出,我很困惑为什么它会拾取两个 IP。我记得在配置时删除了 192.168.1.83,但它仍然显示出来。[root@network ~]# ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:7c:23:31 brd ff:ff:ff:ff:ff:ff inet 192.168.1.83/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3 valid_lft 85901sec preferred_lft 85901sec inet 192.168.1.253/24 brd 192.168.1.255 scope global secondary noprefixroute enp0s3 valid_lft forever preferred_lft forever
然后我对其进行了修改
/etc/sysconfig/network-scripts/ifcfg-enp0s3
、删除BOOTPROTO=dhcp
并制作了它BOOTPROTO=none
。旧文件如下所示:
[root@network ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3 | grep BOOTPROTO BOOTPROTO=dhcp
现在新文件如下所示:
[root@network ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3 | grep -i BOOTPROTO BOOTPROTO=none
重新启动主机/虚拟机或启动网络服务。
这将解决这个问题。