vsftp服务器在linux下用ftp命令无法下载,windows却可以

你好,这是一个关于linux系统下vsftpd服务的问题,很高兴你能看到这个问题,并有兴趣解答,首先祝你上网愉快!问题描述如下:用正常权限的帐号在linux系统中进行ftp 11.92.0.66方式,login successful.ftp>mget 文件名提示Permission denied但是在windows下可以正常上传下载文件,请问这是服务端或客户端的某个地方设置的问题吗?望解答,谢谢。ok,最后希望大家本着对待问题的严谨态度以及对真正答案的执着追求,请不要提交无关痛痒的答案。由衷感谢。

用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口。ftp是在TCP/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。

在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝到本地机上、把文件从本地机传输到远程系统中。需要注意的是,如果用户没有那个文件的存取权限,就不能从远程系统中获得文件或向远程系统传输文件。

为了使用ftp来传输文件,用户必须知道远程计算机上的合法用户名和口令。这个用户名/口令的组合用来确认ftp 会话,并用来确定用户对要传输的文件可以进行什么样的访问。另外,用户显然需要知道对其进行ftp 会话的计算机的名字或IP地址。

Ftp命令的功能是在本地机和远程机之间传送文件。该命令的一般格式如下:

$ ftp 主机名/IP

其中“主机名/IP”是所要连接的远程机的主机名或IP地址。在命令行中,主机名属于选项,如果指定主机名,ftp将试图与远程机的ftp服务程序进行连接;如果没有指定主机名,ftp将给出提示符,等待用户输入命令:

$ ftp

ftp >

此时在ftp>提示符后面输入open命令加主机名或IP地址,将试图连接指定的主机。

不管使用哪一种方法,如果连接成功,需要在远程机上登录。用户如果在远程机上有帐号,就可以通过ftp使用这一帐号并需要提供口令。在远程机上的用户帐号的读写权限决定该用户在远程机上能下载什么文件和将上载文件放到哪个目录中。

如果没有远程机的专用登录帐号,许多ftp站点设有可以使用的特殊帐号。这个帐号的登录名为anonymous(也称为匿名ftp),当使用这一帐号时,要求输入email地址作为口令。

如果远程系统提供匿名ftp服务,用户使用这项服务可以登录到特殊的,供公开使用的目录。一般专门提供两个目录:pub目录和incoming目录。pub目录包含该站点供公众使用的所有文件,incoming目录存放上载到该站点的文件。

一旦用户使用ftp在远程站点上登录成功,将得到“ftp>”提示符。现在可以自由使用ftp提供的命令,可以用 help命令取得可供使用的命令清单,也可以在 help命令后面指定具体的命令名称,获得这条命令的说明。

最常用的命令有:

ls 列出远程机的当前目录

cd 在远程机上改变工作目录

lcd 在本地机上改变工作目录

ascii 设置文件传输方式为ASCII模式

binary 设置文件传输方式为二进制模式

close 终止当前的ftp会话

hash 每次传输完数据缓冲区中的数据后就显示一个#号

get(mget) 从远程机传送指定文件到本地机

put(mput) 从本地机传送指定文件到远程机

open 连接远程ftp站点

断开与远程机的连接并退出ftp

? 显示本地帮助信息

! 转到Shell中

下面简单将ftp常用命令作一简介。

启动ftp会话

open命令用于打开一个与远程主机的会话。该命令的一般格式是:

open 主机名/IP

如果在ftp 会话期间要与一个以上的站点连接,通常只用不带参数的ftp命令。如果在会话期间只想与一台计算机连接,那么在命令行上指定远程主机名或IP地址作为ftp命令的参数。

终止ftp会话

close、disconnect、和bye命令用于终止与远程机的会话。close和disronnect命令关闭与远程机的连接,但是使用户留在本地计算机的ftp程序中。和bye命令都关闭用户与远程机的连接,然后退出用户机上的ftp 程序。

改变目录

“cd [目录]”命令用于在ftp会话期间改变远程机上的目录,lcd命令改变本地目录,使用户能指定查找或放置本地文件的位置。

远程目录列表

