1. FTP和TCP都会建立连接~他们有什么区别吗
Ftp
将文件传输到运行文件传输协议 (FTP) 服务器服务(如 Internet 信息服务)的计算机,或从这台计算机传输文件。可以通过处理 ASCII 文本文件交互式地或以批处理模式使用 Ftp。
语法
ftp [-v] [-d] [-i] [-n] [-g] [-s:FileName] [-a] [-w:WindowSize] [-A] [Host]
参数
-v
禁止显示 FTP 服务器响应。
/d
启用调试、显示在 FTP 客户端和 FTP 服务器之间传递的所有命令。
-i
传送多个文件时禁用交互提示。
-n
在建立初始连接后禁止自动登录功能。
-g
禁用文件名组合。Glob 允许使用星号 (*) 和问号 (?) 作为本地文件和路径名的通配符字符。详细信息,请参阅 Ftp:Glob。
-s:filename
指定包含 ftp 命令的文本文件。这些命令在启动 ftp 后自动运行。该参数不允许带有空格。使用该参数而不是重定向 (<)。
-a
指定绑定 FTP 数据连接时可以使用任何本地接口。
-w:windowsize
指定传输缓冲的大小。默认窗口大小为 4096 字节。
-A
匿名登录到 FTP 服务器。
Host
指定要连接的计算机名、IP 地址或 FTP 服务器的 IPv6 地址。如果指定了主机名或地址,则其必须是命令行的最后一个参数。
/?
在命令提示符下显示帮助。
注释
ftp 参数的前缀必须使用连接号 (-) 而不是斜线 (/)。
Ftp 命令行参数是区分大小写的。
只有网际协议 (TCP/IP) 已经作为网络适配器属性(在 网络连接)中的组件安装之后,才可使用该命令。
Ftp 可以交互使用。启动 ftp 后,ftp 将创建一个可以在其中使用 ftp 命令的子环境。可以通过键入 quit 命令返回到命令提示符下。当运行 ftp 子环境时,它将由 ftp > 命令提示符表示。
有关 ftp 子命令的详细信息,请参阅“相关主题”。
安装 IPv6 协议后,Ftp 支持使用 IPv6。详细信息,请参阅 IP 版本 6 和 IPv6 应用程序。
范例
要登录到名为 ftp.example.microsoft.com 的 FTP 服务器,请键入下面的命令:
ftp ftp.example.microsoft.com
要匿名登录到名为 ftp.example.microsoft.com 的 FTP 服务器,请键入如下命令:
ftp -A ftp.example.microsoft.com
要登录到名为 ftp.example.microsoft.com 的 FTP 服务器并运行名为 Rsynch.txe 文件中的 ftp 命令,请键入如下命令:
ftp -s:resynch.txt ftp.example.microsoft.com
格式化图例
格式 含义
斜体 用户必须提供的信息
粗体 用户必须像显示的一样准确键入的元素
省略号 (...) 可在命令行中重复多次的参数
在括号 ([]) 之间 可选项目
在大括号 ({}) 之间;将选项用竖线 (|) 隔开。例如:{even|odd} 用户必须从中只选择一个选项的选项组
Courier 字体 代码或程序输出
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TCP/IP
Internet 上得到广泛使用的一组网络协议,用来跨有不同硬件体系结构和不同操作系统的计算机相互连接的网络通讯。TCP/IP 包括计算机如何进行通讯的标准,及用于连接网络和路由选择通信的约定。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这么说我不知你明不明白,所谓ftp是“将文件传输到运行文件传输协议 (FTP) 服务器服务(如 Internet 信息服务)的计算机,或从这台计算机传输文件。”而tcp是“Internet 上得到广泛使用的一组网络协议,用来跨有不同硬件体系结构和不同操作系统的计算机相互连接的网络通讯。”
你可以这样理解,tcp是internet上的协议,而ftp则不一定非要通过internet,比如LAN也可以呀~~~所以说当我们通过internet下载ftp服务器上资源时就必须用到tcp/ip协议了啊~~不知道说明白没有!
2. FTP的常用命令和使用方法
FTP命令是Internet用户使用最频繁的命令之一,不论是在DOS还是UNIX操作系统下使用FTP,都会遇到大量的FTP内部命令。熟悉并灵活应用FTP的内部命令,可以大大方便使用者,并收到事半功倍之效。下面以Win9x的DOS窗口中的FTP命令为例,介绍一下其用法。(本站注:若想在纯DOS下使用FTP命令,则需先加载网络设备如网卡或调制解调器的Packet驱动程序,再使用本站“网络工具”中的Wattcp FTP程序,其用法与下面介绍的类似,详情请见本站的“DOS使用”栏目)
FTP的命令行格式为: ftp -v -d -i -n -g [主机名] ,其中
-v 显示远程服务器的所有响应信息;
-n 限制ftp的自动登录,即不使用;
.n etrc文件;
-d 使用调试方式;
-g 取消全局文件名。
FTP使用的内部命令如下(中括号表示可选项):
1.![cmd[args]:在本地机中执行交互shell,exit回到ftp环境,如:!ls*.zip
2.$ macro-ame[args]: 执行宏定义macro-name。
3.account[password]: 提供登录远程系统成功后访问系统资源所需的补充口令。
4.append local-file[remote-file]:将本地文件追加到远程系统主机,若未指定远程系统文件名,则使用本地文件名。
5.ascii:使用ascii类型传输方式。
6.bell:每个命令执行完毕后计算机响铃一次。
7.bin:使用二进制文件传输方式。
8.bye:退出ftp会话过程。
9.case:在使用mget时,将远程主机文件名中的大写转为小写字母。
10.cd remote-dir:进入远程主机目录。
11.cp:进入远程主机目录的父目录。
12.chmod mode file-name:将远程主机文件file-name的存取方式设置为mode,如:chmod 777 a.out。
13.close:中断与远程服务器的ftp会话(与open对应)。
14.cr:使用asscii方式传输文件时,将回车换行转换为回行。
15.delete remote-file:删除远程主机文件。
16.debug[debug-value]:设置调试方式, 显示发送至远程主机的每条命令,如:deb up 3,若设为0,表示取消debug。
17.dir[remote-dir][local-file]:显示远程主机目录,并将结果存入本地文件local-file。
18.disconnection:同close。
19.form format:将文件传输方式设置为format,缺省为file方式。
20.get remote-file[local-file]: 将远程主机的文件remote-file传至本地硬盘的local-file。
21.glob:设置mdelete,mget,mput的文件名扩展,缺省时不扩展文件名,同命令行的-g参数。
22.hash:每传输1024字节,显示一个hash符号(#)。
23.help[cmd]:显示ftp内部命令cmd的帮助信息,如:help get。
24.idle[seconds]:将远程服务器的休眠计时器设为[seconds]秒。
25.image:设置二进制传输方式(同binary)。
26.lcd[dir]:将本地工作目录切换至dir。
27.ls[remote-dir][local-file]:显示远程目录remote-dir, 并存入本地文件local-file。
28.macdef macro-name:定义一个宏,遇到macdef下的空行时,宏定义结束。
29.mdelete[remote-file]:删除远程主机文件。
30.mdir remote-files local-file:与dir类似,但可指定多个远程文件,如:mdir *.o.*.zipoutfile 。
31.mget remote-files:传输多个远程文件。
32.mkdir dir-name:在远程主机中建一目录。
33.mls remote-file local-file:同nlist,但可指定多个文件名。
34.mode[modename]:将文件传输方式设置为modename, 缺省为stream方式。
35.modtime file-name:显示远程主机文件的最后修改时间。
36.mput local-file:将多个文件传输至远程主机。
37.newer file-name: 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近,则重传该文件。
38.nlist[remote-dir][local-file]:显示远程主机目录的文件清单,并存入本地硬盘的local-file。
39.nmap[inpattern outpattern]:设置文件名映射机制, 使得文件传输时,文件中的某些字符相互转换, 如:nmap $1.$2.$3[$1,$2].[$2,$3],则传输文件a1.a2.a3时,文件名变为a1,a2。 该命令特别适用于远程主机为非UNIX机的情况。
40.ntrans[inchars[outchars]:设置文件名字符的翻译机制,如ntrans1R,则文件名LLL将变为RRR。
41.open host[port]:建立指定ftp服务器连接,可指定连接端口。
42.passive:进入被动传输方式。
43.prompt:设置多个文件传输时的交互提示。
44.proxy ftp-cmd:在次要控制连接中,执行一条ftp命令, 该命令允许连接两个ftp服务器,以在两个服务器间传输文件。第一条ftp命令必须为open,以首先建立两个服务器间的连接。
45.put local-file[remote-file]:将本地文件local-file传送至远程主机。
46.pwd:显示远程主机的当前工作目录。
47.quit:同bye,退出ftp会话。
48.quote arg1,arg2...:将参数逐字发至远程ftp服务器,如:quote syst.
49.recv remote-file[local-file]:同get。
50.reget remote-file[local-file]:类似于get, 但若local-file存在,则从上次传输中断处续传。
51.rhelp[cmd-name]:请求获得远程主机的帮助。
52.rstatus[file-name]:若未指定文件名,则显示远程主机的状态, 否则显示文件状态。
53.rename[from][to]:更改远程主机文件名。
54.reset:清除回答队列。
55.restart marker:从指定的标志marker处,重新开始get或put,如:restart 130。
56.rmdir dir-name:删除远程主机目录。
57.runique:设置文件名唯一性存储,若文件存在,则在原文件后加后缀.1,.2等。
58.send local-file[remote-file]:同put。
59.sendport:设置PORT命令的使用。
60.site arg1,arg2...:将参数作为SITE命令逐字发送至远程ftp主机。
61.size file-name:显示远程主机文件大小,如:site idle 7200。
62.status:显示当前ftp状态。
63.struct[struct-name]:将文件传输结构设置为struct-name, 缺省时使用stream结构。
64.sunique:将远程主机文件名存储设置为唯一(与runique对应)。
65.system:显示远程主机的操作系统类型。
66.tenex:将文件传输类型设置为TENEX机的所需的类型。
67.tick:设置传输时的字节计数器。
68.trace:设置包跟踪。
69.type[type-name]:设置文件传输类型为type-name,缺省为ascii,如:type binary,设置二进制传输方式。
70.umask[newmask]:将远程服务器的缺省umask设置为newmask,如:umask 3
71.user user-name[password][account]:向远程主机表明自己的身份,需要口令时,必须输入口令,如:user anonymous my@email。
72.verbose:同命令行的-v参数,即设置详尽报告方式,ftp 服务器的所有响应都将显示给用户,缺省为on.
73.?[cmd]:同help.
3. Shell 判断FTP上某个路径、文件是否存在
如果FTP上的文件很大,获取文件会很费时。应该可以不用获取直接判断的,下面供借鉴:
#!/bin/bash
server=127.0.0.1#改为你自己的FTP服务器IP
user=root#修改为你自己的FTP登录用户名
password=root#修改为你自己的FTP用户密码
errlog=./err.log#用于记录FTP错误
ftpCheckFile()
{
ftp-n-i$server<<EOF
USER$user
PASS$password
ls$1
bye
EOF
}
rm-f$errlog
ftpCheckFile$1>/dev/null2>$errlog
bytes=`wc-c$errlog|awk'{print$1}'`
if[$bytes-eq0];then
echo"$1-Exist!"
else
echo"$1-Notexist!"
fi
用的时候在脚本名后跟一个参数,就是你要判断的文件名或路径名。
思路:如果文件或路径不存在,FTP中的ls命令会执行错误,从而在错误日志err.log中有记录。
通过解析该错误日志的内容,可以得知文件或目录是否存在。
我这里暂时没有环境试验,所以没法得知错误日志的格式,只能暂且通过判断日志字节大小是否为0来看是否发生了错误,而无法确定具体错误种类。
4. 从linux连接到对方的ftp服务器上通配符问题
Linux系统ftp连不上去建议从以下几个方面进行考虑:
ftp服务是否开启,可以在Linux上面查看ps -aux |grep vsftpd 来查看进程情况,也可以使用status -tanlp |grep 20 ,status -tanlp |grep 21
查看Linux的iptables 是否有20 21号端口允许,然后可以在ftp客户端上面tcping ftp服务端的21号端口,或者使用telnet 21端口。
查看ftp客户端连接报错,检查ftp的配置文件,查看配置文件的问题。权限,selinux,用户授权。Linux下面ftp的问题建议参考:,祝你好运,加油!!!!
5. 如何判断ftp上是否存在某一文件或文件夹
Shell 判断FTP上某个路径、文件是否存在:
#bin/bash
#进入该目录,把文件down在这里
cd /opt/
#某个路径的某个文件变量定义
f1=/file1/file2/filename;
ftp -i -v -n 192.x.x.x <<ok
use ftpuser ftppasswd
binary
get ${f1}
bye
ok
if [ -f /opt/filename ] ;then
echo "the ftp filename exist.";
fi
exit 0
#首先要知道ftp上的路径和文件的名字,如果不知道的话,用通配符也可以,但是路径得知道,总不能全部下载下来吧。。。还有,ftp能登录、用户名、密码应该不会有问题吧,就没判断了。
6. 什么是ftp,有什么作用。
(转载)FTP(File Transfer Protocol)是 Internet 上用来传送文件的协议(文件传输协议)。它是为了我们能够在 Internet 上互相传送文件而制定的的文件传送标准,规定了 Internet 上文件如何传送。也就是说,通过 FTP 协议,我们就可以跟 Internet 上的 FTP 服务器进行文件的上传(Upload)或下载(Download)等动作。
和其他 Internet 应用一样,FTP 也是依赖于客户程序/服务器关系的概念。在 Internet 上有一些网站,它们依照 FTP 协议提供服务,让网友们进行文件的存取,这些网站就是 FTP 服务器。网上的用户要连上 FTP 服务器,就要用到 FPT 的客户端软件,通常 Windows 都有“ftp”命令,这实际就是一个命令行的 FTP 客户程序,另外常用的 FTP 客户程序还有 CuteFTP、Ws_FTP、FTP Explorer等。
要连上 FTP 服务器(即“登陆”),必须要有该 FTP 服务器的帐号。如果是该服务器主机的注册客户,你将会有一个 FTP 登陆帐号和密码,就凭这个帐号密码连上该服务器。但 Internet 上有很大一部分 FTP 服务器被称为“匿名”(Anonymous)FTP 服务器。这类服务器的目的是向公众提供文件拷贝服务,因此,不要求用户事先在该服务器进行登记注册。
Anonymous(匿名文件传输)能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“anonymous”和“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。在具有图形用户界面的 WorldWild Web环境于1995年开始普及以前,匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名PTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息,数据和软件。 人们只要知道特定信息资源的主机地址, 就可以用匿名FTP登录获取所需的信息资料。虽然目前使用WWW环境已取代匿名FTP成为最主要的信息查询方式,但是匿名FTP仍是 Internet上传输分发软件的一种基本方法。
全有网推荐两款比较实用方便的FTP工具:Cutftp【CuteFTP Pro V7.1 Build 06.07.2005.1 官方简体中文包下载地址:http://www4.skycn.com/soft/15789.html】FlashFtp【FlashFXP V3.2.0.1080 汉化版(烈火版)下载地址:http://www4.skycn.com/soft/22415.html】
7. 怎么解决在ftp的mget时使用的通配符区分大小写的问题求解,不剩感激
不允许使用文件名通配符,文件名通配符的意思是说允许在本地文件以及路径名中.数据快的大小是2048字节运行ftp的命令时,trace将显示没个报文的理由。
8. 各位高手ftp如何使用
FTP命令大全
FTP:文件传输协议。先说说他的功能吧,主要就是从运行FTP服务器的计算机传输文件。可以交互使用。这里要注意,只有安装了tcp/ip协议的机器才能使用ftp命令。
命令格式:ftp [-v][-d][-i][-n][-g][-s:filename][-a][-w:windowsize][computer]
说说他们的含义吧。
-v 不显示远程服务器响应
-n 禁止第一次连接的时候自动登陆
-i 在多个文件传输期间关闭交互提示
-d 允许调试、显示客户机和服务器之间传递的全部ftp命令
-g 不允许使用文件名通配符,文件名通配符的意思是说允许在本地文件以及路径名中使用通配字符
-s:filename 指定包含ftp命令的文本文件。在ftp命令启动后将自动运行这些命令。在加的参数里不能有空格。
-a 绑定数据连接时,使用任何的本地端口
-w:windowsize 忽略默认的4096传输缓冲区
computer 指定要连接的远程计算机的ip地址
呵呵,理解了上面的,就说说一些具体的命令,我个人觉得虽然现在工具用起来很方便了,但懂这些命令在很多地方还是很有用的,就像现在nt下的命令提示符
1) ?
说明:显示ftp命令的说明。后面可以加参数,是加需要解释的命令名,不加则显示包含所有命令列表。
2) append
说明:使用当前文件类型设置,将本地文件附加到远程计算机中。大概格式是
append local-file [remote-file] 其中local-file是说指定要添加的本地文件。
remote-file是说指定要将local-file附加到远程计算机文件,要是省了这个,则是使用本地文件名做远程文件名。
3)ascii
说明:默认情况下,将文件传输类型设置为ASCII
4)bell
说明:响玲开关,意思是文件传输完成后是否有玲声提醒。默认是关闭的。
5)binary
说明:将文件传输类型设置为二进制。
6)bye
说明:结束和远程计算机的ftp会话,也就是安全断开,退出ftp.
7)cd
说明:更改远程计算机上的工作目录。如cd data 其中data是要进入的远程计算机的目录。
8)close
说明:结束与远程服务器的ftp会话,并返回命令解释程序。
9)dir
说明:显示远程的文件以及子目录列表。如dir data local-file
其中data是指定要查看列表的目录,没指定的话就是当前目录。local-file是指定要保存列表的本地文件,不指定的话就在屏幕输出。
10)debug
说明:调试开关,打开的时候打印每个发送到远程计算机的命令,命令前有——>
默认情况是关闭的。
11)disconnnect
说明:与远程计算机断开连接,但还保持着ftp命令提示符。
12)get
说明:使用当前文件传输类型,把远程的文件拷贝到本地计算机上。
如get remote-file local-file
remote-file是指定要复制的文件,local-file是指定本地计算机上的文件名,
没有指定的话则个remote-file同名。
13)glob
说明:文件名通配开关
14)hash
说明:转换每个传输数据快的散列标记打印(#).数据快的大小是2048字节。默认情况下是关闭的,
15)help
说明:显示ftp命令的解释,如help commmand 其中command就是你要解释的命令,如果不加command这个参数的话就会显示所有命令的列表
16)!
说明:这个命令差点忘记了:)功能是在本地计算机上运行指定命令。如! command 其中command就是你要运行的命令,如果不加command这个参数的话,则显示本地命令提示, 这时你输入exit命令就能返回到ftp了。
17)lcd
说明:更改本地计算机的本地目录,在默认的时候是启动ftp的目录.这个不要觉得没用啊,在你使用ftp的时候为了传递文件不是常改变本地和远程计算机的目录吗?:)
如lcd [directory] 其中[directory]是指定要进入的本地计算机的目录,如果你不加这个参数,就会显示出本地计算机的工作目录.
18)literal
说明:向远程ftp服务器发送协商参数,报告.
如lireral argument [...] 其中argument是指定要发送给远程服务器的协商参数。
19)ls
说明:显示远程目录的文件和字目录.
如ls remote-directory local-file
其中remote-directory是指要查看的列表的目录,不指定的话显示的是当前工作目录。local-file是指定要保存列表的本地文件.不指定的话是在屏幕上输出.
20)mdelete
说明:删除远程计算机上的文件.如mdelete remote-file ...
remote-file肯定是要删的文件啊,可以删除多个.
21)mdir
说明:显示远程目录的文件和子目录列表,他允许指定多个文件.
如mdir remote-file ... local-file
参数我想大家应该明白什么意思吧?不明白就看看前面的类似命令吧.
22)mget
说明:使用当前文件传输类型将多个远程文件复制到本地计算机.
如mget remote-files ...
其实remote-files可以指定多个,他就是指定要复制到本地计算机的远程文件.
23)mkdir
说明:创建远程目录.
如mkdir directory 这个命令和nt下的命令提示符中的md directory一样,不多说了.
24)mls
说明:显示远程目录的文件和目录简表
如mls remote-file ... local-file
其中remote-file这个参数是必须要加的,’’-’’是使用远程计算机的当前工作目录.
25)mput
说明:使用当前文件传输类型,将本地文件复制到远程计算机.
如mput local-files ...
26)open
说明:连接到指定ftp服务器上,
如open computer port 其中computer一般是远程计算机的ip地址,port不用说就是指定端口了。
27)prompt
说明:转换提示,在多个文件传输的时候,ftp提示可以有选择的检索或保存文件,如果关闭提示,则mget和mput命令传输所有文件,在默认情况下是打开的.
28)put
说明:使用当前文件传输类型将本地文件复制到远程计算机中,
如put local-file remote-file
其中local-file是指定要复制的本地文件,
remote-file是指定要复制的远程计算机上的文件名,不指定的话是和本地计算机上的文件名同名.
29)pwd
说明:显示远程呢感计算机上的当前目录.
30)quit
说明:结束与远程计算机的ftp会话,并退出ftp.
31)quote
说明:向远程ftp服务器发送协议,报告.期待ftp单码应答,这个命令的功能和literal相同.
32)recv
说明:使用当前文件传输类型将远程文件复制到本地计算机,他与get命令作用相同。
33)remotehelp
说明:显示远程命令的帮助.这个命令的用法和help,!一样可以参考他的用法.
34)rename
说明:更改远程计算机上的文件名。
这个命令和nt的命令提示符的ren一样,如rename filename newfilename
35)rmdir
说明:删除远程目录.
这个命令和nt的命令提示符的rm一样,如rmdir directory
36)send
说明:使用当前文件传输类型将本地文件复制到远程计算机.send和put命令的功能一样。
如send local-file remote-file
37)status
说明:显示ftp连接和转换的当前状态
38)trace
说明:转换报文跟踪,运行ftp的命令时,trace将显示没个报文的理由。
39)type
说明:设置或显示文件传输类型.
如type [type-name]
其中type-name 的意思是文件传输的类型,默认是ASCII,没加这个参数就是显示当前的传输类型.
40)user
说明:指定连接到远程计算机的用户.
如user user-name [passwd] [account]
其中user-name不用说都是用来登陆计算机的用户名了,
passwd是指定user-name的密码,不指定的话ftp会提示输入密码。
account是指定用来登陆计算机的帐号,如不指定,ftp会提示输入帐号.
41)verbose
说明:转换冗余模式。这里如果打开,会显示所有ftp响应,文件传输结束的时候会显示传输的效率和统计信息,默认的情况是打开的.
呵呵,命令就介绍这些了,可以自己熟悉一下,其实现在ftp的软件很多,很方便,但你说这些命令没用也是不可能的,就像windows下一样还保留着命令提示符.:)_ 特别有些时候ftp软件很多地方做不到的,.? 什么地方。
打个比方,我看过一种觅名ftp用户得到admin的入侵列子,就的用到他.呵呵,这里不多说了,就写到这里了。