我正在尝试为我的 Linux 计算机设置一个静态本地 IP 地址,以用于端口转发。根据有关此主题的每份指南,我已相应地编辑了我的/etc/network/interfaces
和/etc/resolv.conf
文件。但是,重新启动后,我所做的任何更改都resolv.conf
将被删除,文件为空白(除了警告我这一点的评论)。
结果,我无法解析主机名(ping google.com
例如,失败)。事实上,我甚至无法 ping 有效的 IP 地址(“目标主机无法访问”)。
虽然ifconfig
似乎反映了我输入的所有设置/etc/network/interfaces
,但我无法访问任何互联网,也无法从另一台机器使用 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)
为什么会发生这种情况?我该如何解决?
答案1
如果你正在使用安装了图形网络管理工具的 Ubuntu 桌面版,那么你应该不是在 /etc/network/interfaces 文件中定义连接。
相反,通过桌面上的 nm-applet 打开连接(或通过nm-connection-editor
从终端调用),导航到选项卡,并使用下拉选择框IPv4 settings将连接模式设置为。然后在提供的框中添加所需的 IP 和 DNS 设置。Manual
然后,您应该恢复对 /etc/network/interfaces 文件的所有编辑(以便它只包含lo
定义行)并重新启动networking
和network-manager
服务或重新启动机器。
您还应确保所选的静态 IP 地址不在路由器分配的 DHCP 池中 - 事实上,您可能会发现在计算机上保留 DHCP 配置更简单,并且预订如果路由器支持,则在路由器上为其分配一个特定 IPDHCP 地址保留。
如果你确实想保留 GUI network-manager
,但通过 /etc/network/interfaces 定义你的接口,那么你可以尝试编辑 /etc/NetworkManager/NetworkManager.conf,更改
[ifupdown]
managed=false
到
[ifupdown]
managed=true
然后确保 /etc/NetworkManager/system-connections/ 目录中没有定义其他竞争连接(其中“竞争”表示“使用相同的接口”)。这样您就可以在 GUI 网络管理器小程序下查看和控制 /etc/network/interfaces 中的连接。
或者,您可以完全删除网络管理器包。
答案2
您需要直接在 /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