如何在 Ubuntu 14.04 Trusty 下设置静态 IP 地址?
(注意,问题是针对“14.04 Trusty”提出的,但目前它仍然有效,16.04 LTS Xenial)
我的设置不起作用。Ubuntu 14.04 Trusty 的特别之处在于,我发现它现在使用“source-directory”关键字可以一次获取多个文件(参考:http://manpages.debian.org/cgi-bin/man.cgi?query=interfaces&apropos=0&sektion=0&manpath=Debian+unstable+sid&format=html&locale=en):
$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
因此我准备了静态 IP 地址设置,如下所示:
$ cat /etc/network/interfaces.d/eth
auto eth0
iface eth0 inet static
address 192.168.2.100
netmask 255.255.255.0
gateway 192.168.2.0
# add a 2nd ip address
post-up ip addr add dev eth0 192.168.2.101/24
pre-down ip addr del dev eth0 192.168.2.101/24
但是,它在启动过程中有很大的延迟。我看到启动消息说“启动网络”,然后过了一会儿长的稍后延迟,再次显示类似“等待 60 秒启动网络”的内容。再延迟 60 秒后,启动消息再次开始出现。但是,当系统最终启动并检查输出时ip addr
,我配置的第二个静态 IP 地址不存在。
我是否遗漏了什么?
更新:
感谢大家指出我的网关错误,所以我将其更改为192.168.2.1
,启动时长时间的延迟就消失了。现在我遇到了一个新问题。
对于 14.04 Trusty 之前的 Ubuntu,上述更改足以从动态 IP 切换到静态 IP。但是,对于我的新 Ubuntu 14.04 Trusty,系统启动时没有 IPv4 地址:
$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:xx:xx:xx:xx:ef
inet6 addr: fe80::xxx:xxxx:xxxx:98ef/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1 errors:0 dropped:0 overruns:0 frame:0
TX packets:69 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:250 (250.0 B) TX bytes:11552 (11.5 KB)
当我尝试关闭设备时,也会出现错误:
% ifdown eth0
RTNETLINK answers: No such process
RTNETLINK answers: Cannot assign requested address
不过,我随后能够启动设备,然后ifconfig
给出ip addr
正确的输出。然而,IPv4 地址将在短时间内消失。
如何告诉网络管理员我已将以太网设备从动态 IP 切换为静态 IP?(命令行和文件调整优于 GUI 调整)。
这是 XUbuntu 14.04。谢谢
更新2:
改用/etc/network/interfaces
。详情请参阅我自己的回答。
有关自动设置/etc/network/interfaces
文件,请查看这里。
答案1
好的,我放弃了微软,并将我的家用电脑和笔记本电脑换成了 Ubuntu 14.04 :)
经过一周的时间在网上搜索如何在 Ubuntu 14.04 上获取静态 IP 地址后,我终于找到了一种方法......
似乎网络管理器每次都会覆盖(或绕过)我的 /etc/network/interfaces,我考虑删除它,但决定先尝试使用它。
到右上角点击网络图标,到底部右键点击编辑连接。
这将打开网络连接并选择要更改的连接,单击编辑并转到 IPv4 设置。选择方法:手动,然后填写地址、网络掩码和网关...以及您想要的 DNS 服务器。
只需保存即可完成...它将动态更改为给定的静态 IP 地址...即使在重启后也是如此!
这可能是一个老话题,但经过一周的搜索,我更新了 Google 中的前 10 个结果...希望有一天能帮助其他人!!
小心!
答案2
您的IP 地址gateway
不正确 ( gateway 192.168.2.0
)。这不是有效的 IP,您应该将其替换为路由器的 IP 地址。
答案3
我认为我找到了答案,将内容从/etc/network/interfaces.d/eth
移入/etc/network/interfaces
并重新启动后,它现在可以正常工作了。
cat /etc/network/interfaces.d/eth >> /etc/network/interfaces
rm /etc/network/interfaces.d/eth
service networking restart
reboot
我猜想那ifup
可以理解source-directory /etc/network/interfaces.d
并能正确处理,而网络管理员却不能。
答案4
gateway 192.168.2.0
可能没有为您的路由器配置正确的网关。