为什么我不能为我的Linux机箱设置静态IP地址?

我正在尝试为我的Linux计算机设置静态本地IP地址以进行端口转发。 根据这个主题上的每一个指南,我都相应地编辑了我的/etc/network/interfaces/etc/resolv.conf文件。 但是,在重新启动时,我对resolv.conf所做的任何更改都将被删除,并且该文件为空(除了警告我的注释)。

因此,我无法解析主机名(例如, ping google.com失败)。 实际上,我甚至无法ping有效的IP地址(“目标主机无法访问”)。

虽然ifconfig似乎反映了我放在/etc/network/interfaces所有设置,但我无法访问Internet,也无法使用SSH或FTP从其他计算机访问该计算机。

这是我的/etc/network/interfaces

 # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.64 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.1 8.8.8.8 

这是ifconfig给我的:

 eth0 Link encap:Ethernet HWaddr 00:25:90:57:7c:65 inet addr:192.168.0.64 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:20 Memory:fba00000-fba20000 eth1 Link encap:Ethernet HWaddr 00:25:90:57:7c:64 inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::225:90ff:fe57:7c64/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:252 errors:0 dropped:0 overruns:0 frame:0 TX packets:106 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:54010 (54.0 KB) TX bytes:15731 (15.7 KB) Interrupt:16 Memory:fb900000-fb920000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:94 errors:0 dropped:0 overruns:0 frame:0 TX packets:94 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:8088 (8.0 KB) TX bytes:8088 (8.0 KB) 

为什么会发生这种情况,我该如何解决?

如果您使用的是桌面版Ubuntu,并且安装了图形网络管理器工具,则不应在/ etc / network / interfaces文件中定义连接。

而是通过桌面上的nm-applet打开连接(或通过从终端调用nm-connection-editor ),导航到IPv4设置选项卡,然后使用下拉选择框将连接模式设置为Manual 。 然后在提供的框中添加所需的IP和DNS设置。

然后,您应该将任何编辑还原到/ etc / network / interfaces文件(以便它只包含lo定义行),并重新启动networkingnetwork-manager服务或重新启动计算机。

您还应确保所选的静态IP地址位于路由器分配的DHCP池之外 – 事实上,您可能会发现在计算机上保留DHCP配置更简单,并在路由器上为其保留特定IP,如果它支持DHCP地址预留

如果你真的想保留GUI network-manager ,但是通过/ etc / network / interfaces定义你的接口,那么你可以尝试编辑/etc/NetworkManager/NetworkManager.conf,改变

 [ifupdown] managed=false 

 [ifupdown] managed=true 

然后确保在/ etc / NetworkManager / system-connections /目录中没有定义其他竞争连接(其中’竞争’意味着’使用与’相同的接口’)。 这应该允许您查看和控制GUI网络管理器小程序下的/ etc / network / interfaces中的连接。

或者,您可以完全删除网络管理器包。

您需要直接在/ etc / network / interfaces上添加DNS配置:

 auto eth0 iface eth0 inet static address 192.168.0.64 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 dns-nameservers 192.168.0.1 8.8.8.8