我正在尝试在 Ubuntu 16.04 的接口上设置静态 IP。它用于没有 DHCP 服务器或 DNS 配置的本地连接。我尝试从编辑连接 GUI 以及 CLI 执行此操作,但运气不佳。
我搜索了一下,发现了几个类似的问题(设置静态IP Ubuntu 16.04等),但我自己似乎无法获得正确的设置。
我的情况是这样的...目前有三个设备连接到交换机。一个配置为 1.51,一个配置为 1.20,而这个 16.04 系统我正尝试配置为 1.49。51 和 20 都通信正常。我换了电缆并尝试了不同的端口...所以我知道这不是物理问题。事实上,这个交换机上的另一个系统是 Ubuntu 14.04,其接口设置相同,但 IP 是 51。这里唯一的问题似乎是 Ubuntu 16.04 系统。
16.04 /etc/network/interfaces 文件:
# interfaces(5) file used by ifup(8) and ifdown(8)
# The loopback network interface
auto lo
iface lo inet loopback
# Primary network interface
auto enp4s0
#iface enp4s0 inet dhcp
iface enp4s0 inet static
address 192.168.1.49
netmask 255.255.255.0
gateway 192.168.1.1
$ ifconfig
enp4s0 Link encap:Ethernet HWaddr f4:8e:38:e7:39:31
inet addr:192.168.1.49 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::f68e:38ff:fee7:3931/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:258 errors:0 dropped:0 overruns:0 frame:0
TX packets:2123 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28821 (28.8 KB) TX bytes:208448 (208.4 KB)
一切看起来都很好。但 ping 失败。无法 ping 入或 ping 出。对我来说最有趣的是从 GUI 查看接口时的网络掩码。如果我从右上角的网络图标转到“编辑连接...”并编辑此接口,它会显示以下内容:
Address: 192.168.1.49
Netmask: 24
Gateway: 192.168.1.1
网络掩码为“24”?这没有任何意义……但是从 CLI 的 ifconfig 来看一切正常。
我没什么主意了。应该简单点……?
谢谢。
编辑1:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 enp4s0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp4s0
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 enp4s0
答案1
您尚未声明 DNS 名称服务器。建议您修改为:
# interfaces(5) file used by ifup(8) and ifdown(8)
# The loopback network interface
auto lo
iface lo inet loopback
# Primary network interface
auto enp4s0
#iface enp4s0 inet dhcp
iface enp4s0 inet static
address 192.168.1.49
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 192.168.1.1
重启界面:
sudo ifdown enp4s0 && sudo ifup enp4s0
平安:
ping -c4 www.ubuntu.com
如果您收到 ping 返回,则表示您已全部设置完毕。
答案2
您的问题很可能与网络管理器进入您的配置有关。由于您使用的是静态 IP,并且不希望它们自动更改,因此您实际上不需要网络管理器。
您是否尝试过彻底停用它
sudo service network-manager stop
,然后再次尝试连接。
答案3
如果您正在寻找手动桥接设置(例如虚拟机):
按照说明进行操作Ubuntu 帮助关于建立桥梁
- 在您的
/etc/network/interfaces
- 中注释掉将桥接的网络接口。 - 将所有静态设置置于下方
br0
(例如iface br0 inet static
地址、网络、网关、名称服务器等) - 清除 arp:(
ip addr flush enp2s0
将 enp2s0 替换为您的接口) - 重启网络:
systemctl restart networking
从 dhcp 转为静态时,步骤 3 很重要。手册中没有提到,但如果没有它,您的 DNS 和网关可能无法工作...
祝你好运!