本文主要介绍了在win10下通过virtual box安装CentOS 7并启用ssh服务,在win10上通过vscode remote连接进行开发的过程。
安装Virtual Box,可在其官网下载安装,基本按照默认配置即可。 https://www.virtualbox.org/wiki/Downloads
下载CentOS7系统镜像,可在清华的tuan镜像软件站下载,下载地址:https://mirrors.tuna.tsinghua.edu.cn/centos/7.7.1908/isos/x86_64/CentOS-7-x86_64-LiveGNOME-1908.iso
安装后的界面:
选择新建
进行新的虚拟机建立。
VirtualBox VMs
目录,可更换为其他目录Linux
Red Hat(64-bit)
,因为Virtual Box中没有CentOS的选项,而CentOS为Red Hat的开源版所以选择它就行了默认的内存配置为1024MB,可以根据自己的实际内存进行分配,我习惯分1/4实际内存使用。
VDI
即可动态分配
的类型,这样不会一下占用大量的硬盘空间在设置-系统-处理器里可以选择给虚拟机分配的处理器数量,默认为1,可根据自己的实际处理器个数适当分配。
在设置-存储-控制器IDE中选择左侧的添加虚拟光驱-选择磁盘-注册中,选择之前下载的CentOS系统镜像
完成上述配置后,就可以启动系统开始安装了。
选择第一个Start CentOS 7
启动系统,注意:鼠标点击虚拟机窗口会被虚拟机捕获,脱离捕获使用右Ctrl键。
开始的启动界面可以跳过,之后选择桌面的liveinst.desktop
安装系统。
语言选择
推荐使用英语,当然也可以选择汉语。
之后进行时区选择,选择到上海或者你所在的当地时区
接着是分区设置,选择INSTALLATION DESTINATION
后直接选择Done进行自动分区即可。
然后开始安装,进行root密码设置和用户创建,注意:创建用户同时选择添加用户作为管理员。
完成安装后,在管理-退出中选择正常关闭。
接着,在设置-存储-控制器IDE中将之前添加的系统镜像移除即可。
接着,就可以启动系统了。注意,第一次启动系统需要接受一个用户协议。
经过上述操作完成系统安装后,还是有很多问题需要解决,比如系统分辨率,共享剪切板,共享文件夹等。这部分内容主要解决这些问题。
首先,通过Applications-Favorites-Terminal打开CentOS的终端。
CentOS 7的包管理器为yum,我们可以通过它进行软件安装、卸载和更新。
# 更新系统,可能遇到另一个进程占用了yum lock,通过kill把它杀掉即可。sudo yum update# 注意这里的2892更换为你的系统提示的pidsudo kill -9 2892sudo yum update
更新完成后重启系统以便使用新安装的内核,准备安装增强功能。
虚拟机增强程序旨在安装虚拟机操作系统之后安装在虚拟机中。 它们由设备驱动程序和系统应用程序组成,这些设备驱动程序和系统应用程序优化了虚拟机操作系统以提高性能和可用性。
安装增强功能前需要安装以下开发工具和内核头文件与库,打开终端,执行以下命令:
sudo yum install kernel-headers kernel-develsudo yum groups install "Development Tools"
接着通过设备-安装增强功能进行安装
安装后虚拟机就会自动调整分辨率至合适的大小了。
通过设备-共享文件夹进行设置,注意挂载点不能是一个已存在的目录。共享剪切板和拖放也可以通过设备中的选项进行配置。配置后,应该要重启一次才能使用对应的功能。
通过Applications-Favorites-Settings打开设置,在启动的devices-keyborad可以进行快捷键设置。
主要设置三个快捷键,分别为win+e打开主目录,win+d显示桌面以及打开终端的Ctrl+Alt+t。
打开终端快捷键的设置需要通过最下方的加号配置,填写快捷键名称和对应执行的命令:/usr/bin/gnome-terminal
,快捷键为Ctrl+Alt+t。
# 打开终端安装ssh-serversudo yum install openssh-server# 修改sshd配置文件# 修改以下三行,删除前方的#即可#Port 22#AddressFamily any#ListenAddress ::sudo vim /etc/ssh/sshd_config# 启动sshd服务sudo systemctl start sshd# 允许sshd服务开机启动sudo systemctl enable sshd
由于Virtual Box的虚拟机默认是通过NAT进行网络访问的,所以我们无法在实体机中通过网络访问虚拟机,因而要给它添加另一块虚拟网卡进行与实体机的通信,可以参考VirtualBox的四种网络连接方式了解更多内容。
首先关闭虚拟机,之后在设置-网络-网卡2中启用网络连接,选择链接方式为仅主机网络。
启动虚拟机打开终端,使用ifconfig
查看网络信息。
上图中enp0s8
中的ip192.168.11.102
即是我们可以访问的虚拟机ip了。可在win10中打开cmd/powershell, 使用ping 192.168.11.102
检查连接与否。之后可使用其他软件(putty、xshell等)通过上述ip登录到虚拟机系统。
安装vscode,在vscode中安装插件Remote Development
。
之后通过左下角的open a remote window
连接到虚拟机。
选择Remoet-SSH: Connect to Host...
选择Add New SSH Host...
这里输入ssh连接服务器的命令,格式为ssh username@ip
保存连接配置到文件第一个即可。
之后就可以连接虚拟机了。
输入用户密码即可。
打开一个目录,如~/Codes/vscode/c
,新建一个test.c
文件,在vscode中安装C/C++扩展。
#include <stdio.h>int main(int argc, char const *argv[]) { printf("Hello,world\n"); return 0;}
# 在终端中进行编译运行gcc test.c -o test./test