通过外部访问配置Vagrant和pureftpd

通过外部访问配置Vagrant和pureftpd,ftp,vagrant,Ftp,Vagrant,我正试图用pureftpd设置一个流浪VM(UbuntuLucid64),我想从主机访问它 Vagrant::Config.run do | Config| config.vm.define:my_vm do | conf| conf.vm.host\u name=“my\u vm” conf.vm.network:hostonly,“192.168.187.2” conf.vm.forward_端口22,18722 conf.vm.forward_端口212121 conf.vm.forwar

我正试图用pureftpd设置一个流浪VM(UbuntuLucid64),我想从主机访问它

Vagrant::Config.run do | Config|
config.vm.define:my_vm do | conf|
conf.vm.host\u name=“my\u vm”
conf.vm.network:hostonly,“192.168.187.2”
conf.vm.forward_端口22,18722
conf.vm.forward_端口212121
conf.vm.forward_端口22,2122
conf.vm.customize[“modifyvm”,:id,“--name”,“my vm”]
conf.vm.box=“lucid64”
conf.vm.boot_mode=:gui
conf.ssh.max_trys=150
#与流浪VM共享项目根目录
conf.vm.share_文件夹(“v-root”,“/vagrant”,File.expand_路径(File.dirname(uu File_u)))
#为root用户设置无密码ssh
conf.vm.provision:shell,:inline=>
“sudo mkdir-p/root/.ssh&&sudo cat/home/vagrant/.ssh/authorized_-keys>>/root/.ssh/authorized_-keys”
结束
#“config.vm.box”框将从中提取的url,如果
#在用户的系统上不存在。
config.vm.box_url=”http://files.vagrantup.com/lucid64.box"
结束
到目前为止,我得到的是流浪者机器工作,pureftpd运行,我可以打开FTP连接。但是,我无法通过FTP上载文件,因为我遇到以下错误:

TYPE A
200 TYPE is now ASCII
PASV
227 Entering Passive Mode (10,0,2,15,156,170)
[Replacing site local address 10.0.2.15 with 127.0.0.1]
TYPE I
200 TYPE is now 8-bit binary
PASV
227 Entering Passive Mode (10,0,2,15,156,96)
[Replacing site local address 10.0.2.15 with 127.0.0.1]
NOOP
200 Zzz...
SITE CHMOD 644 /one/two_days_initial.xml
550 Could not change perms on /one/two_days_initial.xml
QUIT
221-Goodbye. You uploaded 0 and downloaded 0 kbytes.
221 Logout.
在阅读了一些关于FTP的内容后,我了解到我需要转发2个端口以允许FTP会话传输数据,但我的尝试(在我的vagrant文件中)不起作用

我已经仔细检查了FTP用户登录是否对我试图上载文件的目录具有读/写权限,但仍然收到提到的错误


是否有人配置了Vagrant和FTP服务器(pureftp或其他),以便它可以接受FTP连接?

我不太理解这个用例。如果要同步文件,为什么不使用virtualbox内置的共享文件夹或
nfs
。即使是
sshfs
也比FTP工作得更好。如果你真的喜欢FTP,最好使用桥接模式而不是默认NAT。一个示例用例是,你想在做任何事情之前先模拟FTP服务器。正如@knowledge\u所说,在vagrant中使用FTP服务器的原因是在部署之前在VM测试环境中测试一些FTP服务器设置。我认为这可能与文件系统(来宾/主机)有关。您是否尝试将PureFTPd指向内部FS(=不是NFS)?您的FTP根目录当前在哪里?