在Ubuntu下设置静态IP


16

如何在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

我能够调出设备后,虽然,然后ifconfigip addr给出正确的输出。但是,不久之后IPv4地址将消失

如何告诉网络管理员我已将eth设备从动态IP切换到静态IP?(命令行和文件调整优先于GUI调整)。

这是XUbuntu 14.04。谢谢

UPDATE2:

使用/etc/network/interfaces代替。详细信息请自行回答。
要自动设置/etc/network/interfaces文件,请在此处查看


我通常不使用网络管理器.....
mdpc 2014年

我已经在Ubuntu 13.10中安装了network-managernetwork-manager-gnome,我的静态IP地址设置也可以。
xpt

奇怪,我也在运行14.04,并且静态地址有效(尽管我尚未配置第二个IP)。
user1301428 2014年

@ user1301428,您的设置中是否有更多项目?我曾经这样做过,superuser.com/questions/736037/…,但是从答复中可以看出我可以忽略很多事情。会是这种情况,还是您正在做一些比我的OP中的单纯事情更多的事情?
xpt

我的/etc/network/interfaces文件仅包含ifaceaddressnetmaskgatewaynetworkbroadcastdns-nameservers指令
user1301428

Answers:


13

好的,我放弃了Microsoft,将家用计算机和笔记本电脑更改为Ubuntu 14.04 :)

经过一周的互联网搜索,如何在Ubuntu 14.04上获取静态IP地址,我终于找到了一种方法...

似乎网络管理器每次都覆盖(或绕过)我的/ etc / network / interfaces,我想删除它,但决定先尝试使用它。

转到右上角,然后单击网络图标,向下到底部,然后右键单击编辑连接。

这将打开网络连接,然后选择要更改的连接,单击“编辑”并转到“ IPv4设置”。选择“方法:手动”,然后填写“地址,网络掩码和网关...”以及所需的DNS服务器。

只需保存并完成,就可以将其即时更改为给定的静态IP地址!

这可能是一个旧话题,但是经过一周的搜索,我更新了Google的十大热门歌曲……希望能在一段时间内确保其他人的安全!

照顾自己!


您如何应用使用网络管理器完成的更改?
塞巴斯蒂安

我的连接没有网关(只有两个以太网端口之间的电缆),由于某种原因,仅插入IP和掩码并不能启用网络管理器中的“保存”按钮。
卡迪夫太空人

@myself:问题在于添加按钮会欺骗我单击它。输入数据,添加,保存是我所期望的。而是输入IP,确认24个掩码,然后保存而不是添加。
卡迪夫太空人2015年

3

gateway不正确(gateway 192.168.2.0)。这不是有效的IP,您应将其替换为路由器的IP地址。


哇,太快了!我相信您是对的,但让我重新启动并进行测试...
xpt

3
地址192.168.2.0是/ 23 CIDR网络192.168.1.0(网络掩码255.255.254.0)的有效IP地址。当然,在这种情况下,您是对的,但这不是普遍的真理
mvp 2014年

1

我想我已经找到了答案,将内容从/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并且可以正确处理,而网络管理器则不能。


0
gateway 192.168.2.0

可能未配置为路由器的正确网关。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.