暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Windows上安装VirtualBox运行Ubuntu Server及SSH登录

我是萤火虫 2021-02-02
1082

作者:南风


    自己有一台装有Windows 10的台式机,本来想直接安装一个独立Ubuntu Server作为第二启动系统来运行一些projects,但是有时候还要用到Windows上面的东西,不想来回互换。由于对Linux的青睐,加上自己差不多一年前指导过别人在Windows上安装VirtualBox并安装Ubuntu 18.04 Desktop,于是决定在Windows上运行Ubuntu Server。当然,重要的是设置ssh登录,包括在本地host machine上,以及外网的其他机器上来ssh连接。


    系统说明:

  1. Windows 10 Desktop (host machine)

  2. Ubuntu Server 20.04 LTS (Focal Fossa): 64-bit PC(AMD64) Server

  3. 用于测试SSH connection的其他machine,这里用的是一台Macbook。


    1. 安装 VirtualBox


     这个安装没有太多特别的,这里我选的是VirtualBox 6.1.16, 可以在其网站上下载:https://www.virtualbox.org/wiki/Downloads


    由于我的host machine是Windows 10, 这里选Windows hosts的安装文件。


    下载安装后,可以考虑也安装VM VirtualBox Extension, 6.1.16 Oracle VM VirtualBox Extension PackAll supported platforms,  这个在上面的网站上也可以下载。


    2. 下载Ubuntu server


  这里我选的是Ubuntu Server 20.04 LTS, 可以从其网站上下载:https://releases.ubuntu.com/20.04/


    注意选择的是64-bit PC (AMD64) server install image


    3. 在VirtualBox上安装Ubuntu server


    3.1. 运行VirtualBox,点击New,创建Virtual Machine。这里Name可以随意,如果包含Ubuntu, Type和Version一般会自动识别。如没有,可以手动填写。如下图:


 

      3.2. 接下来就是配置Memery SizeHard Disk,可根据自己的需求来设置,比较直接。附上一些截图:     


    3.3. machine做些设置: 创建完成后,在VM VirtualBox Manager窗口的左侧就可以看到这个machine了。目前,系统并没有安装。打开Settings,由于选择的是镜像文件安装, 在System->Motherboard->Boot Order那,选择Optical, 并确保它在第一位。如下图:



然后到Storage->Controller: IDE: 选择镜像光盘,这里一开始是Empty,选中后在Attributes 点击光盘符号然后选中下载到Ubuntu server镜像文件,之后会看到信息在Information那里显示。 



    这里同时也可以对Network->Adapter 1/2做些设置。这里我们选择两个,一个Adapter Attached to: NAT, 另一个Adapter Attached to: Host-only Adapter。之所以选择两个,是因为我们想ssh方便的连接。如下图:


 这里有一些插曲,如果发现不能点击OK,提示关于“Hardware Virtualization”的设置没有正确。这在使用VirtualBox时是比较常见的,解决也非常容易,基本上就是重启host machine,进入bios,找到system configuration并enable这里的Virtualization。具体如果操作,各种PC也是大同小异,这里不作说明。


    3.4. Machine的设置完成之后,我们就可以运行安装了。这里有另外一个插曲,如果遇到错误提示“failed to open a session for the virtual machine”,需要在windows 10以管理员运行CMD命令行,并执行命令“bcdedit set hypervisorlaunchtype off”。这个也是一个常见的问题,比较容易解决。之后重新启动运行安装就可以。



    运行安装后,会出现一些常见的窗口,比如,选择语言,输入方式等,这些都可以通过上下键和Enter来选择。这里为了节省时间,建议安装中不先更新,记得安装OpenSSH Server,其他的可以按照默认的。记住自己的用户名和密码。这里附上一些图片:


    

    安装完成后,会reboot,这里为了节省时间,在未更新完也可以选“Cancel update and reboot”.这里要说明一下,需要回到Settings->System->Mortherboard->Boot Order, 选中Hard Dist并把它放在第一位,Optical可以不选。这样reboot后就进入新装的系统,不然,又进入安装界面。



    4. 设置SSH连接 


     运行新安装的Ubuntu server,用户名和密码登录。这样我们就完成了系统部分安装。接下来设置SSH连接。


     4.1. 建议安装net-tools,ifupdown,方便查询ip和设置network

    

    sudo apt install net-tools; 

    sudo apt install ifupdown。


     4.2.ufw进行防火墙设置:查看状态:


     sudo ufw status;  

   

     运行:

    

     sudo ufw enable; 


     运行ssh: 


     sudo ufw allow ssh; 


     类似可以allow http,https;再次查看状态,就可以看到相关的信息及对应的Port。 


     4.3.  编辑/etc/ssh/ssd_config, 找到# Port 22,取消注释,即# Port 22 —> Port 22。22为默认的Port,也可以自己设置。这里选择默认的。


     4.4. 运行ip addr 或者ifconfig来查看ip地址。这里会注意到enp0s8,enp0s3, lo的信息。由于考虑外网的ssh,在开始的时候设置了Adapter 1 attached to NAT。这里记下相关的ip,比如:enp0s8: inet 192.168.68.108。


     4.5. 设置Port Forwarding:现在回到Setting->Network->Adapter 1->Advanced-> Port Forwarding,来设置Virtual machine的Port Forwarding。之所以设置Port,就是保证在通信中转中,确保不会迷失。这里的Guest Port,对应的是Ubuntu server,要跟4.3.中的port一致。如下图。这里的Host Port对应的是Windows 10。如果后面设置外网ssh连接,这里要对应相应的router的Port forwarding设置,这个后面会提到。如果只是本地的ssh,比如,在windows 10上,ssh 到 ubuntu server,这里的port forwarding可以不需要,因为默认的是Guest Port就是22。在window 10,打开cmd窗口,运行ssh <username>@<ip address>就可以。比如,

        

        ssh test@192.168.68.108;

    
        根据提示,输入密码就可以登录。 

 


      4.6. 现在考虑如何通过其他的PC,来ssh连接到Ubuntu server。这里用macbook来测试的。需要对router设置Port forwarding。这里说明一下,对于一个router,它可以提供相应的ip给家用或者办公室用的各个设备。这些IP 都是局内的,不能在外网直接访问。router本身有IP address,用于被外网识别。如果想通过ssh连接到ubuntu server,这里需要对router做port forwarding。其大概概念如下:


    PC (outside) —>Router Port—> Windows 10 Port —> Ubuntu server Port


    Router Port Forwarding设置,根据不同路由器各有不同,基本原则是一致的。比如,Router IP为1.2.3.4, 设置port为2023,windows 10 IP为5.6.7.8,设置Port为2025,ubuntu server Port为22。这里要确保设置router 时的Port 2025,对应于在ubuntu server设置的Host Port 2025一致。一旦设置成功,便可以在macbook上打开terminal,连接到ubuntu server。运行 ssh -p <port> <username>@<IP>, 比如:ssh -p 2023 test@1.2.3.4。测试成功后,也可以运行scp来传输文件,比如:


scp -P 2023 test@1.2.3.4:/home/test/test.txt 




编辑:Stargazer,岳杨


声明:萤火虫是一个非盈利网站,旨在为作者提供作品发表平台。作品版权属于原作者,且不代表萤火虫观点。如果您发现任何文字/图片/资源侵犯了您的权益,请与我们联系,我们将联系原作者处理。


点击原文链接了解我们。

文章转载自我是萤火虫,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论