Hyper-V虚拟机配置内部网络固定IP并连接外网

2019/10/23, Hyper-V CentOS7

摘要:Hyper-V中的虚拟机CentOS7能固定IP并且连接外网

保证宿主机的Xshell始终只用同一个IP连接到该虚拟机

 

新建内部网络虚拟交换机

 

修改虚拟网卡IP地址

经过第一步后,网络连接中会出现刚刚新建的虚拟网卡"InternalNat"

1.打开 控制面板-网络和Internet-网络连接

2.找到刚刚新建出来的虚拟网卡

3.右击该网卡,属性-网络-Internet协议版本4(TCP/IPv4)

4.填写固定IP地址,我这里填写的是192.168.137.1,子网掩码255.255.255.0

备注:192.168.137.1这个IP地址恰巧也是Windows网络适配器共享网络所使用的默认IP地址(注册表可修改)

 

应用到虚拟机的网卡上

 

修改虚拟机网络设置

定位到network-scripts目录,找到并编辑自己的网卡(一般叫ifcfg-eth0)

cd /etc/sysconfig/network-scripts/
sudo vi ifcfg-eth0

  主要需要修改以下键值

#dhcp动态获取改为static静态IP
BOOTPROTO=static
#自动启动no改为yes
ONBOOT=yes
#新增以下字段
IPADDR=192.168.137.10
GATEWAY=192.168.137.1
DNS1=192.168.137.1
NETMASK=255.255.255.0
BROADCAST=192.168.137.255

 

  修改完如下图

 

重启网络服务

sudo service network restart
ip a #查看IP

 可以看到修改的配置已经生效

到这一步为止,虚拟机已经使用InternalNat网卡(192.168.137.1)设置了自己的IP(192.168.137.10)

在宿主机上,使用 ping 192.168.137.10,发现能ping通

 

解决ssh连接虚拟机慢的问题 

网络上找到的教程大多数到此为止,但是我自己在实际尝试过程中还发现别的问题:

使用Xshell连接虚拟机,建立连接的过程很慢,大概需要等待半分钟至一分钟左右

让我一度以为我没配置成功或者配置出错或者防火墙阻碍了连接,但是连上之后输入命令一切正常

经搜索后发现,可能是由于虚拟机ssh尝试反向解析客户端的IP地址,如果DNS中没有这个IP的域名解析,则会等到DNS查询超时才会进行下一步,消耗很长时间。

解决办法如下:

继续在虚拟机中

sudo vi /etc/ssh/sshd_config

将 #UseDNS yes 改成 UseDNS no(注意去掉#符号),修改后如下图所示(文件内容有些长,找不到这句话可以使用/UseDNS进行搜索)

 保存修改后,重启sshd

sudo service sshd restart 

重新使用Xshell连接虚拟机,发现连接速度正常了

此时宿主机能随时随地使用192.168.137.10连接虚拟机,但是虚拟机是无法访问到外网

 

内部网络-虚拟机访问外网

1.打开 控制面板-网络和Internet-网络连接

2.找到宿主机正常联网使用的网卡

3.右击该网卡,属性-共享

4.勾选“允许其他网络用户通过此计算机的Internet连接来连接”,然后下拉菜单中选择新建出来的InternalNat虚拟网卡

5.确定的时候会提示虚拟网卡的IP地址将被设置成192.168.137.1,这个就是前文提到的他是默认的共享网络IP地址,由于之前我本身就设置的137,所以此处点我们不再需要做任何修改

(如果不想用137网段,需要修改注册表默认的共享网络IP地址)

 点击“是”后,会短暂失去连接,重新使用Xshell连接虚拟机,此时虚拟机已经可以连接外网

 

 到这里,Hyper-V虚拟机配置内部网络固定IP地址,并且能够连接外网

(更换了网络环境,例如无线网络连接切换WiFi,虚拟机就连不上网了,需要重新再设置一下)

posted @ 2019-10-23 17:49  kasnti  阅读(7742)  评论(0编辑  收藏