ls命令列出远程目录的内容,就像使用一个交互shell中的ls命令一样。ls命令的一般格式是:

ls [目录] [本地文件]

如果指定了目录作为参数,那么ls就列出该目录的内容。如果给出一个本地文件的名字,那么这个目录列表被放入本地机上您指定的这个文件中。

从远程系统获取文件

get和mget命令用于从远程机上获取文件。get命令的一般格式为:

get 文件名

您还可以给出本地文件名,这个文件名是这个要获取的文件在您的本地机上创建时的文件名。如果您不给出一个本地文件名,那么就使用远程文件原来的名字。

mget命令一次获取多个远程文件。mget命令的一般格式为:

mget 文件名列表

使用用空格分隔的或带通配符的文件名列表来指定要获取的文件,对其中的每个文件都要求用户确认是否传送。

向远程系统发送文件

put和mput命令用于向远程机发送文件。Put命令的一般格式为:

put 文件名

mput命令一次发送多个本地文件,mput命令的一般格式为:

mput 文件名列表

使用用空格分隔的或带通配符的文件名列表来指定要发送的文件。对其中的每个文件都要求用户确认是否发送。

改变文件传输模式

默认情况下,ftp按ASCII模式传输文件,用户也可以指定其他模式。ascii和brinary命令的功能是设置传输的模式。用ASCII模式传输文件对纯文本是非常好的,但为避免对二进制文件的破坏,用户可以以二进制模式传输文件。

检查传输状态

传输大型文件时,可能会发现让ftp提供关于传输情况的反馈信息是非常有用的。hash命令使ftp在每次传输完数据缓冲区中的数据后,就在屏幕上打印一个#字符。本命令在发送和接收文件时都可以使用。

ftp中的本地命令

当您使用ftp时,字符“!”用于向本地机上的命令shell传送一个命令。如果用户处在ftp会话中,需要shell做某些事,就很有用。例如用户要建立一个目录来保存接收到的文件。如果输入!mkdir new_dir,那么Linux就在用户当前的本地目录中创建一个名为new_dir 的目录。

从远程机grunthos下载二进制数据文件的典型对话过程如下:

$ ftp grunthos

Connected to grunthos

220 grunthos ftp server

Name (grunthos:pc): anonymous

33l Guest login ok, send your complete e-mail address as password.

Password:

230 Guest 1ogin ok, access restrictions apply.

Remote system type is UNIX.

ftp > cd pub

250 CWD command successful.

ftp > ls

200 PORT command successful.

l50 opening ASCII mode data connection for /bin/1s.

total ll4

rog1

rog2

226 Transfer comp1ete .

ftp > binary

200 type set to I.

ftp > hash

Hash mark printing on (1024 bytes/hash mark).

ftp > get rog1

200 PORT command successfu1.

150 opening BINARY mode data connection for rogl (l4684 bytes).

# # # # # # # # # # # # #

226 Transfer complete.

14684 bytes received in 0.0473 secs (3e + 02 Kbytes/sec)

ftp >

22l Goodbye.
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-31
请问你在Linux和Windows里连ftp是用的同一个账号么?
1. 我觉得可能是linux里客户端ftp命令有问题,可以试着装个高版本的ftp client看看。
2. Linux中你用的用户名对当前目录没有写权限。
第2个回答  2020-07-30
在lunix上要用InputStream input = ftp.retrieveFileStream(new String(fileName.getBytes("GBK"),"ISO-8859-1"));
重要的是retrieveFileStream这个方法,而且前边要加ftp.enterLocalPassiveMode();

在windows系统上边发的服务要用 ftpClient.retrieveFile(new String(ff.getName().getBytes("GBK"),"ISO-8859-1"), out);
重要的是retrieveFile这个方法,前边不需要加ftp.enterLocalPassiveMode();

具体原因还是不太清除,可能是流的传输方式不同导致。
第3个回答  2013-04-04
我回了不痛不痒的答案了 为任务 哈哈

