专栏首页逻辑熊猫带你玩Python与虚拟机交互文件的3种方式

与虚拟机交互文件的3种方式

前言

大家好,我是公众号逻辑熊猫带你玩Python的小编LogicPanda,今天的主题是“与虚拟交互文件的3种方法”。

在我们的学习过程中很多人都选择了使用虚拟机安装Linux操作系统或者是以其他目的安装虚拟系统。这样做有很多好处 比如:

  • 相当于直连,远程登录比较快
  • 可利用Windows的网络直接上网
  • 不影响电脑的正常使用
  • 胡乱搞事情不怕事大

但是,使用虚拟机也存在一些问题,比如,文件的交互。如何把本地的文件送到虚拟机里面?如何把虚拟机里面的东西送到本地?有时候希望调试自己的跨平台代码,或者是下载好的安装包想要送到虚拟机里面该怎么办?

这里呢,小编指出三种利用虚拟机传输文件的方法:

  1. 使用FTP协议
  2. 使用磁盘工具
  3. 使用SMB协议(重点)

使用FTP协议

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。"下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

使用FTP协议,需要安装FTP客户端。比如Xftp,FileZilla

也可使用Xshell、MobaXterm等软件的FTP功能。

一般从镜像安装好Linux操作系统,ftp服务是配置好的。如果没有可以使用如下方法配置:

安装vsftpd服务器

sudo apt-get install vsftpd

配置vsftpd.conf文件

sudo vi /etc/vsftpd.conf

需要修改的内容如下:

  1. anonymous_enable = NO # 不允许用户匿名登录
  2. local_root = /home/username/ftp # 置顶ftp上传和下载目录
  3. local_enable = YES # 允许本机登录
  4. chroot_list_enable = YES chroot_list_file = /etc/vsftpd.chroot_list # 允许vsftpd.chroot_list中的用户登录服务器
  5. write_enable = YES # 允许上传文件到服务器
  6. sudo vim /etc/vsftpd.chroot_list # 建立文件添加用户
  7. 将/home/username/ftp减去w权限,即文件夹的拥有者不能拥有写全向
  8. 在/home/username/ftp中建立一个share文件夹
  9. sudo /etc/init.d/vsfftpd restart # 重启服务,使配置生效

PS:SFTP协议

FTP是一种文件传输协议,一般是为了方便数据共享的。包括一个FTP服务器和多个FTP客户端。FTP客户端通过FTP协议在服务器上下载资源。而SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低(不过现实使用当中,没有发现多大差别)。

使用磁盘工具

比如:DiskGenius,Ext2IFS等工具。

使用DiskGenius需要在虚拟机关机状态下使用。使用方法是:

  • 打开软件
  • 硬盘-->打开虚拟硬盘文件 如:G:\VMwareSys\U16\Ubuntu16.04.vmdk
  • 打开之后,可以复制文件进去出来了。
  • Win10上打开Linux系统虚拟硬盘有些问题。可能需要配置bios。
  • win10上打开windows系统的虚拟硬盘没问题。

SMB协议

SMB(Server Message Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。

SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API)。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(Common Internet File System),并且加入了许多新的特色。

首先在需要在虚拟机上安装samba软件。

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

PS:演示环境为DeepinLinux!

sudo apt-get install smaba smaba-common

创建一个用来交互的目录,比如我:/home/lzc/share

将目录的权限改为777

sudo chmod 777 /home/lzc/share

然后修改samba的配置文件:

sudo vim /etc/samab/smb.conf

在末尾添加如下几行:

[share]
    path = /home/lzc/share # 请用绝对路径
    available = yes
    browsable = yes
    # public = yes # 不需要密码
    writable = yes

给smaba创建账户:

sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a username

重启samba让配置生效:

sudo /etc/init.d/smbd restart

在win下如何访问?

打开资源管理器,在地址栏输入虚拟机的“\\”+IP地址,输入账号密码即可,如果不想费事 ,那就将下面内容中的public打开

[share]
    path = /home/lzc/share # 请用绝对路径
    available = yes
    browsable = yes
    public = yes # 不需要密码
    writable = yes

这个时候,打开资源管理器,然后网络,可以看到多出来了一个虚拟机。

"

本文分享自微信公众号 - 逻辑熊猫带你玩Python(LogicPanda),作者:LogicPanda

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python | “万年历——日期查询”

    这是一个简单小程序,从这个程序说明,对于编程而言,有一定的数学基础是比较重要的,除此之外锻炼逻辑思维能力可以提高编程能力。

    LogicPanda
  • Linux | 像Windows一样,复制移动重命名等操作

    小编在上一篇文章中讲到Linux下的目录操作,一共讲了三个命令,分别是cd、ls、和pwd。但是这里有个问题,既然目录就是文件夹,那么,怎样新建或者删除文件夹,...

    LogicPanda
  • “不可不学是编程,不可不用是git” | git篇

    相信很多初入编程的朋友们或多或少都听说过git的大名,毕竟github这个全球最大同性交友平台不是吹出来的。

    LogicPanda
  • 特朗普“美国AI计划”遭抨击:不如多发10000个人才签证

    今日,艾伦人工智能研究所CEO Oren Etzioni发文,对特朗普的“美国AI计划”表示堪忧,他认为如果不改变现有移民政策,这项计划恐将难以执行。

    新智元
  • 毕啸南专栏 | 对话旷视CEO印奇:AI产业2018年将迎来转折

    作者简介:毕啸南,知名青年学者,量子位专栏作家,《中国AI领袖人物访谈》系列制片人、主持人。点击文末阅读原文,关注量子学园的毕啸南专栏,跟随他一起持续深度对话李...

    量子位
  • 【干货】如何读懂IPO上市招股说明书(实用版)

    最后,你可以知道有哪些机构会经常对这个行业进行监测跟踪,他们发表的数据具有权威性,这些数据也是你进行行业研究的重要积累,前提是你要会读招股说明书。

    辉哥
  • Fedora27替换cuda9.1为cuda9.0

    安装完cuda9.1才发现和tensorflow不兼容…………………… 只好到官网重新下载9.0和对应的cudnn。

    刘开心_1266679
  • C语言入坑指南-整型的隐式转换与溢出

    我们知道整型有无符号数和有符号数之分。如果我们对无符号数和有符号数处理不当,就可能造成难以预测的结果,尤其是在作为循环条件的时候,可能导致死循环。整型之间的运算...

    编程珠玑
  • 每天百万交易的支付系统,生产环境该怎么设置JVM堆内存大小

    前几天我们分享了我们java中的基石JVM的相关内存模型(要想精通java,你必须得知道java的内存模型,不忽悠)以及类加载机制(java类加载机制,再也不怕...

    架构师修炼
  • AI浪潮背后的芯片风云:跌下神坛的英特尔和绝地重生的英伟达

    量子位(QbitAI) | 李林 若朴 编译整理自《经济学人》 ? “我们有好几次几乎就破产了。” 通常创始人不太谈论自己公司濒死的经历,然而Nvidia的老板...

    量子位

扫码关注云+社区

领取腾讯云代金券