如何在 Ubuntu 中设置静态 IP?

Tee*_*tar 59 network-manager networking dns dhcp ip

我是 Linux 新手,在 Windows 服务器/桌面方面有多年经验,但在设置静态 IP 时遇到问题。我正在使用用于以前版本的 Ubuntu 的方法,该方法似乎不适用于 16.04

我已经使用了该命令sudo nano /etc/network/interface并添加了以下内容

iface enp0s25 inet static
address 10.10.8.2
netmask 255.255.0.0
gateway 10.10.1.1
dns-nameservers 8.8.8.8 8.8.4.4
Run Code Online (Sandbox Code Playgroud)

我重新启动了系统,以太网几乎死机了,ping 根本不起作用。我尝试修改/etc/NetworkManager/NetworkManager.conf并进行了以下更改

#dns=dnsmasq (comment out the dnsmasq)
[ifupdown]
managed=true (changed from false)
Run Code Online (Sandbox Code Playgroud)

有了这个,我可以让以太网偶尔工作,但它最终会失败。

我已经在另外两台机器和一台虚拟机上尝试过这种配置,并且都得到了相同的结果。当我在任何这些机器上安装 Windows 时,我可以确认这些设置工作正常。同样,当我让 DHCP 自动配置时,一切正常,没有问题。

我想我在这里遗漏了一些东西,设置静态 IP 根本不难。

lew*_*s4u 89

我遇到了同样的问题,这是我的解决方案:

sudo nano /etc/network/interfaces
Run Code Online (Sandbox Code Playgroud)

并将其粘贴(为您的网络更改)以下# The primary network interface

auto enp0s25
iface enp0s25 inet static
address 192.168.0.16
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 8.8.4.4 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

您可以ifconfig -a在 ubuntu 16.04 或ip address18.04+上使用终端命令获取正确的接口名称

关闭你的虚拟机,然后!!!转到网络设置并单击刷新 MAC 地址按钮几次:)

在此处输入图片说明

并启动您的虚拟机,您应该可以上网了!

2019 年 2 月 20 日更新

对于 ubuntu 18.04+ 你需要编辑这个文件

/etc/netplan/50-cloud-init.yaml

network:
    ethernets:
        enp0s3:
            addresses: [192.168.0.55/24]
            gateway4: 192.168.0.1
            dhcp4: no
            nameservers:
              addresses: [1.1.1.1,8.8.8.8]
            optional: true
    version: 2
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢我很感激。它现在似乎可以工作,没有问题。它现在非常坚固! (2认同)

小智 62

在此处接受的答案中设置静态 IP 地址有效,但必须刷新旧的 IP 地址设置,然后重新启动networking.service:

sudo ip addr flush enp0s25
sudo systemctl restart networking.service
Run Code Online (Sandbox Code Playgroud)

然后验证是否正确:

ip add
Run Code Online (Sandbox Code Playgroud)

  • 在 Ubuntu 16.04 和更新版本中,flush 是必要的! (3认同)
  • 为了避免旧地址出现在接口上(基于`ip addr`),刷新是必要的。systemctl restart 也能工作,不过界面上的 `ifdown` 和 `ifup` 会更有选择性地工作。 (2认同)
  • 谢谢@Grant。添加冲洗使这项工作 (2认同)

小智 6

# interfaces(5) file used by ifup(8) and ifdown(8)
# auto lo
# iface lo inet loopback
auto enp2s0 
iface enp2s0 inet static
    address 172.16.9.124
    netmask 255.255.240.0
    gateway 172.16.0.9
dns-nameservers 8.8.8.8
Run Code Online (Sandbox Code Playgroud)


小智 5

sudo vim /etc/network/interfaces

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
    address 192.168.1.10
    gateway 192.168.1.1
    netmask 255.255.255.0
    dns-nameservers 8.8.8.8
Run Code Online (Sandbox Code Playgroud)

sudo ifdown eth0 && sudo ifup eth0

  • 嗨@lanni654321,也许您应该编辑您的答案并添加几个词,简要说明您在做什么以及为什么?我认为这会让你的回答更有帮助,你怎么看? (10认同)