linux虚拟机怎么查看自己新设的ip地址是否生效

linux虚拟机怎么查看自己新设的ip地址是否生效,第1张

1.首先以根用户登录系统,然后使用lspci | grep Ethernet命令检查计算机上的以太网卡设备是否被内核检测到。这里我要提醒大家,在默认的情况下,只有root也就是根用户才有权限进行网络配置。红框内就是检测到的网卡信息。

2.然后使用“ifconfig”命令查看系统已经识别并已激活的网络接口。如果没有找到可以用“ifconfig -a”命令找到所有已识别包括未激活的网络接口,然后使用”ifconfig 网卡名 up“激活。可以看出我的CentOS6.4系统上有一块已激活的eth0网卡,下面就对这块网卡进行设置使它能够发挥作用。

3.这里我首先为大家演示如何临时指定IP地址。在命令行输入“ifconfig 网卡名 IP地址 netmask 子网掩码”就可以临时指定网卡的IP地址,但重启后失效。相对于上一张图,我的IP临时设置已经生效。

4.接下来为大家演示如何永久改变IP地址。第一步用“vi /etc/sysconfig/network-scripts/ifcfg-eth0”编辑网卡eth0的配置文件。这里小编要说明的是如果设置的是dhcp自动获取IP地址,那么IPADDR、NETMASK和GATWAY都可以不写。

5.第二步就是使用“service network restart”命令重新启动network服务,使配置文件生效。四个状态都必须是OK,否则说明设置有问题,需要重新修改设置。

6.最后再次使用“ifconfig”命令查看网卡参数,可以看出IP地址修改成功,并且会一直保留。

使用 虚拟ip最多的场景可能是双机 ,往往结合着keepalived使用。其实没有双机软件也可以使用虚拟ip,下面介绍两种方法ip addr和ifconfig进行增删查虚拟ip。

增加虚拟ip :

ip addr add ip/netmask dev 网口名称,比如ip addr add 192.168.88.0/24 dev eth0

查看虚拟ip : 

ip addr show device_name或ip addr | grep eth0

ip addr =ip a= ip add list 查看网卡的ip和mac等,即使网卡处于down状态,也能显示出网卡状态,但是ifconfig查看就看不到。

删除虚拟ip:

ip addr del ip/netmask dev 网口名称,比如ip addr del 192.168.88.0/24  dev eth0

清空指定网卡的所有ip:

ip addr flush dev 接口

ip addr 操作时的注意事项:

说明:网卡配置的ip一般为Primary ip,虚拟ip一般为Secondary ip,当删除Primary ip时Secondary ip也有可能同时被删除。

先查看ipv4或ipv6相应网卡开启提升参数promote_secondaries为1,当Primary ip被删除后,它的第1个Secondary ip将继承为Primary ip。

#  cat /etc/sysctl.conf  | grep promote_secondaries

net.ipv4.conf.eth0.promote_secondaries=1

默认不开启,查不到结果则表明未开启。

Secondary ip和Primary ip标注如下

[root@localhost ~]# ip addr show eth0

2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:19:b9:ef:44:8b brd ff:ff:ff:ff:ff:ff

    # Primary ip

    inet 172.16.0.230/24 brd 172.16.0.255 scope global eth0

    inet 10.1.1.230/24 scope global eth0

    # Secondary ip

    inet 10.1.1.231/24 scope global secondary eth0

在linux中在一个网卡上配置的同一个网段的ip有Primary IP和Secondary address之分,如果不是同一个网段的ip总有一个是Primary IP,一条链上的吊链结构中上面的那条主链中的IP是Primary IP,Secondary address是主链结点的子链结点中的IP,一 旦主链上一个节点被删除了,那么它的子链也将不复存在,随之被删除。

可以通过调整一个参数来实现,当一个primary ip被删除时,如果它有secondary ip的话,那么它的第1个secondary地址(长子)成为primary地址,这样就显得很合理了,要不然在删除 primary地址的时候,如果有程序用secondary地址,要么延迟删除,要么程序崩溃。

开启的方法(主机重启后仍然生效的)

echo "net.ipv4.conf.eth0.promote_secondaries=1" >>/etc/sysctl.conf

ifconfig eth1:1 192.168.5.10/24  up:起别名

ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 up

ifconfig eth1:1 192.168.5.10/24 down : 删别名

ifconfig eth0:1 192.168.8.5 netmask 255.255.255.0 down

ifconfig eth1 up :启用eth1网卡

ifconfig eth1 down : 禁用eth1网卡,这种禁用是从数据链路层断掉,但是网络层ip还在,有时候能ping 通,大概率是缓存表没有更新

ifdown eth0 : 禁用网卡,删除了网络层ip

二者本质上没有什么区别,只是表述方式不同。如果你非常理解网络协议的原理以及网络的分层架构那么我想你就不会有这个问题,实际上 每一个网卡设备都有一个mac地址 , 但是却可以有多个网络层地址 ,比如IP地址,然而这个事实无法很好地像用户提供操作接口,所以就引出了ip别名(IP aliases)和辅助ip(secondary IP addresses)的概念。其实很容易理解这个事实,按照分层的思想,下层总是为上层服务,也就是为上层提供舞台,上层利用下层的服务,而不必让下层知道自己的情况,如果一个拥有合理mac地址的网卡没有配置网络层地址(比如IP地址)这件事合理的话,那么为这个设备配置多个IP地址也是合理的,好比一个ip可以对应多个应用层端口一样,也就是说,下层对上层总是一对多的关系,在分层架构中这种关系是合理的。

比如一台机器上运行着一个代理服务器或者负载均衡服务,代理服务器或者负载均衡服务和主服务器要监听相同的端口,那么就可以用secondary ip来解决,只要需要在同一网段监听同一个端口的应用都是吊链中子链存在的原因,因此可以说,主链对外部或者说对下面链路层虚拟了多块网卡, 而子链向上层虚拟了多台机器,配置了吊链结构的linux主机如果说只有一块网卡,那么外部会认为它有多块网卡,对于内部,应用层会认为彼此在不同的主机 上,这就是效果。

添加地址可以通过2个用户空间程序搞定,一个是ifconfig,另一个是ip addr add,ifconfig是基于ioctl进行添加地址的,而ip是基于netlink进行添加地址的,不管哪一种方式都可以达到目的。 但为何用ip addr add添加的ip地址用ifconfig看不到,而ifconfig设置的地址ip addr show却是可以看到?这个问题先放一放。

ip addr增加的虚拟ip在物理主机或虚拟机重启后失效。

方法1:把命令加到/etc/rc.local里面

ip addr add 192.168.26.74/32 dev eth1

方法2:高可用双机倒换后进行虚拟ip的增加

方法3:在/etc/sysconfig/network-scripts添加网卡名字,比如ifcfg-eth0:0,DEVICE=eth0:1 ---->子接口名

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.109.108

NETMASK=255.255.255.0

ip addr 操作ip时需要注意

ip addr和ifconfig的区别


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/142509.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-19
下一篇2023-03-19

发表评论

登录后才能评论

评论列表(0条)

    保存