Linux修改网卡名称、主机名的方法
Linux修改网卡名称、主机名
环境:VirtualBox 5.0.14 + RHEL 6.5
需求:个人实验搭建一套Standby RAC时,为了节约时间,直接复制之前安装RAC的主机模板。
但复制之后发现网卡名称不一致:
我这里的环境,Primary RAC的Public IP和Private IP分别对应的网卡名称是eth2,eth3。
而复制Standby RAC的其中一台网卡名称是eth6,eth7;另一台是eth4,eth5.为了保持一致方便后续管理维护,需要将Standby RAC的两台机器的网卡都统一改为eth2,eth3.
同样的,复制的主机主机名是和之前一样的,所以把主机名也修改一下。
以其中一台为例: 首先查看主机目前的网络情况,如下图:
确认eth7的MAC地址是:08:00:27:62:CC:7B
确认eth6的MAC地址是:08:00:27:BC:1B:9F
然后在VirtualBox的设置中,
根据MAC地址确认eth6对应的是内部网络(Private IP);而eth7对应的是公有网络(Public IP)。
所以我们正确的做法应该是将eth6的名称修改为eth3,将eth7的名称修改为eth2.
注意:可能有些同学直接想当然的不确认MAC地址直接修改错了,这里一定要确认清楚,对于DBA来说,任何做事情的细节都很重要。
1.首先修改/etc/udev/rules.d/70-persistent-net.rules文件:
将无关的网卡信息都删除掉(如果怕误操作也可不删除,个人建议删除,清楚且方便管理)
然后将eth6的名称修改为eth3,将eth7的名称修改为eth2。最终修改如下:
[root@jyrac1 ~]# cat /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:bc:1b:9f", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" # PCI device 0x8086:0x100e (e1000) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:62:cc:7b", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
2.确认网络ifcfg-ethN配置文件,并修改信息:
[root@jyrac1 network-scripts]# cat ifcfg-eth2 DEVICE=eth2 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.61 NETMASK=255.255.255.0 [root@jyrac1 network-scripts]# cat ifcfg-eth3 DEVICE=eth3 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=10.10.10.61 NETMASK=255.255.255.0
3.reboot重启主机,网络名称成功修改并启动正常,如下:
[root@jyrac1 ~]# ifconfig -a eth2 Link encap:Ethernet HWaddr 08:00:27:62:CC:7B inet addr:192.168.1.61 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:fe62:cc7b/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:377 errors:0 dropped:0 overruns:0 frame:0 TX packets:51 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:28101 (27.4 KiB) TX bytes:6495 (6.3 KiB) eth3 Link encap:Ethernet HWaddr 08:00:27:BC:1B:9F inet addr:10.10.10.61 Bcast:10.10.10.255 Mask:255.255.255.0 inet6 addr: fe80::a00:27ff:febc:1b9f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:511 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:46118 (45.0 KiB) TX bytes:816 (816.0 b) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:340 (340.0 b) TX bytes:340 (340.0 b)
这样,就可以通过SecureCRT连接到主机方便操作了。
下一步把主机名和/etc/hosts改一下:
主机名修改:
hostname jystdrac1 (临时生效)
[root@jyrac1 network-scripts]# hostname jystdrac1
vi /etc/sysconfig/network (重启生效)
[root@jyrac1 network-scripts]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=jystdrac1
vi /etc/hosts (按照Standby RAC的规划)
#public ip 192.168.1.61 jystdrac1 192.168.1.63 jystdrac2 #virtual ip 192.168.1.62 jystdrac1-vip 192.168.1.64 jystdrac2-vip #scan ip 192.168.1.65 jystdrac-scan #private ip 10.10.10.61 jystdrac1-priv 10.10.10.63 jystdrac2-priv
重新登录SHELL即可看到正确的主机名配置:
Last login: Wed Aug 2 20:37:13 2017 from 192.168.1.88 [root@jystdrac1 ~]# [root@jystdrac1 ~]# hostname -i 192.168.1.61 [root@jystdrac1 ~]#
至此,这个节点修改网卡名称和主机名的工作就已经全部完成,另一个节点同样方法修改即可。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- c#处理空白字符
- 后台优化:使用应用性能管理工具
- Disruptor-NET和内存栅栏
- 我们是如何将 Cordova 应用嵌入到 React Native 中
- ADO.NET的弹性连接控制[ADO.NET idle connection resiliency]
- ASP.Net MVC 5 in Xamarin Studio 5.2
- 自制基于 Snips 和 Snowboy 的智能音箱来保护你的隐私
- 从 React 将从 BSD 改 MIT 许可证,谈如何选择正确的开源许可
- Topshelf 支持Mono 扩展Topshelf.Linux
- 如何在 React Native 实现类微信小程序平台:WebView 调用原生组件
- 如何运营一个开源项目并取得较大影响力?
- ASP.NET Identity 2新增双重认证、帐号锁定、防伪印章功能并修复了一些bug
- Serverless 应用开发指南:基于 Serverless 与 Lambda 的微信公共平台
- Serverless 应用开发指南:serverless 的 hello, world
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Js给数组对象新增属性
- idea中使用逆向工程----三部曲
- 《JSON笔记之二》----封装JSONUtil
- Spring源码学习笔记(11)——Event体系
- Spring源码学习笔记(12)——IoC容器启动流程
- HashMap详解
- ElementUI使用autocomplete组件输入搜索
- Hacking with iOS: SwiftUI Edition - 愿望清单项目(三)
- 浏览器在线预览offce,vue-pdf预览pdf文件
- vivo商城前端架构升级-总览篇
- 《JSON笔记之三》---postman中传入json串
- Spring源码学习笔记(13)——JDBC
- java系列之注解
- NodeJs初入Http模块和Url模块
- Spring系列之实例化、初始化处理器