利用 Windows Hyper-V 创建 Linux 虚拟机,打造个人开发环境

静态 IP

# 创建一个内部的虚拟机交换机(附带会创建一个虚拟网卡)
New-VMSwitch -SwitchName "NAT-VM-CentOS" -SwitchType Internal
# 查看虚拟网卡 NAT-VM 的ifindex
Get-NetAdapter
Get-NetAdapter -Name "*NAT-VM-CentOS*" | Format-List -Property "InterfaceIndex"
# 给虚拟网卡设置 IP,InterfaceIndex 参数自行调整为上一步获取到的 ifindex。这一步等同于在 控制面版-网卡属性 中设置 IP
New-NetIPAddress -IPAddress 192.168.200.1 -PrefixLength 24 -InterfaceIndex 49
# 创建一个 NAT 网络(关键在这里!)
New-NetNat -Name NAT-VM-CentOS -InternalIPInterfaceAddressPrefix 192.168.200.0/24
# 给名称是"CentOS"的VM设置使用这个交换机, 也可以通过hyper-v管理器操作
Get-VM -Name CentOS | Get-VMNetworkAdapter | Connect-VMNetworkAdapter -SwitchName "NAT-VM-CentOS"

设置 Linux 网络静态 IP,编辑文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.200.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.200.1"
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="eth0"
UUID="68fd9207-ce73-43e4-9a77-ba43069c8da4"
DEVICE="eth0"
ONBOOT="yes"

说明:

  • 主要是BOOTPROTOdhcp 换成 staticIPADDR

接着设置 DNS,否则 ping www.baidu.com 可能是不通的。编辑 vim /etc/resolv.conf,添加(这是Google提供的公用DNS):

nameserver 8.8.8.8
nameserver 8.8.4.4

重启网络:

service network restart

PS:管理员 powershell 里面运行这个,可以把本地的虚拟机暴露出来, 通过PC机IP+2022端口来访问VM

Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 2022 -Protocol TCP -InternalIPAddress "192.168.200.101" -InternalPort 22 -NatName NATNetwork

参考:

  • Hyper-V虚拟机通过宿主机上网(NAT)
  • Hyper V NAT 网络设置 固定IP / DHCP

YUM 源配置

YUM 源的配置

常用 RPM 包

yum install -y vim \
               net-tools \
               wget \
               git \
               lrzsz \
               gcc \
               zsh \
               samba
  • net-tools 提供 ifconfig 命令

Git 配置

ssh-keygen -t rsa -C "[email protected]"
git config --global user.email "[email protected]"
git config --global user.name "michael728"
git config --global http.sslverify false
git config --global https.sslverify false

具体配置文件,在 ~/.gitconfig

免密登录 VM

如下操作可以将本机的公钥添加到 VM 上的 authorized_keys 文件中:

ssh-copy-id root@

在 VM 中执行 systemctl restart sshd

为了在本机上可以方便登录,可以给 Host 取个别名,在 Windows 机器上的 C:\Users\\.ssh 目录下,添加一个 config 文件,增加如下内容:

Host vm
    HostName 
    User root
    Port 22
    IdentityFile C:\Users\\.ssh\id_rsa

ssh vm 即可免密登录到远端虚机上

网络设置

交换机设备配置好之后,需要连接外网,那么还需要配置 proxy,为了省事,因为这个虚机就在自己本地,并不会其他共享,直接用账号的方式配置即可。编辑 ~/.zshrc 添加如下:

export http_proxy="http://:*@proxy.michael.com:8080/"
export https_proxy="http://:*@proxy.michael.com:8080/"
export no_proxy="127.0.0.1, localhost"

如果密码有特殊字符,需要利用encode工具编码。

除此以外,可能还需要配置:

  • /etc/resolv.conf
  • 为了避免证书的问题,需要在 Linux 机器上导入证书

Java

Java 安装

mkdir -p /opt/3rdComponent
wget https://mirrors.huaweicloud.com/openjdk/13.0.2/openjdk-13.0.2_linux-x64_bin.t ar.gz
tar xvzf openjdk-13.0.2_linux-x64_bin.tar.gz
ln -s jdk-13.0.2 jdk

编辑 /etc/prfile 添加环境变量:

export JAVA_HOME=/opt/3rdComponent/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

输入 java -version 验证:

openjdk version "13.0.2" 2020-01-14
OpenJDK Runtime Environment (build 13.0.2+8)
OpenJDK 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

Python

Python 安装

mkdir -p /opt/3rdComponent
cd /opt/3rdComponent
wget http://www./centos_Python-3.7.3.tar.gz
tar xvzf centos_Python-3.7.3.tar.gz

环境变量:

export PATH=/opt/3rdComponent/Python-3.7.3/bin:$PATH

PyPi 源配置

Hyper-V 启动报错

PowerShell 中执行 Get-Service "vm[cm]*" ,看看 vmcompute 和 vmms 两个服务是不是都处于 Running 状态。

vmms 未启动

管理员权限执行:

sc config vmms start=auto  
sc start vmms 

参考

sudo: java: command not found解决办法

  • Ubuntu终端提示sudo: java: command not found解决办法

Visual Studio Code is unable to watch for file changes in this large workspace

cat /proc/sys/fs/inotify/max_user_watches

编辑 /etc/sysctl.conf 末尾添加:

fs.inotify.max_user_watches=524288

最后重启:sudo sysctl -p

Visual Studio Code is unable to watch for file changes in this large workspace

公众号-二维码-截图

你可能感兴趣的:(利用 Windows Hyper-V 创建 Linux 虚拟机,打造个人开发环境)