Hyper-V下Internal vSwitch的配置和Linux虚拟机的SSH连接
最近工作中要在Windows Server 2016/Hyper-V 10中运行Ubuntu16实例,需要制作出“即插即用”的镜像文件,也就是安装好后即可从外部SSH进去。之前我使用Hyper-V,习惯于内网动态分配IP模式下,采用External vSwitch作为虚拟机对外通信的接口。这种模式下虚拟机相当于局域网内新的一台主机,通过DHCP获取自己的IP、Gateway等信息,非常方便。
但是这次内网实行的是静态IP配置方案,每一台物理机有固定的且只能有1个IP。由于虚拟机内的进程需要和其他虚拟机进行通信,只能采用Internal vSwitch。这种模式下,相当于将物理机和虚拟机组件为一张新的子网,物理机扮演Gateway的角色,虚拟机对外通信必须经由物理机的转发。熟悉VMVare的同学一定会发现,这种拓扑结构就是常说的NAT。
1.基于Ubuntu的ISO创建虚拟机,这一步比较简单,Hyper-V提供了非常方便的图形化界面进行操作。由于后续步骤需要联网下载安装包,所以此处先为Ubuntu实例配置External vSwitch。
2.安装SSH服务端程序。用Hyper-V Connect进去,键入Shell:
1 sudo apt-get purge openssh-server
2 sudo apt-get install -y openssh-server
3 sudo service sshd start
3.向/etc/network/interfaces文件追加如下内容:
1 cat >> /etc/network/interfaces << EOF
2 auto eth0
3 iface eth0 inet static
4 address 192.168.1.100
5 netmask 255.255.255.0
6 gateway 192.168.1.1"
7 EOF
建议先用ifconfig命令确认一下网卡的名称是不是为eth0。
键入Shell,重启网络:
1 sudo /etc/init.d/networking restart
4.关闭Ubuntu实例,然后将其导出。键入PowerShell:
1 $VmName = "Ubuntu16"
2 $Destination = "F:\vm-export"
3 Stop-VM -Name $VmName
4 Export-VM -Name $VmName -Path $Dstination
由此完成虚拟机镜像的创建,复制虚拟机依赖的是$Destination目录下的vhdx格式文件。换一台物理机,开始虚拟机镜像的安装。
1.创建Internal vSwitch,用PowerShell:
1 $HyperVVirtualSwitchName = "ISInternalSwitch"
2 New-VMSwitch -Name $HyperVVirtualSwitchName -SwitchType Internal
3 Get-NetAdapter | where { $_.Name -Match $HyperVVirtualSwitchName } | New-NetIPAddress -IPAddress "192.168.1.1" -PrefixLength 24
2.基于导出的Ubuntu镜像和vSwitch,创建新的实例。键入PowerShell:
1 $VMName = "Ubuntu16"
2 $HyperVVirtualSwitchName = "ISInternalSwitch"
3 $VMPath = "F:\vm-import\$VMName"
4 $VHDX = "$VMPath\Virtual Hard Disks\Ubuntu16-TensorFlow10.vhdx"
5 New-VM -Name $VMName -SwitchName $HyperVVirtualSwitchName -Path $VMPath -VHDPath $VHDX -Generation 1
6 Start-VM -Name $VMName
3.最后一步,设置端口转发和开启防火墙。键入Windows批处理命令:
1 netsh interface portproxy delete v4tov4 listenport=22
2 netsh interface portproxy add v4tov4 listenport=22 connectport=22 connectaddress=192.168.1.100
3 netsh advfirewall firewall delete rule name="Ubuntu_SSH"
4 netsh advfirewall firewall add rule name="Ubuntu_SSH" protocol=TCP dir=in localport=22 action=allow
于此,Internal vSwitch的配置完成,用Putty对本机localhost或虚拟机所在远程机器的局域网IP发起SSH连接请求,成功!
Hyper-V下Internal vSwitch的配置和Linux虚拟机的SSH连接的更多相关文章
- 虚拟机中如何Linux系统如何访问PC硬盘中的文件(如何将windows下的文件夹挂载到linux虚拟机下)
这段时间决定学习嵌入式,变打算安装个Linux系统先熟悉一下Linux系统的使用,但自己电脑上安装的win7系统又不想装双系统,一是闲麻烦,二是由于对Linux系统不熟悉担心会因为自己的误操作而损坏系 ...
- jmeter连接配置带跳板机(SSH)的mysql服务器
jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...
- Jmeter配置通过SSH连接的mysql数据库
jmeter连接配置mysql数据库时,如果数据库服务器没有通过ssh连接,则只需要添加配置相应的jdbc参数就可以了.如果数据库服务器是通过SSH连接的,则需要通过中间远程连接工具来登录,此处使用的 ...
- virtualBox使用nat模式下ssh连接
virtualBox本地虚拟机通过ssh连接一般可通过桥接模式和Nat模式 桥接模式下,共享本地主机网卡,在同一个局域网之下,直接获取Ip地址就可以进行连接了. Nat模式下,获取的Ip与本地主机不是 ...
- Kali Linux虚拟机安装完整安装过程及简单配置(视频)
点击播放视频 附:视频中出现的两个txt文本,包含了大致的安装与配置过程: 文本1:KaliLinux虚拟机安装和初步配置 Kali Linux虚拟机安装和初步配置 大家好,今天给大家演示一下在VMw ...
- Hyper V NAT 网络设置 固定IP / DHCP
Hyper V 默认的Default Switch同时支持了NAT网络以及DHCP,虚拟机能够访问外网. 但使用过程中发现这个IP网段经常变化,而且Hyper V没有提供管理其NAT网络与DHCP的图 ...
- windows server 2008 r2 企业版 hyper v做虚拟化的相关问题处理
windows server 2008 r2 企业版 hyper v做虚拟化的相关问题处理 今天在dell r710 上用windows server 2008 r2企业版hyper v 做虚拟化,添 ...
- 写给大忙人的ELK最新版6.2.4学习笔记-Logstash和Filebeat解析(java异常堆栈下多行日志配置支持)
接前一篇CentOS 7下最新版(6.2.4)ELK+Filebeat+Log4j日志集成环境搭建完整指南,继续对ELK. logstash官方最新文档https://www.elastic.co/g ...
- ELK学习笔记之Logstash和Filebeat解析对java异常堆栈下多行日志配置支持
0x00 概述 logstash官方最新文档.假设有几十台服务器,每台服务器要监控系统日志syslog.tomcat日志.nginx日志.mysql日志等等,监控OOM.内存低下进程被kill.ngi ...
随机推荐
- 『心善渊』Selenium3.0基础 — 4、Selenium基础元素定位详解
目录 1.什么是元素定位 2.Selenium元素定位常用API (1)By_id 定位 (2)by_name 定位 (3)by_class_name 定位 (4)by_tag_name 定位 (5) ...
- 《吃透微服务》 - 服务容错之Sentinel
大家好,我是小菜. 一个希望能够成为 吹着牛X谈架构 的男人!如果你也想成为我想成为的人,不然点个关注做个伴,让小菜不再孤单! 本文主要介绍 SpringCloud中Sentinel 如有需要,可以参 ...
- 聊一聊我在 B 站自学 Java 的经历吧
Hey guys ,这里是 cxuan,欢迎你收看我最新一期的文章. 这是一篇鸽了很久的文章...... 事情还要从上回说起...... 我爱 B 站! 这篇文章我汇总了 B 站上计算机基础(操作系统 ...
- js 正则表达式 验证数字或字母
let reg= /^(^[0-9]*$)|(^[A-Za-z]+$)/ /*reg= /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]$/*/ if(!reg.test( ...
- 《面试八股文》之kafka21卷
微信公众号:moon聊技术 关注选择" 星标 ", 重磅干货,第一 时间送达! [如果你觉得文章对你有帮助,欢迎关注,在看,点赞,转发] 大家好,我是moon,最新一篇面试八股文系 ...
- 前端集合传参,springmvc后端如何接收
废话不多说,上代码 后端接收对象: class ObjectA{ private String a; private String b; private List<ObjectB> lis ...
- Springboot:单元测试多模块项目不同模块组件不能@autowired问题
博主在写springboot单元测试的时候使用@Autowired失效,显示为null 下面是项目架构 api为接口模块,service为实现类模块,测试类写在service模块下. 这是测试类,使用 ...
- C语言相关知识
1.指针:在程序中定义了一个变量,在进行编译时就会给该变量再内存中分配一个地址,通过访问这个地址可以找到所需变量,这个变量的地址成为该变量的指针.指针看作是内存中的一个地址,多数情况下,这个地址是内存 ...
- git rebase(变基)操作
1.rebase(变基)操作 注意事项:rebase 改变分支的根源,绝对不要在与其他人共享的分支上进行操作rebase黄金法则:绝不要在公共的分支上使用它! 1.1git merge 与 git r ...
- JS高阶函数的使用
1.何为高阶函数呢? JavaScript的函数其实都指向某个变量.既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数.简单来说,就是对其他 ...