8

我在 Ubuntu 12.04 下遇到静态 IP 问题。

使用 DHCP 我没有问题,但是当我设置(在/etc/network/interfaces)静态地址、网关、子网掩码和 dns-nameservers 时,我发现服务器无法连接到外部世界。

它只能连接到本地 IP 主机。

我试图在其中插入名称服务器,/etc/resolv.conf但每次我重新启动机器时,更改都会被取消。

可能是什么问题呢?

4

6 回答 6

19

Ubuntu 12.04 使用 resolvconf(一组脚本和挂钩)而不是 resolv.conf 来管理 DNS 服务器。对用户来说最显着的区别是任何手动对 /etc/resolv.conf 所做的更改都将丢失,因为下次触发 resolvconf 时它会被覆盖。

要在 resolv.conf 文件中添加静态 dns 条目,请编辑/etc/resolvconf/resolv.conf.d/base

添加这些行(下面的示例是 OpenDNS 的公共名称服务器):

nameserver 208.67.222.222
nameserver 208.67.220.220

运行此命令以刷新 resolvconf 设置:

sudo service resolvconf restart

要查看您的 DNS 服务器地址,请使用以下命令:

cat /etc/resolv.conf
于 2013-03-06T10:06:15.250 回答
1

首先:检查您是否有正确的配置: - 尝试 ping 您的网关,是否有效?如果没有,请检查您的网关 IP。- 尝试 ping 8.8.8.8(Google 的 DNS) - 可以吗?如果不是,请使用以下之一检查您的路由:

mtr 8.8.8.8

或者

tracepath -n 8.8.8.8

并检查路由在哪一跳停止。

关于 DNS 名称:请添加到 /etc/network/interfaces 行:

dns-nameservers Your_DNS_IP_address
于 2012-06-07T08:34:58.963 回答
0

I dunno about you, but I don't like using the resolv.conf file. I prefer to set the nameserver to read my routers and typically I'll use Google's 8.8.8.8 or 8.8.4.4 name servers.

Here's a small guide I found if anyone is interested.

http://ubuntuserverhelp.com/setting-up-a-static-ip/

于 2012-09-15T02:26:28.250 回答
0

尝试这个:

sudo vim /etc/NetworkManager/NetworkManager.conf

并评论该dns=dnsmasq行,然后执行:

sudo restart network-manager

这个问题有一个线程在这里:

https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/989900

于 2012-10-30T23:35:29.063 回答
0

各种进程会覆盖 /etc/resolv.conf(dhcpd、networkmanager 等)。我怀疑这是你看到的问题。我建议几个选项:

  1. 不要将名称服务器添加到“/etc/resolv.conf”,而是将它们添加到“/etc/resolv.conf.head”。“/etc/resolv.conf.head”的内容将自动添加到自动生成的内容之前。根据您的选项,您可能希望使用“/etc/resolv.conf.tail”在文件末尾添加您的设置。无论哪种方式,这都应该用您的固定设置覆盖任何自动生成的设置。

  2. 写保护 /etc/resolv.conf 以防止您的更改被另一个守护程序覆盖(在您进行更改之后):

    $ sudo chattr +i /etc/resolv.conf

  3. 很可能是 dhcpd 正在修改 /etc/resolv.conf,而您忘记禁用它。删除(或禁用)dhcpd,使其不会修改 /etc/resolv.conf。去除:

    $ sudo apt-get remove isc-dhcp-client

  4. 使用 auditd 确定哪个守护进程正在修改 /etc/resolv.conf:

    $ sudo auditctl -w /etc/resolv.conf -p w

日志位于 /var/log/audit/audit.log 中。您可以看到文件被修改的日期/时间以及修改它的程序(采取纠正措施)。

于 2012-06-24T20:27:05.593 回答
0

我们在旧的 HP 终端和 Ubuntu 12.04 上遇到了同样的问题,要使用静态 IP,我们必须在 /etc/network/interfaces 中使用“手动”标志并模拟 ifconfig-input。

auto eth1
iface eth1 inet manual
 up ifconfig eth1 <IP> netmask <IP> broadcast <IP> up
 up route add default gw <IP>

一个奇怪的解决方案,但使用最少的巫毒来解决这个问题。

于 2012-06-20T08:33:44.393 回答