项目场景:
基于Ubuntu16.04虚拟机搭建的linux驱动开发环境,与主机之间的网络使用桥接模式
问题描述:
本来在搭建好的虚拟机上已经可以使用静态ip和连接filezilla了。可是就很奇怪的是,等我过了一段时间后再用,就不灵了,很玄学。
首先虚拟机无法ping通主机,但是主机却可以ping通虚拟机,也确实在同一个网段
再说ssh连接总是报错,“拒绝连接” filezilla也是拒绝连接
查看了一下自己主机上的IP如下
no@AMDRyzen MINGW64 ~/Desktop
$ ipconfig.exe
Windows IP 配置
..............................................
..............................................
以太网适配器 VMware Network Adapter VMnet1:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::4f5:59fc:c942:91ca%25
IPv4 地址 . . . . . . . . . . . . : 192.168.59.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
以太网适配器 VMware Network Adapter VMnet8:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::ec8e:5f8d:bc2:6676%8
IPv4 地址 . . . . . . . . . . . . : 192.168.1.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . :
无线局域网适配器 WLAN 2:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::24a9:41c:a839:beb1%27
IPv4 地址 . . . . . . . . . . . . : 192.168.0.111
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1
原因分析:
从上面的ip地址分配中可以看到我的虚拟网卡两个没有一个是和我的主机在同一个网段的,一开始我也怀疑是这里的问题,还有就是虚拟机的ip设置。但其实没有必要修改主机上的虚拟网卡的ip直接让他们自动分配就行。
解决方案:
首先看一下我的虚拟机的IP
ens33 Link encap:以太网 硬件地址 00:0c:29:dc:43:99
inet 地址:192.168.0.27 广播:192.168.0.255 掩码:255.255.255.0
inet6 地址: fe80::df4f:c0c:d79e:5dbb/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:5212 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1024 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:502346 (502.3 KB) 发送字节:159240 (159.2 KB)
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:499 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:499 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:34042 (34.0 KB) 发送字节:34042 (34.0 KB)
可以看到我的虚拟机ens33的IP地址是和主机在同一个网段的,没错只要这个和主机的IP地址在同一个网段就可以了,并且这是我自己设置的一个静态IP
静态IP如何设置,设置之后不可用怎么搞
首先设置静态ip的方式有两种,但是不建议两种方式同时存在,会出各种玄学问题
1.通过 sodu vi /etc/network/interfaces设置自己的静态IP,我一开始就是用的这种方式
2.通过 NetworkManager 使用图形界面来配置自己的静态IP, 我现在使用的方式
以上两种方式各有自己的好处,只要不同时使用,随便那种方式都信
说如果配置了静态ip但是ping不通外网怎么搞
1.确定自己配置的虚拟机ip地址和主机的ip地址在同一个网段譬如192.168.0.27呐!标黄的这
一段和你主机的完全一致就是同一个网段了最后一个数字你随意就好,子网掩码,网关都和主机的完全一致就行了。
2.确定自己在配置自己的虚拟机ip时设置了DNS譬如8.8.8.8其他类似144.144.144.144这些都
可以,但一定要设置。
3.确定自己的虚拟机和主机使用的是桥接模式