本文引自:https://www.cnblogs.com/toov5/p/10340395.html,特此鸣谢
最近想测试消息中间件等各类web集群相关技术,这就需要解决linux主机之间互联互通的若干问题,特此折腾
友情提示:在ubuntu19上用vmware15 搭建centos7 操作系统(gnome桌面)重启后失效,但在开机状态可以用 #修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识 #nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8"#将dns配置生效 #nmcli con up eno1 让你的网卡配置生效
这篇博文,可能对初学linux的小伙伴或对网卡配置不太熟悉linux用户有所帮助, 如果你是老司机呢, 可以多多指正, 如果说这篇博文你看过之后学不会配置linux下的静态IP, 那真是没有好的办法了, 你可能真的不太适合做技术!
CentOS7最小化安装后是没有
ifconfig
命令的, 所以说你是没有办法通过ifconfig
查看网卡相关配置信息的, 不好意思说了一句废话, 那么CentOS这个那么有情怀的社区linux发行版本怎么可以在通过最小化安装后不能查看网卡配置信息, 这个必须有它就是ip
命令
[root@localhost~]# ip addr
通过
ip
命令加参数addr
则是查看当前网卡的配置信息, 从下图中可以看出, 当前系统的ens33
网卡并没有ipv4
及ipv6
, 没有ip地址
则只能说明一个问题, 当前linux系统是没有办法上网的,lo
这块网卡每一个系统中都会有, 这个称之为回环网卡
当前系统只能通过
ping
命令ping
通回环网卡
也就是127.0.0.1
这个ip地址
[root@localhost ~]# ping 127.0.0.1
CentOS7默认网卡配置信息
CentOS7默认网卡设备文件存放于
/etc/sysconfig/network-scripts/
目录下, 有于CentOS的发行及系统升级或许可能会存在网卡设备名称与之前版本不一致的情况, 这也很容易理解, 网卡设备名称在linux系统中它只是一个标志, 它并不能说明什么问题, 关键是这个设备文件的配置参数, 我当前CentOS7的网卡设备名称是
ifcfg-ens33
如果你看到你的linux发行版本中的网卡设备名称与我的不一致, 这太正常了, 不要问为什么, 改变嘛, 改变就是希望! (^-^), 这里只是说的linux的发行版本CentOS, 我可没说过是Ubuntu, 为什么说是CentOS呢?我们都知道在企业应用中linux的发行版本用的最多的还是
RedHat
, 不过RedHat
要收费了哈, 为什么呢?这是人家服务做的好嘛!再小一点的公司可能最多的用的是CentOS
, 为什么要用CentOS
呢?这是因为RedHat
把CentOS
给收购了,CentOS
现在叫社区版本,RedHat
在做服务方面, 是先将服务放到社区版本CentOS
上, 通过社区反馈, 当技术足够成熟时, 就会将新技术或者服务添加到RedHat
中去, 所以用CentOS
其实也就是间接的在使用RadHat
啦!就是这个样子了, 当然你可以去百度一下去了解了解, 就不说让你Google了,在天国真是上网都有些力不从心呢,你懂就好!哈哈...
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
通过
cat
查看CentOS7最小化安装默认网卡设备配置信息, 如下:
TYPE=Ethernet # 网卡类型:为以太网
PROXY_METHOD=none # 代理方式:关闭状态
BROWSER_ONLY=no # 只是浏览器:否
BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议]
DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由` IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否 IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6] IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6] IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6] IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否 IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略] NAME=ens33 # 网卡物理设备名称 UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用 DEVICE=ens33 # 网卡设备名称, 必须和 `NAME` 值一样 ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
CentOS7配置网卡为静态IP
上面说了那么多就是为了下面配置网卡一哆嗦!以下操作是通过
vi
编辑器所做修改, 老司机会说了, 你怎么不用vim
, 这个比vi
更个性, 你呀也别叨叨了, 你是没看到怎么的, 咱这可是最小化安装方式, 啥也没有, 嗯不对, 是最基础的有, 想玩花样, 那可得安装, 要安装那不得先连网, 现在不就是架桥铺路的吗?都到这个地步了, 你可别跟我说你不会用vi
, 别闹哈洗洗睡吧!
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
使用
vi
文本编辑器打开网卡设备文件,vi
linux 下的神器, 不多说谁用谁知道, 没用过的别叨叨哈, 进入插入模式, 这个知道吧, 就是你的小手指按i
, 修改具体配置项为以下内容:
BOOTPROTO=static
设置网卡引导协议为
静态
ONBOOT=yes
设置网卡启动方式为
开机启动
并且可以通过系统服务管理器systemctl
控制网卡
IPADDR=192.168.1.111
NETMASK=255.255.255.0 GATEWAY=192.168.1.1
上面是最主要的3个配置项[IP/子网掩码/网关], 配置完成这些参数先保存退出, 按
esc
进入到命令模式
, 按住shift + :
输入:
, 接着再输入wq
,w
是保存
,q
就是告退喽, 你可能会说, 你输入的:wq
多麻烦呢, 直接来一个:x
命令多好啊, 其实吧说实话我从来就不用这个指令, 为什么呢? 原因很很简单, 那就是这个指令它不够见名知意, 要记住它你得跟wq
联想到一块吧,这在无形中就会增加你学习的成本, 我们要学习的东西很多, 你要这么学你得累死, 这是个人见解,w
就是write
, 那么q
就是quit
, 这些单词你都学过吧, 学过就不用额外记其它的喽, so...
[root@localhost ~]# systemctl restart network
重启网卡, 说明一点, 在
CentOS7
下已全面使用systemctl
作为服务管理器, 它用来替代service 和 chkconfig
, 现在RadHat
、Ubuntu
、fedora
等主流的linux
发行版本都以全面支持systemctl
服务管理器, 这可是一个好事情!皆大欢喜
获取设置具体IP/子网掩码/网关地址说明
设置这3个参数你要知道你当前所处的网络环境, 比如公司内网, 家庭局域网, 餐厅, 咖啡厅等, 知道它们的网段,子网及网关, 就比如说我在家里上网有台小路由器吧, 同时可以有多台设备上网iPhone,MAC,MI,ThinkPad等等, 现在谁家还没有路由器, 你可别说你开了一宽带就直接往电脑上一插, 然后开热点, 你可真会过, 我真没见过你这样式的,一个字
抠门
, 没有路由器的小伙伴可以闭嘴了哈, 开个玩笑而已, 你可真要当真了哈, 哈哈...
上图是我的Mac无线网卡的配置信息, 这个配置信息, 你不用操心太多, 这是Mac通过DHCP协议从无线路由器上获取到的, 你可能会说我用的是Windows, 怎么和你的显示不太一样, 不太一样是吧, 这也一点问题都没有, 没毛病, 要不然Mac也成了Windows操作系统了, 这Mac可真是买亏了, 说一下上面红线圈住的具体含义
inet 192.168.1.100
就是局域网IP地址啦!Mac是
192.168.1.100
那么上面的CentOS
就不能是这个地址了, 记住了哈, IP是唯一的, 就像你的身份证ID一样, 每个人只有一个, 你跑到国外也不会有人跟你一样, 要不然那还得了, 别人犯事了, 来抓你了, 你能愿意? 呵呵....我不信!
netmask 0xffffff00
这个是子网掩码, 它是用
16
进制表示的, 这可能与我们常常使用的Windows有些不一样, 并且还略显怪异, 我们都知道, IP地址是用32
位表示的, 分为4
段, 每段8
位, 这8
位呢!是0
或1
二进制组合来表示的, 那么转化为10
进制, 它每段的取值就是0-255
所示每段最小是0
最大是255
, 这种表示方法在Windows上就是使用的10
进制, 在Mac
下如果存在最小0
或 最大255
它就会转化为16
进制, 如果说当前的子网掩码是255.255.255.0
, 这是Windows下的10
进制表示, 那到了Mac
下Mac
系统的研发工程师觉得老板发薪资了, 也不能闲着的时候没事干, 非得将10
进制转换成16
进制就成了我们现在看到的这个样子了0xffffff00
, 你就可劲转吧, 我们又不是转不回来, 小样, 哈哈, 博主是猴子请来的...
broadcast 192.168.1.255
这个呢是
广播地址
, 主要的网络设备有路由器
、防火墙
,具有三层交换功能的网络交换机
及以通过软件开启了路由功能的主机
, 这个地址呢!可能会与IP不是一个网段, 这个要看局域网网络设备多少, 公司内部一般是不会跟IP地址网段一样, 还是那句话, 具体情况具体分析, 你可别较真哈, 像我在家里上网肯定就是一台无线路由器就搞定的事情, 那么这个广播地址
, 肯定是跟IP地址在一个网段, 最大10
进制值表示这个广播地址
也就是192.168.1.255
, 网卡中设置的是网关地址, 那么这个IP网段的第一个就是网关地址, 也就是192.168.1.1
这个地址
配置以上网卡信息后当前网卡状态
[root@localhost ~]# ip addr
可以看到
ens33
这块网卡, IP/网关, 还有ipv6这个现阶段还暂时用不到, 甭操心! 但是你会发现你看不到子网掩码
设置具体值, 这个安装上net-tools
工具包, 就可以通过ifconfig
来查看网卡配置信息了, 来接着往下看
到目前为止, 上面配置的网卡信息也只能是在内网里得瑟, 上不了网, 为什么这么说呢, 要不你试试看, 因为还有一个知识点要说, 先来试试看是不是像我说的那样, 下面做一个测试就一目了然了
PING内网其它主机
[root@localhost ~]# ping 192.168.1.100
这个
ping
的是我的Mac, 可以ping
通, 没有任何问题!
PING外网其它主机
[root@localhost ~]# ping baidu.com
这个
ping
的是位于西二旗的在百度
, 出现未知域名或服务
!shit!
允许网卡访问外网主机(修改dns)----这里eno1 要提换成你要设置的那块网卡
#显示当前网络连接 #nmcli connection show NAME UUID TYPE DEVICE eno1 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eno1#修改当前网络连接对应的DNS服务器,这里的网络连接可以用名称或者UUID来标识 #nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8"#将dns配置生效 #nmcli con up eno1