1. 程式人生 > >Centos-7.x 下子網掩碼的配置

Centos-7.x 下子網掩碼的配置

add art time 自己的 script style 外網 pad baidu

背景

  今天在自己的虛擬機上安裝上了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): 56 data bytes Request timeout for icmp_seq 0 Request timeout for icmp_seq 1 Request timeout
for icmp_seq 2 Request timeout for icmp_seq 3 4 packets transmitted, 0 packets received, 100.0% packet loss

  由上面的結果可以看出筆記本ping不能虛擬機、筆記本上對應網卡的信息如下:

ifconfig vmnet8
vmnet8: flags
=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 00:50:56:c0:00:08 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) 56(84) bytes of data. 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=128 time=10.9 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=128 time=12.4 ms 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=128 time=11.5 ms --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2004ms rtt min/avg/max/mdev = 10.960/11.660/12.451/0.618 ms

  看到上面的信息第一感覺是有鬼了,但是我並沒有放棄還是決定debug一下,首先想到的是看一下虛擬機上網卡的狀態

ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.192.200  netmask 255.255.255.248  broadcast 172.16.192.207
        inet6 fe80::adf:d6e7:6f20:e33  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:72:84:80  txqueuelen 1000  (Ethernet)
        RX packets 734  bytes 64157 (62.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 554  bytes 59560 (58.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 40  bytes 3208 (3.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 40  bytes 3208 (3.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  這下問題明確了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="29"
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="24"
GATEWAY="172.16.192.2"
DNS1="172.16.192.2"
IPV6_PRIVACY="no"

  第二步:重啟網絡

systemctl restart network

  第三步:查看虛擬機的網卡信息

ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.192.200  netmask 255.255.255.0  broadcast 172.16.192.255
        inet6 fe80::adf:d6e7:6f20:e33  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:72:84:80  txqueuelen 1000  (Ethernet)
        RX packets 1622  bytes 141206 (137.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1076  bytes 121838 (118.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 40  bytes 3208 (3.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 40  bytes 3208 (3.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  哈哈! 還真是這個。

  第四步:在筆記本上是否可能連接到虛擬機

ping 172.16.192.200

PING 172.16.192.200 (172.16.192.200): 56 data bytes
64 bytes from 172.16.192.200: icmp_seq=0 ttl=64 time=0.304 ms
64 bytes from 172.16.192.200: icmp_seq=1 ttl=64 time=0.475 ms
64 bytes from 172.16.192.200: icmp_seq=2 ttl=64 time=0.540 ms
^C
--- 172.16.192.200 ping statistics ---
3 packets transmitted, 3 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 下子網掩碼的配置