在windows下用virtualbox虚拟ubuntu,并通过ssh登录

本文详细介绍如何在Windows系统中使用VirtualBox安装Ubuntu命令行版本,并实现与主机共享网络及通过SSH远程登录等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出于种种原因,最近感觉还是在自己机器上装个linux写程序靠谱些,毕竟总是VPN到公司内网速度也太慢了。 
本文最终实现了:

1.在windows下用virtualbox安装了ubuntu7.04命令行版 
2.ubuntu能够与主机(即windows)共享网络 
3.在windows下可以直接ssh到ubuntu上

遗留问题(详见文末):

1.ubuntu与主机共享文件夹失败 
2.rz/sz命令安装失败

先截图如下(putty中的截图):

putty

OK,我们一步步来说: 
一.VirtualBox安装 
    1.到http://www.virtualbox.org/wiki/Downloads下载windows版本 
    2.一路点击next,出现不兼容提示框,直接继续即可。 
二.Ubuntu安装 
    1.选择安装命令行的版本,安装即可 
    2.设置root密码。ubuntu的root默认居然是不启用的,需要在启动的时候,按ESC进入recovery模式,会自动以root权限登录。然后执行passwd root即可修改密码。 
在前两步做完之后,我们的linux就已经能够正常启动了,并ubuntu默认与主机共享了网络,测试如下:

ping vimer.cn

 ping

ifconfig

ifconfig

三.设置ssh登录(VirtualBox默认的终端页面也太丑了) 
    1.由于默认ubuntu是没有安装ssh server的,所以需要先以root执行:

apt-get install openssh-server

    执行完后,看一下端口监听状况:

    netstat -lpnt

netstat

    2.关闭ubuntu,在windows下,将 C:\Program Files\Oracle\VirtualBox 加入到path中,并执行: 
    VBoxManage modifyvm "u82" --natpf1 "guestssh,tcp,,2222,,22" 
    vboxmanage 修改vm配置 虚拟机名(Ubuntu) nat_port_forwarding(第1个网卡) "端口转发名(guestssh),tcp,宿主机IP(略),宿主机端口2222,虚拟机IP(略),虚拟机端口22" 
    这里的u82是指我的虚拟机的名字,整条命令的意思是在windows是发往localhost:2222的命令,会转发给ubuntu的22端口(22是sshserver的端口)

    在cmd中netstat –a 查看,其中的两条长连接是我的2个终端:

2222 
    参考链接: 
    http://www.felix021.com/blog/read.php?1889 
    http://mydebian.blogdns.org/?p=148 
    3.重新启动ubuntu 
    4.在putty中做如下设置:

putty2 
    5.登录即可进入文章开头的图片。

总体来说效果还是不错的,就是折腾了一下午有点浪费啊,特此记录~~ 
对于还没解决的两个问题,说明如下: 
1.共享文件夹设置失败 
这里第一次安装的时候,是提示no device错误,现在根本就加载不了光盘了,等以后再研究吧。
2.rz/sz命令安装失败 
执行 apt-get install lrzsz 报错:

lrzsz

附设置共享文件夹的几篇文章: 
http://www.javaeye.com/topic/325946 
http://www.linuxidc.com/Linux/2009-01/18147.htm 
http://www.linuxidc.com/Linux/2008-06/13582.htm

----------------------我是无奈的分割线--------------- 
后记: 
又折腾了半天,rz/sz用apt-get update,apt-get upgrade还是安装不上。 
cdrom为空的问题倒是找到了,需要先执行一下:mount /dev/cdrom 
但是最终还是安装不上,所以最终也就放弃了。 
考虑了一个折中的方法,就是用SVN来进行同步,具体点就是google code。 
不过还是出了点问题,就是在svn ci的时候,svn 默认是用我的ubuntu的登录用户名去验证的,结果总是返回错误。后来发现用 svn ci ----username=realname 即可。

----------------欢快的分割线----------------- 
后记2: 
感觉用SVN来同步还是不靠谱,之前一直受限于VirtualBox共享文件夹的概念,总是在想怎么让ubuntu访问到windows的文件夹。但是忽略了一个问题,我们完全可以让windows去访问linux的文件夹! 
由于网络是互通的,所以完全可行,其中一种方法就是samba。但是samba还是要再启动一个服务,太麻烦。再想一下,我们已经实现了ssh的功能,那么其实只需要一个支持可视化登录的终端的就可以啦: 
winscp 
OK,完全解决!截图如下:

1

 Snap3

### 配置 SSH 系统的方法 在 VirtualBox 上安装 Ubuntu 22.04 完成 SSH 系统的配置是一个相对简单的过程,以下是详细的说明: #### 安装 VirtualBox 及创建虚拟机 为了开始此过程,首先需要确保已经正确安装了 VirtualBox按照标准流程创建了一个新的虚拟机用于运行 Ubuntu 22.04 LTS。可以参考相关文档来完成这一步骤[^1]。 #### 下载安装 Ubuntu 22.04 下载最新的 Ubuntu 22.04 ISO 文件,将其挂载至 VirtualBox 创建的虚拟机中作为启动介质。具体步骤可参照提供的资料进行操作[^3]。 #### 设置网络模式为桥接模式 为了让主机与虚拟机之间能够互相通信,在 VirtualBox 的设置界面中将网络适配器更改为 **桥接模式** (Bridged Adapter),从而使得虚拟机能获得独立的 IP 地址与外部网络交互[^2]。 #### 更新软件包索引 进入已安装好的 Ubuntu 系统后,打开终端执行以下命令以更新本地软件包缓存: ```bash sudo apt update && sudo apt upgrade -y ``` #### 安装 OpenSSH Server 接着可以通过 APT 包管理器轻松地安装 `openssh-server` 来启用 SSH 功能: ```bash sudo apt install openssh-server -y ``` 一旦安装完毕,默认情况下该服务会立即启动且随系统引导而自启。 #### 修改防火墙规则允许 SSH 连接 如果 UFW(Uncomplicated Firewall)处于活动状态,则需添加一条新规则开放端口 22 (默认 SSH 使用的端口号),以便其他设备上的客户端程序可以正常访问服务器。 ```bash sudo ufw allow ssh sudo ufw enable ``` #### 测试 SSH 访问 此时可以从另一台计算机尝试通过 SSH 登录到您的 Ubuntu 实例上。假设目标机器拥有静态 IP 地址 `192.168.x.y` ,则可以在 Windows 命令提示符下输入如下指令来进行验证: ```cmd ssh ltmz@192.168.x.y ``` 其中,“ltmz” 是您之前设定的非 root 用户名;替换实际使用的 IP 地址部分即可。 #### 自动化部署 VSCode Remote Development 插件支持 对于开发者而言,还可以进一步扩展环境集成 Visual Studio Code 编辑器实现无缝衔接的工作流体验。详情参见参考资料中的描述。 --- ### 注意事项 在整个过程中可能会遇到各种各样的挑战或者错误消息,请耐心排查问题根源所在。例如确认所有必要的依赖项均已就绪、检查是否存在冲突的服务正在占用相同的端口等等[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值