背景
今天同事咨询了我一个关于虚拟机的问题,关于内网用Vmware安装的虚拟机,无法通过本机访问虚拟上的Jenkins的服务。
验证多次后发现有如下几方面问题。
- Jenkins程序包和JDK版本不兼容(JDK1.8对应Jenkins不要超过2.3.57)
- 虚拟机虚拟网络配置不正确(要使用桥接)
- 内网安全策略影响
主要影响因素是虚拟机网络配置不正确,现象很奇怪,本地和服务器可以相互PING,但是无法访问启动的服务,最后验证多次,原来是内网安全策略导致,修改虚拟网络适配器连接方式(由原来的仅主机模式修改成桥接模式),解决。
网络适配器分类
- 桥接网络
桥接网络是指本地物理网卡和虚拟网卡通过VMnet0虚拟交换机进行桥接,物理网卡和虚拟网卡在拓扑图上处于同等地位,因此虚拟机和主机是平等的,相当于一个网络中的两台计算机。
在桥接模式下,VMWare虚拟出来的虚拟机就像是局域网中的一台独立的主机,它可以访问局域网内的任何一台机器,虚拟机可以和宿主机器、局域网内的其他主机进行相互通信。
- NAT模式
NAT模式就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。
由于NAT的网络在vmware提供的一个虚拟网络里,所以局域网其他主机是无法访问虚拟机的,而宿主机可以访问虚拟机,虚拟机可以访问局域网的所有主机,因为真实的局域网相对于NAT的虚拟网络,就是NAT的虚拟网络的外网。使用NAT模式,相当于虚拟机挂在以宿主机器为交换机的局域网内,那么局域网内的其他机器相对于虚拟机而言就是外网。都可以访问。
- 仅主机模式
在Host-Only模式下,虚拟网络是一个全封闭的网络,它唯一能够访问的就是主机。其实Host-Only网络和NAT网络很相似,不同的地方就是Host-Only网络没有NAT服务,所以虚拟网络不能连接到Internet。主机和虚拟机之间的通信是通过VMware Network Adepter VMnet1虚拟网卡来实现的。