我将VirtualBox
ubuntu 14.04
其用作客户端,我将 ubuntu 命令行版本用作文件主机的服务器。我能够连接 - 验证 - 并使用put $FILE
或从服务器上传/下载文件,get $FILE
但上传/下载过程中失败。显示以下错误消息:对于两者
ftp: bind: Address already in use
有什么方法可以转移VirtualBox
ftp 端口来验证我的测试环境吗?
我已通过以下方式更改服务器端口:
sudo nano /bin/vsftpd.conf
listen_port=2121
如何更改客户端以在指定端口而不是默认端口上进行呼叫?
答案1
嗯,这实际上不算是回复,但是评论太短了……
我认为我对“辅助端口”的解释还不够清楚。Ftp 使用两个端口:
- 命令端口(或者监听端口),默认21。
- 数据端口(默认 20)。
命令端口当然是免费的,这就是为什么您可以连接和验证,并发出获取和放置命令。但是在进行传输时,数据端口上会打开另一个连接,而这个连接会失败。因此,您必须检查(并可能修改)数据端口,而不是命令端口。
由于 ftp 有两种模式,因此问题变得更加困难:
- 使用默认端口的‘被动’模式。
- 端口协商的‘主动’模式。
这就是为什么我强烈建议您尝试以被动模式(这不是默认模式)进行传输。任何 ftp 客户端(如 Filezilla 或 ftp 终端命令)都有此选项。