背景

  今天在自己的虚拟机上安装上了centos-7.6操作系统,应该是安装的过程中大意了;安装完成后虚拟机可以正常访问外网但是

  我的笔记本连接不上虚拟机。

  笔记本的IP地址:172.16.192.1 虚拟机地址:172.16.192.200 虚拟机网关:172.16.192.2

  

笔记本ping虚拟机

ping 172.16.192.200

PING 172.16.192.200 (172.16.192.200):  data bytes
Request timeout for icmp_seq
Request timeout for icmp_seq
Request timeout for icmp_seq
Request timeout for icmp_seq
packets transmitted, packets received, 100.0% packet loss

  由上面的结果可以看出笔记本ping不能虚拟机、笔记本上对应网卡的信息如下:

ifconfig vmnet8
vmnet8: flags=<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu
ether :::c0::
inet 172.16.192.1 netmask 0xffffff00 broadcast 172.16.192.255

  以上内容可以提取出一个非常重要的信息,笔记本上的172.16.192.1对就的子网掩码为255.255.255.0

虚拟机可以正常上外网

ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) () bytes of data.
bytes from 14.215.177.38 (14.215.177.38): icmp_seq= ttl= time=10.9 ms
bytes from 14.215.177.38 (14.215.177.38): icmp_seq= ttl= time=12.4 ms
bytes from 14.215.177.38 (14.215.177.38): icmp_seq= ttl= time=11.5 ms --- www.a.shifen.com ping statistics ---
packets transmitted, received, % packet loss, time 2004ms
rtt min/avg/max/mdev = 10.960/11.660/12.451/0.618 ms

  看到上面的信息第一感觉是有鬼了,但是我并没有放弃还是决定debug一下,首先想到的是看一下虚拟机上网卡的状态

