Nur*_*nar 26 ftp connection debian google-compute-engine
我ssh'ed到我的计算引擎的VM,并希望从那里ftp到另一台服务器.它询问了我的用户名和密码,我可以毫无问题地登录.但是当我做ls或者get,我收到此错误:
500 I won't open a connection to 10.240.XX.XX (only to XX.XX.XX.XX)
ftp: bind: Address already in use
Run Code Online (Sandbox Code Playgroud)
10.240.XX.XX是我在ifconfig结果中看到的内部IP地址.
如何使用FTP从其他服务器传输文件?系统:Debian7
Mar*_*ryl 58
您正在使用FTP的活动模式连接到运行Pure-FTPd的服务器.在活动模式下,服务器必须连接回客户端以打开数据传输连接(用于文件传输或目录列表).为此,客户端在PORT命令中将其IP地址发送到FTP服务器.
如果FTP服务器位于GCE专用网络之外,它显然无法连接回客户端计算机,因为该计算机位于防火墙和NAT之后.
实际上,Pure-FTPd明确检查PORT命令中的IP地址是否与FTP控制连接的客户端IP地址匹配.如果客户端在GCE网络内发送其内部IP地址,则不匹配.如果是这种情况,Pure-FTPd服务器完全拒绝传输(甚至没有尝试连接)错误消息,您将获得:
我不打开与...的连接(仅限于......)
(其中第一个...是客户端在PORT命令中提供的IP地址[GCE专用网络内的本地地址],第二个...是客户端的外部[NATed] IP地址,如服务器所知).
即使客户端在PORT命令中报告了外部[NATed]地址,它仍然无法工作,因为连接尝试不会通过NAT和防火墙.
因此,存在被动FTP模式,其中客户端连接到服务器以打开数据传输连接.实际上,现在没有人使用主动模式.
所以,切换到被动模式.如何做到这一点是客户特定的.
在大多数常见的*nix ftp命令行客户端中,使用-p命令行开关,但默认情况下默认使用被动模式:
-p使用被动模式进行数据传输.允许在防火墙阻止来自外部世界的连接回到客户端计算机的环境中使用ftp.要求ftp服务器支持PASV命令.由于使用PORT传输模式的安全问题,这是所有客户端(ftp和pftp)的默认设置.该标志仅用于兼容性,不再有效.
有些客户也支持passive命令.
小智 26
使用被动模式启用FTP,如果已经连接,请输入
ftp> passive
Passive mode on.
Run Code Online (Sandbox Code Playgroud)
您当前正在被动模式下使用FTP.
| 归档时间: |
|
| 查看次数: |
42732 次 |
| 最近记录: |