vsftp服务器在linux下用ftp命令无法下载,windows却可以
用ftp命令进行远程文件传输 ftp命令是标准的文件传输协议的用户接口。ftp是在TCP\/IP网络上的计算机之间传输文件的简单有效的方法。它允许用户传输ASCII文件和二进制文件。在ftp会话过程中,用户可以通过使用ftp客户程序连接到另一台计算机上。从此,用户可以在目录中上下移动、列出目录内容、把文件从远程机拷贝...

linux中配置FTP服务器,WIN系统登录,为何下载不了文件?
一楼的说法是不对的,FTP,只要服务端开了21或23端口就就可以用的,在运行里输入CMD 然后FTP IP地址 就可以用的。你在检查一下FTP的配置文件吧,一般我们用的FTP是VSFTP,但PUREFTP也能用的,有几个配置文件要改成如下,1、通过yast2工具来进行设置,选择Network Services->Network Services(inetd...

linux 建立ftp服务器为什么用wget不能下载文件
wget用法如下:wget ftp:\/\/username:password@127.0.0.1\/filename.zip 如果你按照这个命令无法下载文件,那么先试验一下手工ftp命令下载 安装vsftp后,如果ftp配置不正确、或者Linux防火墙设置不正确,都无法下载文件 建议你先用ftp命令测试一下。

Linux下已经安装了vsftpd软件包,并且vaftpd服务已启动,为什么输入命令...
ftp命令是ftp客户端,vsftp是ftp服务器,两者不是一个概念。你需要安装ftp客户端 yum install ftp 可以自动安装ftp客户端

linux下的 FTP 与windows的FTP 有什么区别
FTP是一种数据传输协议,在RFC959中定义比较完整,任意语言,任意平台,只要按着协议 编写程序就可以得到FTP, 这样就意味着,无论是Windows,Linux,UNIX, Solaris,还是其他什么系统,还是直接裸机,只要实现了RFC959定义的过程,都是FTP。FTP是个C\/S的程序,无论 是哪个系统,只要双方能够正确解析FTP流和...

Linux搭建ftp在windows下这么访问,需要怎么设置
ping不通的话首先看看网卡,linux是虚拟机的话就换成仅主机或是桥接!在linux上做ftp服务,开启服务!把它们换成一个网段,在客户端ctrl+r运行!输入ftp:\/\/ip(服务器的)就可以了!要是匿名登录上传的话需要改配置文件,\/etc\/vsftpd\/vsftpd.conf要记得起服务哦!!!1 ...

cuteftp 连接不上VM上的linux,问了度娘很久很久,还是连不上。
1,host和guest(主机和虚拟机)之间网络首先要通。2,那你直接用windows自带的ftp,命令行下输入 ftp <主机IP>这个能访问吗?3,服务器ftp服务启动了么?比如vsftp:service vsftpd statusvsftpd (pid 2992) is running...看看是不是在running。说不定就没装ftp服务。4,防火墙规则,以及SELINUX ...

如何Windows终端访问Linux vsftp中的乱码?
系统自带和第三方软件使用的编码不同就会导致这样。vsftp 不支持编码识别自动转换。所以两个客户端软件用的不同编码就会让 vsftp 的编码混乱。一般来说 Linux 现在都用 utf-8 一些新版本的 ftp 软件默认也会去转换为 utf-8 进行传输文件名,但 Windows 似乎旧版本还是用本地编码进行 IO。也就是简体...

vsftp下载不成功550 Permission denied
我来回答吧,这个问题应该很少有人会遇到,一般都是上传文件时报错的。下载时报550错误是因为vsftpd.conf文件中或者ftp虚拟用户的配置文件中,写了download_enable=NO参数,所以用户可以进行列表、上传、删除操作,就是不能下载。把这个参数改成download_enable=YES,之后重启vsftpd服务,用户就能下载了。

用centos搭建vsftp服务器,用win7访问ftp服务器,输入ftp地址提示:ftp文 ...
给你访问目录下面的文件夹授权,命令如下:chomd -R 755 文件夹路径 或者chomd -R 777 文件夹路径 如果你安装了SELinux,建议关闭;解决方法:\/\/使用setsebool命令开启 setsebool ftpd_disable_trans 1 或者 setsebool ftp_home_dir 1 \/\/再次查看当前状态是否是on的状态 getsebool -a|grep ftp ftp...

相似回答