利用 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

參考:

YUM 源配置

YUM 源的配置

常用 RPM 包

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

Git 配置

ssh-keygen -t rsa -C "649168982@qq.com"
git config --global user.email "649168982@qq.com"
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@<IP>

在 VM 中執行 systemctl restart sshd

為了在本機上可以方便登錄,可以給 Host 取個別名,在 Windows 機器上的 C:\Users\<user>\.ssh 目錄下,添加一個 config 文件,增加如下內容:

Host vm
    HostName <IP>
    User root
    Port 22
    IdentityFile C:\Users\<user>\.ssh\id_rsa

ssh vm 即可免密登錄到遠端虛機上

網絡設置

交換機設備配置好之后,需要連接外網,那么還需要配置 proxy,為了省事,因為這個虛機就在自己本地,並不會其他共享,直接用賬號的方式配置即可。編輯 ~/.zshrc 添加如下:

export http_proxy="http://<user>:<passwd>*@proxy.michael.com:8080/"
export https_proxy="http://<user>:<passwd>*@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解決辦法

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

公眾號-二維碼-截圖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM