篇一 :FTP,SFTP,FTPS总结

FTP,SFTP,FTPS总结

FTP应用分FTP,SFTP,FTPS,其中最常见的是FTP,也是下面将重点讨论的情形;SFTP即Secure File Transfer Protocol,是SSH协议一个子协议,不区分控制和数据端口;FTPS即“FTP-over-SSL”, 是在安全套接层使用标准的FTP协议和指令的一种增强型协议(类似https),也没有控制和数据端口的区分;所以SFTP和FTPS完全不同于普通的FTP应用(控制和数据用不同的连接),可以SFTP和FTPS的访问需求等同于普通的TCP应用处理。

主动FTP

主动方式的FTP是这样的:客户端从一个任意的非特权端口N(N>;1024)连接到FTP服务器的命令端口,也就是21端口。然后客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。接着服务器会从它自己的数据端口(20)连接到客户端指定的数据端口(N+1)。 针对FTP服务器前面的防火墙来说,必须允许以下通讯才能支持主动方式FTP:

1.

2.

3.

4. 任何端口到FTP服务器的21端口 (客户端初始化的连接 S<-C) FTP服务器的21端口到大于1023的端口(服务器响应客户端的控制端口 S->C) FTP服务器的20端口到大于1023的端口(服务器端初始化数据连接到客户端的数据端口 S->C) 大于1023端口到FTP服务器的20端口(客户端发送ACK响应到服务器的数据端口 S<-C)

连接过程大概是下图的样子(没有严格按TCP三次握手画):

在第1步中,客户端的命令端口与FTP服务器的命令端口建立连接,并发送命令“PORT 1027”。然后在第2步中,FTP服务器给客户端的命令端口返回一个"ACK"。在第3步中,FTP服务器发起一个从它自己的数据端口(20)到客户端先前指定的数据端口(1027)的连接,最后客户端在第4步中给服务器端返回一个"ACK"。

…… …… 余下全文

篇二 :Sftp和Ftp区别

1、FTP架构

如同其他的很多通讯协议,FTP通讯协议也采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,上传或下载文件。

2、FTP通讯端口知识

FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:

控制链路--------TCP端口21

控制器端。用于发送指令给服务器以及等待服务器响应。所有你发往FTP服务器的命令和服务器反馈的指令都是通过服务器上的21端口传送的。

数据链路--------TCP端口20

数据传输端口。用来建立数据传输通道的。主要用来从客户向服务器发送一个文件、从服务器向客户发送一个文件、从服务器向客户发送文件或目录列表。数据链路主要是用来传送数据的,比如客户端上传、下载内容,以及列目录显示的内容等。

3、FTP连接的两种方式

在数据链路的建立上,FTP Server 为了适应不同的网络环境,支持两种连接模式:主动模式(Port)和被动模式(Pasv)。其实这两种连接模式主要是针对数据链路进行的,和控制链路无关。

主动模式

主动模式是这样工作的:客户端把自己的高位端口和服务器端口21建立控制链路。所有的控制命令比如Is或get都是通过这条链路传送的。当客户端需要服务器端给它传送数据时,客户端会发消息给服务器端,告诉自己的位置和打开的高位端口(一般大于1024的端口都就叫高位端口),等候服务器的20端口和客户端打开的端口进行连接,从而进行数据的传输。当服务器端收到信息后,就会和客户端打开的端口连接,这样数据链路就建立起来了。采用主动模式连接服务器的客户端,当它位于NAT或者防火墙的保护之后时会碰到连接失败的问题。这是因为当防火墙接到服务器发送过来的信息的时候,并不知道应该发送给内部网络中的哪一台客户端造成的。

…… …… 余下全文

篇三 :sftp-ftp区别工作原理

Sftp和ftp 区别、工作原理等

1.Sftp和ftp over ssh2的区别

2.

3.

4.FTP文件传输协议工作原理

1.浅析文件传输协议 ftp 的工作原理

最近使用SecureFx,涉及了两个不同的安全文件传输协议:

-sftp

-ftp over SSH2

这两种协议是不同的。sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。ftp over SSH2则象一个二传手。

1、SFTP的工作模式:

图1显示了SFTP的工作模式,它是作为SSH2的一个子服务工作的。

图 1 SFTP工作模式

2、FTP over SSH2

此协议还是基于ftp协议的。在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。

FTP over SSH2有两种情况,半安全连接(Less Secure Connection)和安全连接(Full Secure Connection)。在半安全连接时,ftp客户端先和SSH2服务器连接,在这个连接中无论控制通道和数据通道都是加密的。但是SSH2服务器和 ftp服务器之间就不是加密的了,如果ftp服务器运行在另外一台机器上,SSH2服务器和ftp直接就是明文传输。见图2。

 

图 2半安全连接

图3是安全连接模式的情形,SSH2服务器和FTP服务器在同一台服务器上。

 

图 3 安全连接

 

 

FTP(文件传输协议)工作原理

目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件。

1FTP架构

          如同其他的很多通讯协议,FTP通讯协议也采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。

…… …… 余下全文

篇四 :Sftp和ftp over ssh2的区别

Sftp和ftp over ssh2的区别 最近使用SecureFx,涉及了两个不同的安全文件传输协议:

-sftp

-ftp over SSH2

这两种协议是不同的。sftp是ssh内含的协议,只要sshd服务器启动了,它就可用,它本身不需要ftp服务器启动。ftp over SSH2则象一个二传手。

1、SFTP的工作模式:

图1显示了SFTP的工作模式,它是作为SSH2的一个子服务工作的。

图 1 SFTP工作模式

2、FTP over SSH2

此协议还是基于ftp协议的。在此协议中SSH2服务器起了一个桥梁作用,把数据在客户端和ftp之间转发。ftp协议本身包括两个通道,一个是控制通道,另一个是数据通道。 FTP over SSH2有两种情况,半安全连接(Less Secure Connection)和安全连接(Full Secure Connection)。在半安全连接时,ftp客户端先和SSH2服务器连接,在这个连接中无论控制通道和数据通道都是加密的。但是SSH2服务器和 ftp服务器之间就不是加密的了,如果ftp服务器运行在另外一台机器上,SSH2服务器和ftp直接就是明文传输。见图2。

图 2半安全连接

图3是安全连接模式的情形,SSH2服务器和FTP服务器在同一台服务器上。 1

Sftp和ftpoverssh2的区别

Sftp和ftpoverssh2的区别

图 3 安全连接

FTP(文件传输协议)工作原理

目前在网络上,如果你想把文件和其他人共享。最方便的办法莫过于将文件放FTP服务器上,然后其他人通过FTP客户端程序来下载所需要的文件。

1、FTP架构

如同其他的很多通讯协议,FTP通讯协议也采用客户机 / 服务器(Client / Server )架构。用户可以通过各种不同的FTP客户端程序,借助FTP协议,来连接FTP服务器,以上传或者下载文件。

2、FTP通讯端口知识

FTP服务器和客户端要进行文件传输,就需要通过端口来进行。FTP协议需要的端口一般包括两种:

…… …… 余下全文

篇五 :Linux命令之sftp

Linux命令之sftp

本文链接:/blog/985744 (转载请注明出处)

用途说明

sftp命令可以通过ssh来上传和下载文件,是常用的文件传输工具,它的使用方式与ftp类似,但它使用ssh作为底层传输协议,所以安全性比ftp要好得多。

常用方式

格式:sftp <host>

通过sftp连接<host>,端口为默认的22,用户为Linux当前登录用户。

格式:sftp -oPort=<port> <host>

通过sftp连接<host>,指定端口<port>,用户为Linux当前登录用户。

格式:sftp <user>@<host>

通过sftp连接<host>,端口为默认的22,指定用户<user>。

格式:sftp -oPort=<port> <user>@<host>

通过sftp连接<host>,端口为<port>,用户为<user>。

sftp连接成功之后常用操作命令如下:

help/? 打印帮助信息。

pwd 查看远程服务器当前目录;

lpwd 查看本地系统的当前目录。

cd <dir> 将远程服务器的当前目录更改为<dir>;

lcd <dir> 将本地系统的当前目录更改为<dir>。

ls 显示远程服务器上当前目录的文件名;

ls -l 显示远程服务器上当前目录的文件详细列表;

ls <pattern> 显示远程服务器上符合指定模式<pattern>的文件名;

ls -l <pattern> 显示远程服务器上符合指定模式<pattern>的文件详细列表。

…… …… 余下全文

篇六 :Windows下用sftp打造安全传输

Windows下用sftp打造安全传输

