如何在 Ubuntu Server 12.04 中设置静态 IP?

如何在 Ubuntu Server 12.04 中设置静态 IP?
sudo apt-get update 
sudo apt-get upgrade
  1. ifconfig

  2. sudo nano /etc/network/interfaces

    auto eth0
    iface eth0 inet static
    address 192.168.1.150
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.1.255
    gateway 192.168.2.1
    safe
    
  3. sudo nano /etc/resolv.conf

    Do not edit this file by hand --your changes will be overwritten
    # I add this 
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    
  4. sudo apt-get remove dhcp-client

  5. sudo /etc/init.d/networking restart

    *Running /etc/init.d/networking restart is deprecated because it may 
    not enable again some interfaces
    *Reconfiguring network interfaces...
    ssh stop/waiting
    ssh start/running,process 1438
    

错误在哪里?我不懒。我在 Google 上搜索了 3 天,但毫无结果。我什么方法都试过了。

重启后该/etc/resolv.conf文件将闪回到原始状态。

答案1

这有两个独立的问题:

resolv.conf重启后条目被重置

Ubuntu 12.04 中的工作方式/etc/resolv.conf已发生改变。这是因为foundations-p-dns-resolving 此处描述的 实现https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-resolving克服静态的一些限制resolv.conf

您可以在这里了解更多详细信息: http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

您可以通过删除符号链接/etc/resolv.conf并创建一个名为的文件来覆盖新功能/etc/resolv.conf。但在执行此操作之前,请参考我上面提供的链接,了解为什么强烈不建议这样做。

IP 地址与网络和网关冲突(设置静态 IP) 此外,普格施克指出,您的 IP 地址与网关和网络条目不匹配。但这不是导致/etc/resolv.conf恢复到原始状态的原因,而是我上面提到的原因。

答案2

您的网关地址与本地 IP 地址位于不同的子网中:

地址 192.168.1.150 网关 192.168.2.1

此外,在 .2 子网中也指定了网络地址:

网络 192.168.2.0

您使用 192.168.1/24 还是 192.168.2/24 子网?

编辑: 关于您的 resolv.conf:此文件主要由不同的软件包更新(取决于您的设置)。尝试在您的 /etc/network/interfaces 文件中指定名称服务器:

dns-nameservers 8.8.8.8 8.8.4.4

答案3

您可以尝试这个选项:

  • 删除/etc/resolv.conf然后创建一个新的resolv.conf

  • sudo nano /etc/resolv.conf之后添加标志:

  • sudo chattr +i /etc/resolv.conf- 有了这个+i标志,即使是 root 也无法触碰此文件。但是,如果您想更改名称服务器,请将标志更改为:

  • sudo chattr -i /etc/resolv.conf然后添加您的新nameserver

然后尝试重新启动并观察会发生什么:)。

我希望这能解决你的问题。

相关内容