Ubuntu配置网络与静态IP地址的常见方法

这里的环境是虚拟机中的Ubuntu18版本的网络配置,使用虚拟机比较常见,因为主机一般是有线直连,配置很简单

1、NAT模式

虚拟机最简单的联网就是勾选**"NAT模式"**,不需要任何配置,主机能上网,虚拟机就可以上网,对于只需要上网来说是已足够,如下图:

2、仅主机模式

上面的NAT模式,IP地址不能更改也不能更改DHCP分配IP地址的范围,所以更灵活的是配置**"仅主机模式"** ,勾选"将主机虚拟适配器连接到此网络" 以及**"使用本地DHCP服务将IP地址分配给虚拟机"**如下图:

3、桥接模式

桥接模式能够外连到外网设备,什么意思呢?比如说主机插入一个USB的WIFI,然后主机里面的多个虚拟机是可以去主动连接这个USB-WIFI的,这样的意义在于可以将这些设备配置在同一网段里面,这个平时用的少,一些需要做分布式处理测试的时候比较方便。

4、静态IP

上述都是DHCP自动分配的动态IP,接下来我们来看下设置静态IP,很多场景很实用。

4.1、用户界面配置

我们打开网络设置(右上角的位置) ,点击**"IPv4"** ,选择**"Manual"** (手动配置),分别输入IP地址Address、子网掩码Netmask、网关Gateway,以及DNS的可选,设置好了,点击右上角的 Apply(应用),如下图:

4.2、netplan

当然很多时候我们也习惯使用命令来操作,或者有时候远程的Linux服务器只有命令行界面的情况,我们可以修改网络配置文件来设置固定IP:

查看本机的IP情况:ifconfig

ens33 : flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.3.55 netmask 255.255.255.0 broadcast 192.168.3.255

inet6 240e:338:c16:43a1:9017:c885:194a:4 prefixlen 128 scopeid 0x0<global>

inet6 240e:338:c16:43a1:281d:8ea4:d748:21dd prefixlen 64 scopeid 0x0<global>

inet6 fe80::4531:a232:48b5:41f9 prefixlen 64 scopeid 0x20<link>

inet6 240e:338:c16:43a1:53dd:958d:fd3e:1caf prefixlen 64 scopeid 0x0<global>

ether 00:0c:29:4b:0b:84 txqueuelen 1000 (Ethernet)

RX packets 3152 bytes 4123672 (4.1 MB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 1887 bytes 184966 (184.9 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536

inet 127.0.0.1 netmask 255.0.0.0

inet6 ::1 prefixlen 128 scopeid 0x10<host>

loop txqueuelen 1000 (Local Loopback)

RX packets 200 bytes 18080 (18.0 KB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 200 bytes 18080 (18.0 KB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

网卡名称是ens33,其中需要关注的是IP地址、子网掩码即可:inet 192.168.3.55 netmask 255.255.255.0

查看下IP路由表:route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

0.0.0.0 192.168.3.1 0.0.0.0 UG 100 0 0 ens33

169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33

192.168.3.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33

关注网关即可:192.168.3.1

cd /etc/netplan

备份一份:sudo cp 01-network-manager-all.yaml 01-network-manager-all1.yaml

修改网络配置文件:sudo gedit 01-network-manager-all.yaml

XML 复制代码
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    ens33:
      addresses: [192.168.3.110/24]
      gateway4: 192.168.3.1
      dhcp4: no
      nameservers:
        addresses: [114.114.114.114, 223.5.5.5]

注意事项:

IP地址:[192.168.3.110/24] 需要 /24

这个24是什么意思呢?我们知道IP地址是两部分组成,网络部分+主机部分,那如何区分呢?通过子网掩码,比如:255.255.255.0,就表示前面三个字节是网络部分,后面1个字节是主机部分,如果是,255.255.0.0,那么网络部分就是前两个字节,后两个字节是主机部分,所以我们这里是24,24位是3个字节, 表示192.168.3是网络部分,后面110表示的就是主机部分的其中一台主机

gateway4表示网关地址,dhcp4: no表示不动态分配

除了空格进行缩进对齐之外,冒号后面需要一个空格

应用新的配置:sudo netplan apply

重启网络:sudo service network-manager start

我们在网络设置中也可以直观看到,当然ifconfig命令也可以,如下:

4.3、interfaces

另外一种在以前很常见的,修改:gedit /etc/network/interfaces

XML 复制代码
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.3.110
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameserver 114.114.114.114

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

在原来基础上新增的修改,可以进行IP地址的自由选择,打开网络配置

选择之后,我们查看IP地址就会更改了。

上面就是对虚拟机中网络配置的三种形式以及配置静态IP的基础知识,希望可以帮助到大家