Ubuntu修改IP地址

原创
2019/06/23 20:06
阅读数 658

Ubuntu修改IP地址

前言

本文章旨在介绍,如何在Ubuntu中如何通过新建方式, 来配置多个静态IP地址.

如果Ubuntu处于虚拟机中,要添加一个新的IP地址(非指修改);肯定是需要添加一块虚拟网卡, 具体添加方式,依照虚拟机的不同而不同.

而,如果是要修改某个网卡的IP地址,则需要将,配置文件名的改网卡名的部分删掉重写.方法与下面的类似, 就是换个名而已.

基于16.04

  • 查看网卡是否连接成功
首先使用
dmesg | grep eth    (dmesg用法见帅哥笔记)
查看两个网卡连接是否成功(link up)
[    3.009052] e1000 0000:02:06.0 ens38: renamed from eth1
[    3.012121] e1000 0000:02:01.0 ens33: renamed from eth0

通过以上两句我们发现, 在Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64)
中网卡名称已被重命名, 在接下来编写IP地址时应该特别注意这一块
  • 进入配置目录(准备配置文件);
其次:
 1. vim /etc/network/interface
    发现source /etc/network/interfaces.d/*
    这句话的意思, 应该就是,引用当前目录下的interfaces.d下的配置文件.
    故,我们今后的修改应该将配置文件统统都放在该目录下.

2.备份 /etc/network/interface文件
    在/etc/network/interfaces.d/下,
    新建一个文件名为XXX(注意不可以与前一个网卡重名,文件名没事,参考dmesg | grep eth得到的信息)
  • 修改配置文件
# 编辑文件
vim /etc/network/interfaces.d/eth0

# 添加配置信息(按需添加)
auto eth0
iface eth0 inet static
address IP地址
netmask 子网掩码
gateway 网关地址
dns-nameservers DNS解析地址
.....
多个IP多个网卡可以继续配置
但是我一般一个文件一个网卡一个IP
.....

我的配置如下:
   auto ens33
   iface ens33 inet static
   address 192.168.80.129
   netmask 255.255.0.0
   gateway 192.168.80.1
   dns-nameservers 8.8.8.8
   hwaddress ether 00:50:56:35:CB:9D


注意:
   此处最应该注意的时, 网卡名称一定不要搞错,重复应该是没有问题的, 但是不生效.
   dns-nameservers和hwaddress其实完全不用写
   ubutnu的DNS配置在vim /etc/resolv.conf
   之所以写下来是为了告诉自己知道,这里可以单独指定.
   同时应该注意的时,据称DHCP解析会自动分配DNS 服务器地址.
   静态IP后就没有自动获取到DNS服务器了,需要自己设置一个
   设置完重启电脑后,/etc/resolv.conf 文件中会自动添加 nameserver 8.8.8.8
   
   但是一般在虚拟机中除非必要,我从来不动DNS.
   原因在于, 我的虚拟机一般都是加载两块虚拟网卡,一块NAT直连本机,用来上网,自己用. 一块桥接获得路由IP,让别人访问.
   
   
重启网卡
service network restart
或者
sudo /etc/init.d/networking restart
其实这两种方式是一样的....

如果不行就重启机器吧.
  • 设置Mac地址
在大多数情况下是不需要进行专门的指定Mac地址
但是VMware在window下配置IP时.
爆出这个错误, 很是要命, 不解决这个问题, 一旦重启系统, 将无法开机.
Restarting network (via systemctl): Job for network.service failed. See *systemctl status network.service* and *journalctl -xn* for details.
原因在于:
        配置文件中的HWADDR(即网卡的MAC地址)与实际网卡地址不符(如迁移虚拟机时只复制了虚拟机磁盘,系统会给新虚拟机重新分配MAC地址),注释掉这一行,或者查找到新的MAC地址并改正确就好了。

我的解决方案是, 重置一下虚拟机的Mac地址.
更为专业的方法是指定一下Mac地址:

临时设置网卡配置(即重启无效):
    ## 修改 eth0 的 MAC 地址
     sudo ifconfig eth0 down
     sudo ifconfig eth0 hw ether AA:BB:CC:DD:EE:FF
     sudo ifconfig eth0 up

在配置文件中设置:
    hwaddress ether 00:50:56:35:CB:9D
    

基于18.04

进入目录修改文件

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

将文件改成这样:

这个是基于virtualBox的Ubuntu18.04-Server虚拟机来做的,一个nat网络(enp0s3),一个是host only(enp0s8)

enp0s3 主要用来上网.也可以用桥接连接.

enp0s8 主要用来和宿主之间通信,比如ssh连接等等.

network:
    version: 2
    ethernets:
        enp0s3:
            dhcp4: true
            addresses: []
        enp0s8:
            dhcp4: false
            addresses: [192.168.56.100/24]
            # 后面的都可以不用设置
            optional: true
			# 18.04如果双网卡,比如在虚拟机下开一个nat网络地址转换和仅主机host only,那么就要把gateway4注释掉,否则会开个多个路由,导致不能上网
            gateway4: 192.168.56.1
            nameservers:
              addresses: [8.8.8.8, 8.8.4.4]

虚拟机双网卡(nat和Host only)下,不要开启多个网关,否则导致无法上网,原因如下

比如,我的enp0s3(nat):开启dhcp4: true(会自动设置网关),而enp0s8(host only):没有开启dhcp4,但是下面我有设置了网关地址 gateway4: 192.168.56.1

导致问题如下: 出现了多个默认的网关地址,且192.168.56.1是第一个,但是这个是host only并不可用,将导致无法上网

liuhao@ubuntu:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.56.1    0.0.0.0         UG    0      0        0 enp0s8
default         10.0.2.2        0.0.0.0         UG    100    0        0 enp0s3
10.0.2.0        0.0.0.0         255.255.255.0   U     0      0        0 enp0s3
10.0.2.2        0.0.0.0         255.255.255.255 UH    100    0        0 enp0s3
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 enp0s8

# 一般这时候我只有删除掉192.168.56.1网关就可以上网了,但是下次再启动的时候,192.168.56.1还是会被添加上来.
# 所以我们在配置网络IP地址的时候最好就直接配好省的费劲
sudo route del gw default 192.168.56.1

运行

# 重启网卡
netplan apply
# 查看网卡情况
ip addr
展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部