使用FTP在Windows与Linux虚拟机之间传输文件

2015-05-22 kk 更多博文 » 博客 » GitHub »

原文链接 http://www.kkblog.me/notes/%E4%BD%BF%E7%94%A8FTP%E5%9C%A8Windows%E4%B8%8ELinux%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%B9%8B%E9%97%B4%E4%BC%A0%E8%BE%93%E6%96%87%E4%BB%B6
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


物理主机为 windows 8.1,虚拟机 VirtualBox,里面装的 ubuntu。

windows 建立 ftp server

在 cmd 中输入以下命令,在当前目录建立 FTP 服务,需要先安装 python 及 pyftpdlib 模块(使用Python创建简单的HTTP和FTP服务)。

python -m pyftpdlib -p 21

linux ftp 连接

windows 打开任务管理器,点击性能,可以看到有一个以太网网络连接,点击它,可以看到它是 VirtualBox 建立的虚拟网络,IPv4 地址是 192.168.56.1。

linux 输入命令:

ftp 192.168.56.1
//用户名 anonymous
//密码 无(直接按回车键)

登录成功,ftp 中再输入:

ls
//501 Rejected data connection to foreign address 10.0.2.15:43984.

Google 之后,尝试设置为被动模式FTP的主动模式(PORT Mode)及被动模式(Passive Mode)

linux ftp 中输入命令:

passive
//Passive mode on.
ls
//显示文件列表,

3. 多文件下载和目录下载

使用 wget 下载目录/文件夹linux命令行下的ftp 多文件下载和目录下载

命令格式 wget ftp://IP:PORT/* --ftp-user=xxx --ftp-password=xxx -r 其中 -r 参数必须有,否则下载下来的就一个文件 index.html,-r参数(表示递归下载)就是用来下载目录的。wget命令

linux中输入以下命令,下载所有文件:

wget ftp://192.168.56.1:21/ -r
//将会保存到当前目录下,名称为192.168.56.1的目录中
  • -O(大写O) 表示用新文件名保存
  • -P 表示保存到指定目录下
  • -X 排除某些文件或者文件夹
  • -N 不要重新下载文件除非比本地文件新
  • -nv 关掉冗长模式,但不是安静模式
  • -P –directory-prefix=PREFIX 将文件保存到目录 PREFIX/…

示例:

wget ftp://192.168.56.1/ -r -X "oth","app/static/node_modules" -N -nv -P ..