众所周知在Windows系统和Linux类系统的最大区别就在于他的非开源性,因此在Windows下我们传输文件,共享资源主要通过FTP协议来实现,和以前的TFTP协议相比FTP提供了必要的安全保证措施,然而对于一些要求网络安全级别比较高,需要严格防范传输数据被监听工具窃取的情况来说,FTP协议就无法胜任了,这时我们应该寻找更加安全的传输协议来保证服务器的安全。今天笔者就为各位IT168的读者介绍在Windows下如何通过sftp打造安全传输。

一、什么是sftp?

    一般来说两台机器间的文件传输,除了常用的ftp以外,还可以通过scp/sftp协议(就是本文介绍的sftp)进行。下面我们就来看看sftp协议与ftp协议之间的差别。

    (1)和ftp不同的是sftp/scp传输协议默认是采用加密方式来传输数据的,scp/sftp确保传输的一切数据都是加密的。而ftp一般来说允许明文传输,当然现在也有带SSL的加密ftp,有些服务器软件也可以设置成“只允许加密连接”,但是毕竟不是默认设置需要我们手工调整,而且很多用户都会忽略这个设置。

    (2)普通ftp仅使用端口21作为命令传输。由服务器和客户端协商另外一个随机端口来进行数据传送。在pasv模式下,服务器端需要侦听另一个口。假如服务器在路由器或者防火墙后面,端口映射会比较麻烦,因为无法提前知道数据端口编号,无法映射。(现在的ftp服务器大都支持限制数据端口随机取值范围,一定程度上解决这个问题,但仍然要映射21号以及一个数据端口范围,还有些服务器通过UPnP协议与路由器协商动态映射,但比较少见)

    (3)当你的网络中还有一些unix系统的机器时,在它们上面自带了scp等客户端,不用再安装其它软件来实现传输目的。

…… …… 余下全文

篇七 :Linux下使用SFTP命令及FTP命令

Linux下使用SFTP命令摘记:

sftp> help

可用命令:

cd 路径 更改远程目录到“路径”

lcd 路径 更改本地目录到“路径” chgrp group path

chmod mode path

chown owner path

exit

help

get 远程路径

ln existingpath linkpath

ls [选项] [路径]

lls [选项] [路径]

mkdir 路径

lmkdir 路径

mv oldpath newpath

open [用户@]主机[:端口]

put 本地路径

pwd

lpwd

quit

rmdir 路径

lrmdir 路径

rm 路径

lrm 路径

symlink existingpath linkpath

version

将文件“path”的组更改为“group” 将文件“path”的权限更改为“mode” 将文件“path”的属主更改为“owner”退出 sftp 显示这个帮助文本 下载文件 符号链接远程文件 显示远程目录列表 显示本地目录列表 创建远程目录 创建本地目录 移动远程文件 连接到远程主机 上传文件 显示远程工作目录 打印本地工作目录 退出 sftp 移除远程目录 移除本地目录 删除远程文件 删除本地文件 符号链接远程文件 显示协议版本

linux下FTP、SFTP命令详解

FTP> ! 从 ftp 子系统退出到外壳。

FTP> ? 显示 ftp 命令说明。? 与 help 相同。

格式:? [command]

说明:[command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。

FTP> append 使用当前文件类型设置将本地文件附加到远程计算机上的文件。

…… …… 余下全文

篇八 :sftp文件上传和下载

sftp文件上传和下载

sftp文件上传和下载

下面是java 代码sftp文件上传和下载具体实现

1.连接服务器类

package Test;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import com.jcraft.jsch.Channel;

import com.jcraft.jsch.ChannelSftp;

import com.jcraft.jsch.JSch;

import com.jcraft.jsch.Session;

/*

* @author lixiongjun

*

* 利用JSch包实现创建ChannelSftp通信对象的工具类

* 2015-1-27 上午10:03:21

*/

public class SftpUtil {

private static String ip = null; // ip 主机IP

private static int port = -1; // port 主机ssh2登陆端口,如果取默认值,传-1 private static String user = null; // user 主机登陆用户名

private static String psw = null; // psw 主机登陆密码

private static String servicePath = null; // 服务存储文件路径 private static Properties prop = null; private static Session session = null;

private static Channel channel = null; // 读取配置文件的参数 static { prop = new Properties(); ClassLoader cl = SftpUtil.class.getClassLoader(); InputStream is = cl .getResourceAsStream("Test/Sftp_UpDownload.properties"); try {

…… …… 余下全文