ifconfig

ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST>  mtu
inet 172.16.192.200 netmask 255.255.255.248 broadcast 172.16.192.207
inet6 fe80::adf:d6e7:6f20:e33 prefixlen scopeid 0x20<link>
ether :0c:::: txqueuelen (Ethernet)
RX packets bytes (62.6 KiB)
RX errors dropped overruns frame
TX packets bytes (58.1 KiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (3.1 KiB)
RX errors dropped overruns frame
TX packets bytes (3.1 KiB)
TX errors dropped overruns carrier collisions

  这下问题明确了172.16.192.200 对应的子网掩码是255.255.255.248;我这里就直接采用简单粗暴的方式把虚拟机加入到255.255.255.0这个子网。

解决问题

cat /etc/sysconfig/network-scripts/ifcfg-ens33 

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="58d375dc-2655-456d-b56d-a52837177e08"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="172.16.192.200"
PREFIX=""
GATEWAY="172.16.192.2"
DNS1="172.16.192.2"
IPV6_PRIVACY="no"

  从网卡的配置文件上没有看到有netmask呀! 老DBA了我决定用一点点经验来解决问题(反正这个虚拟机是刚创建出来的我输的起),仔细分析

  后发现PREFIX这个项最有可能是用来设置掩码的;255.255.255.0对应的就是24个1嘛,决定把它从29改到24然后重启一下网络

  第一步:改PREFIX为24

cat /etc/sysconfig/network-scripts/ifcfg-ens33  

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="58d375dc-2655-456d-b56d-a52837177e08"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="172.16.192.200"
PREFIX=""
GATEWAY="172.16.192.2"
DNS1="172.16.192.2"
IPV6_PRIVACY="no"

  第二步:重启网络

systemctl restart network

  第三步:查看虚拟机的网卡信息

ifconfig

ens33: flags=<UP,BROADCAST,RUNNING,MULTICAST>  mtu
inet 172.16.192.200 netmask 255.255.255.0 broadcast 172.16.192.255
inet6 fe80::adf:d6e7:6f20:e33 prefixlen scopeid 0x20<link>
ether :0c:::: txqueuelen (Ethernet)
RX packets bytes (137.8 KiB)
RX errors dropped overruns frame
TX packets bytes (118.9 KiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (3.1 KiB)
RX errors dropped overruns frame
TX packets bytes (3.1 KiB)
TX errors dropped overruns carrier collisions

  哈哈! 还真是这个。

  第四步:在笔记本上是否可能连接到虚拟机

ping 172.16.192.200

PING 172.16.192.200 (172.16.192.200):  data bytes
bytes from 172.16.192.200: icmp_seq= ttl= time=0.304 ms
bytes from 172.16.192.200: icmp_seq= ttl= time=0.475 ms
bytes from 172.16.192.200: icmp_seq= ttl= time=0.540 ms
^C
--- 172.16.192.200 ping statistics ---
packets transmitted, packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.304/0.440/0.540/0.100 ms

总结

  人(我自己吧)在某一领域内有一定的经验后,在面对一些第一次遇到的问题的时;有一重倾向,就是不看日志也没有做特别深入的分析就直接,经验

  主义的来一发。

  通常有那么一引起问题可以被这样低成本的解决,不过方法论上是否正确还有待商榷。

我的个人站点

  www.sqlpy.com

Centos-7.x 下子网掩码的配置的更多相关文章

  1. centos 6.5下安装、配置并启动SSH远程访问

    centos 6.5下安装.配置并启动SSH远程访问 1.登录centos 6.5系统,使用root用户登录,如果为非root用户则执行su或su - 或su root或su - root切换为roo ...

  2. CentOS 6.3下NFS安装配置

    CentOS 6.3下NFS安装配置 一.环境介绍   NFS服务器:CentOS6.3 192.168.8.20 NFS客户端:CentOS6.5 192.168.8.39 二.服务器端安装配置   ...

  3. CentOS 6.6下Redis安装配置记录

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/120.html?1455855209 在先前的文章中介绍过redis,以下 ...

  4. CentOS 6.5下NFS安装配置

    [root@local /]# yum -y install nfs-utils rpcbind3.创建共享目录:[root@local /]# mkdir /sharestore4.NFS共享文件路 ...

  5. CentOS 7服务器下Nginx安装配置

    一.安装编译工具及库文件 $ yum -y install make zlib zlib-devel gcc gcc-c++ libtool openssl openssl-devel pcre pc ...

  6. 在CentOS 6.6下安装与配置mysql

    1.使用yum安装mysql yum list | grep mysql   //查看mysql信息 yum install mysql-server.x86_64 //安装mysql sudo ap ...

  7. Centos 7.3下 Linux For SQL Server安装及配置介绍

    Centos 7.3下 Linux For SQL Server安装及配置介绍 高文龙关注13人评论2828人阅读2017-03-05 21:46:21 Centos 7.3下Linux For SQ ...

  8. CentOS下Redisserver安装配置

    1.CentOS 6.6下Redis安装配置记录 2.CentOS下Redisserver安装配置

  9. CentOS6.5下安装、配置SSH

    1.登录CentOS 6.5系统,使用root用户登录,如果为非root用户则执行 su 或 su - 或 su root 或 su - root 输入root密码切换为root用户. 2.查看SSH ...

随机推荐

  1. Effective前端1---chapter 1 HTML/CSS优化

    最近在读高效前端:web高效编程与优化实践,借此本书的感受总结下前端代码与性能优化,纯属自己见解,如有错误,欢迎指出. 1.能用HTML/CSS解决的问题就不要用js 场景1:鼠标悬浮时显示 鼠标悬浮 ...

  2. SpringBoot的国际化使用

    在项目中,很多时候需要国际化的支持,这篇文章要介绍一下springboot项目中国际化的使用. 在这个项目中前端页面使用的thymeleaf,另外加入了nekohtml去掉html严格校验,如果不了解 ...

  3. MySQL 查询所有的表名

    select table_name from information_schema.tables where table_schema='laiu8' and table_type='base tab ...

  4. VMware5.5-vCenter的安装准备及安装

    vSphere 最近公司来了新同事,为了帮助他尽快熟悉VM-vsphere,一块复习了下,并把实验总结为文档. 声明:本例是以王隆杰老师的vsphere5.5教程为基础和线索进行的,由于时间匆忙,可能 ...

  5. [数学] 奇异值分解SVD的理解与应用

    看一个预测的代码,在预处理数据的时候使用了svd.了解了一下svd相关资料,比较喜欢第一篇文章的解释,不过第二篇也很简单. https://blog.csdn.net/ab_use/article/d ...

  6. Java笔记(一)编程基础与二进制

    编程基础与二进制 一.编程基础 函数调用的基本原理: 函数调用中的问题: 1)参数如何传递? 2)函数如何知道返回什么地方? 3)函数结果如何传递给调用方? 解决思路是使用内存来函数调用过程中需要的数 ...

  7. GPIO知识点整理

    //GPIO的作业,抄两次,注意:本文件是知识点的整理不是可以直接运行的程序. //STM32必须包含的头文件 #include "stm32f10x.h" //GPIO相关头文件 ...

  8. [POJ]代码托运站

    这里暂时是空的

  9. C++程序设计方法4:成员函数模板

    成员函数的模板: 普通类的成员函数,也可以定义为函数模板,如: class normal_class { public: int value; template<typename T> v ...

  10. jQuery如何追加tr到table中任意位置--向Table中指定位置添加tr或td(jQuery)

    jQuery 添加新内容有以下四个方法: append() - 在被选元素的结尾插入内容 prepend() - 在被选元素的开头插入内容 after() - 在被选元素之后插入内容 before() ...