【背景】sql
今天在本身的虛擬機上安裝上了centos-7.6操做系統,應該是安裝的過程當中大意了;安裝完成後虛擬機能夠正常訪問外網可是centos
個人筆記本鏈接不上虛擬機。網絡
筆記本的IP地址:172.16.192.1 虛擬機地址:172.16.192.200 虛擬機網關:172.16.192.2oop
【筆記本ping虛擬機】spa
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.0debug
【虛擬機能夠正常上外網】rest
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這個子網。code
【解決問題】
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
【總結】
人(我本身吧)在某一領域內有必定的經驗後,在面對一些第一次遇到的問題的時;有一重傾向,就是不看日誌也沒有作特別深刻的分析就直接,經驗
主義的來一發。
一般有那麼一引發問題能夠被這樣低成本的解決,不過方法論上是否正確還有待商榷。
【個人我的站點】