2012-06-06 28 views
8

我在Ubuntu 12.04下遇到了静态IP问题。在Ubuntu Server 12.04上设置静态IP会导致外部连接丢失

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

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

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

可能是什么问题?

回答

1

首先:检查你是否有适当的配置: - 尝试ping你的网关,它是否工作?如果没有检查你的网关IP。 - 尝试ping 8.8.8.8(Google的DNS) - 是否有效?如果没有,请检查您使用的路由之一:

mtr 8.8.8.8 

tracepath -n 8.8.8.8 

,并检查在该跳路由停止。

关于DNS namees:请添加到/ etc /网络/接口线:

dns-nameservers Your_DNS_IP_address 
+0

谢谢我解决了,我输入了一个错误的DNS服务器 – frakorn

+0

明确的伎俩。谢谢! – Asken

0

我们已经与一个古老的HP终端和Ubuntu 12.04的同样的问题为使用静态IP,我们不得不使用/etc/network/interfaces./中的“手动”标志并模拟一个ifconfig输入。

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

一个奇怪的解决方案,但最小量的伏都教,解决这个问题。

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。你可以看到文件被修改的日期/时间以及修改它的程序(以便采取纠正步骤)。

+0

糟糕,我得到了尾巴/头的路径错误。它是“/etc/resolvconf/resolv.conf.d/head”或“/etc/resolvconf/resolv.conf.d/tail”。在大多数情况下,您将创建一个“/etc/resolvconf/resolv.conf.d/tail”文件并在其中添加“名称服务器”设置。 –

0

我不知道你,但我不喜欢使用resolv.conf文件。我更喜欢将名称服务器设置为读取我的路由器,通常我会使用Google的8.8.8.8或8.8.4.4名称服务器。

这是我发现的一个小指南,如果有人感兴趣。

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

19

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

要添加静态DNS条目resolv.conf文件,编辑/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 
+0

完美答案,每一步的工作完全按照我在Ubuntu 12.04 –

+0

上所描述的那样工作。这应该是公认的答案。 – Mustafa

相关问题