Ubuntu18.04使用静态ip

如何修改ubuntu的ip并使用静态ip?(半科普

背景:最近在使用ubuntu,使用ssh连接的方式,ip一直变,很烦,就想到使用静态ip的方式

预先知识

热心网友的预先知识

(来源于博主荒野雄兵,链接 https://blog.csdn.net/daerzei/article/details/85058130)
Ubuntu里面有管理网络连接的方案:方案1: /etc/network/interfaces (命令行方案)方案2:Network-manager (图形化界面方案)

两套方案是冲突的,不能同时共存。第一个方案适用于命令行如部署在云服务器上,如果你在阿里云,腾讯云,亚马逊云等等这些地方部署了Ubuntu的云服务器的话,就只能这种情况了。

第二个方案适图形化界面一般来说我们自己电脑上安装的Ubuntu都是采用这个方案,但是如果你在 /etc/network/interfaces 里设置了网上信息的话, NetworkManager 就不会接管该网上,即使是你开了,系统重启过后也会自动关闭。

所以嘛,好好想想你最近有没有修改过 /etc/network/interfaces 配置文件。如果你不知道自己有没有修改过的话,这个文件正常应该是这样的(看看有没有谁偷偷修改了你的配置文件)

我们已经知道有两种管理方案了,所以按理说有两种配置方案。

配置信息的来源去脉

需要的配置信息

地址(address)、子网掩码(netmask)、网关(gateway)、域名服务器地址(DNS)

配置信息详解

地址(address):ipv4地址,随便填,但是应该符合分配范围,可以从vmware的配置文件查看分配范围,如果懒得找,直接填原来的或者与原来的差不多且不冲突的

子网掩码(netmask):一般是255.255.255.0,否则要去配置文件找

网关(默认路由)(gateway) 与 DNS:1. 在进入GUI的网络设置前可以看到 2. vm配置文件有

查找配置信息

方法一:GUI

ubuntu桌面–>设置–>网络–>有线连接–>设置

此处可以找到ip、gateway、dns

ubuntu1804IpViewInfo

方法二:vmware配置文件

macOS路径: /Library/Preferences/VMware Fusion

networking 文件是有关vmware网络的一些基础配置,如是否开启某个网卡的DHCP,此时不用管

因为我用的是NAT模式,所以进入 vmnet8 文件夹。

  1. 首先是 dhcpd.conf 文件
1
2
3
4
5
6
7
8
9
10
subnet 172.16.10.0 netmask 255.255.255.0 {
range 172.16.10.128 172.16.10.254;
option broadcast-address 172.16.10.255;
option domain-name-servers 172.16.10.2;
option domain-name localdomain;
default-lease-time 1800; # default is 30 minutes
max-lease-time 7200; # default is 2 hours
option netbios-name-servers 172.16.10.2;
option routers 172.16.10.2;
}

从中知道

ip 地址分配范围是 172.16.10.128172.16.10.254

netmask255.255.255.0

DNS172.16.10.2

  1. 其次是 nat.conf 文件
1
2
3
# NAT gateway address
ip = 172.16.10.2
netmask = 255.255.255.0

从中知道

gateway172.16.10.2

netmask255.255.255.0

!开始修改!

方法一:GUI

在哪里改?

ubuntu桌面–>设置–>网络–>有线连接–>设置–>ipv4–>手动,修改以下配置项

ubuntu1804IpAlterInfo

改完后记得重启 sudo reboot

方法二:命令行

在哪里改?

进入 /etc/network/interfaces ,默认内容如下

1
2
auto lo
iface lo inet loopback

添加以下内容

1
2
3
4
5
6
auto ens33
iface ens33 inet static
address 172.16.10.135
netmask 255.255.255.0
gateway 172.16.10.2
dns-nameservers 172.16.10.2

注:

iface ens33 inet static:采用静态ip

其他内容根据预先知识填写就好

配置完记得重启 sudo reboot

Q&A

但此时直接重启会出现“有线未托管”情况,原因是ubuntu的网络管理方案出问题了。

此时需要修改 /etc/NetworkManager/NetworkManager.conf

1
2
3
4
5
6
7
8
[main]
plugins=ifupdown,keyfile

[ifupdown]
managed=false

[device]
wifi.scan-rand-mac-address=no

managed=false 改成 managed=true

后重启 network-manager 或重启ubuntu

1
2
sudo service network-manager restart
sudo reboot

尝试能否ping通百度与能否ssh连接到虚拟机

tips

之前ip一直变的时候ssh连接上去,都会保存密钥,会占用不需要的ip的密钥

在主机的 ~/.ssh/known_hosts 可以删除

附录

参考

  1. Ubuntu18.04连不网 报"有线连接未托管" https://blog.csdn.net/daerzei/article/details/85058130
  2. Ubuntu 18.04 lts 修改静态ip http://ivo-wang.github.io/2019/03/26/Ubuntu-18.04-lts-%E4%BF%AE%E6%94%B9%E9%9D%99%E6%80%81ip/
  3. ubuntu16.04配置网卡 https://blog.csdn.net/stay_zezo/article/details/80718369
  4. 虚拟机Ubuntu 18.04配置固定IP地址(ens33网卡,eth0也一样)ping百度 https://blog.csdn.net/wu10188/article/details/102985067