FTP服务器搭建及操作(一)

搭建方法参照(windows):http://www.cnblogs.com/lidan/archive/2012/06/04/2535103.html

打开浏览器,输入你的IP,ftp://xxx.xxx.xxx.xxx。自己的FTP搭建成功!

FTP 是一种数据传输协议 (File Transfer Protocol),它的连接模式有两种: 主动模式( active )和被动模式( passive )。

以下说明FTP的连接是怎样建立的:

1. 在 active 模式下 (一般预设的模式):

FTP client 开启一个随机选择的TCP port 呼叫 FTP server 的 port 21请求建立连接。当完成 Three-Way Handshake 之后,连接就成功建立,但这仅是命令通道的建立。
当两端需要传送数据资料的时候,client 透过命令通道用一个 port command 告诉 server ,client可以用另一个TCP port 做数据通道。
然后 server 用 port 20 和刚才client 所告知的 TCP port 建立数据连接。注意:连接方向是从server 到 client 的,TCP 分组中会有一个 SYN flag。
然后 client 会返回一个带 ACK flag的确认分组,并完成另一次的 Three-Way Handshake 过程。这时候,数据连接才能成功建立。开始数据传送。

2. 在 passive 模式下:

FTP client 开启一个随机选择的TCP port 呼叫 FTP server 的 port 21请求建立连接,完成命令通道的建立。

当两端需要传送数据的时候,client 通过命令通道发送一个 PASV command 给server,要求进入 passive 传输模式。
然后 server 像上述的正常模式之第 2 步骤那样,挑一个TCP port ,并用命令通道告诉 client。
然后 client 用另一个TCP port 呼叫刚才 server 告知的 TCP port 来建立数据通道。此时分组中带有 SYN flag。
server 确认后回送一个 ACK 分组。并完成所有握手过程、成功建立数据通道。
开始数据传送。 在实际使用中, active mode 用来登入一些架设在主机上没有安装防火墙的 FTP server,或是架设在 client side 的 FTP server! Passive mode (简称 PASV)用来登陆一些架设于防火墙保护下而又是开设于主机上的 FTP server!

ftp_pasv — 返回当前 FTP 被动模式是否打开

PHP操作实例
<?php$ftp_server = "192.168.0.100";//"ftp.sun.com"
$ftp_user_name = "Admin";
$ftp_user_pass = "123456";
$source_file = 'test.txt';
//$destination_file = 'test/readme.txt' ;
$destination_file = 'readme.txt' ;// set up basic connection
$conn_id  =  ftp_connect ( $ftp_server,21 );// login with username and password
$login_result  =  ftp_login ( $conn_id ,  $ftp_user_name ,  $ftp_user_pass );//被动模式打开 or 关闭
$pasv = ftp_pasv($conn_id,true );
print_r( "被动模式结果 ".$pasv." \r\n" );//获取远端系统类型
if ( $type  =  ftp_systype ( $conn_id )) {echo  " powered by  $type \n" ;
} else {echo  "Couldn't get the systype" ;
}// check connection
if ((! $conn_id ) || (! $login_result )) {echo  "FTP connection has failed!" ;echo  "Attempted to connect to  $ftp_server  for user  $ftp_user_name " ;exit;
} else {echo  "Connected to  $ftp_server , for user  $ftp_user_name \r\n" ;
}//为要上传到 FTP 服务器的文件分配空间。
ftp_alloc($conn_id,"160",$response);
echo $response."\r\n";//将当前目录改为目标文件
echo "当前目录更改 ".ftp_chdir ( $conn_id ,  "test" )."\r\n";//删除服务端文件
if (ftp_size($conn_id,$destination_file)){echo "找到目录了\r\n";echo "删除文件 ".ftp_delete($conn_id,$destination_file)."\r\n";
}// upload the file
$upload  =  ftp_put ( $conn_id ,  $destination_file ,  $source_file ,  FTP_ASCII  );// check upload status
if (! $upload ) {echo  "FTP upload has failed!" ;
} else {echo  "Uploaded  $source_file  to  $ftp_server  as  $destination_file\r\n " ;
}//返回当前目录内容
print_r("当前目录 :");
print_r( ftp_nlist( $conn_id,'.' ));// close the FTP stream
ftp_close ( $conn_id );?>

注意事项

  • 连接地址一般为ip、解析的地址;

  • 上传文件出错请检查当前账户是否有写权限;

FTP操作类

  • YII操作类 http://www.yiiframework.com/extension/ftp/

  • 开源中国参考 https://www.oschina.net/code/snippet_167160_5849

PHP FTP 函数

PHP:指示支持该函数的最早的 PHP 版本。
函数  描述  PHP
ftp_alloc() 为要上传到 FTP 服务器的文件分配空间。   5
ftp_cdup()  把当前目录改变为 FTP 服务器上的父目录。  3
ftp_chdir() 改变 FTP 服务器上的当前目录。   3
ftp_chmod() 通过 FTP 设置文件上的权限。    5
ftp_close() 关闭 FTP 连接。  4
ftp_connect()   打开 FTP 连接。  3
ftp_delete()    删除 FTP 服务器上的文件。 3
ftp_exec()  在 FTP 上执行一个程序/命令。   4
ftp_fget()  从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中。   3
ftp_fput()  上传一个已打开的文件,并在 FTP 服务器上把它保存为一个文件。    3
ftp_get_option()    返回当前 FTP 连接的各种不同的选项设置。  4
ftp_get()   从 FTP 服务器下载文件。  3
ftp_login() 登录 FTP 服务器。 3
ftp_mdtm()  返回指定文件的最后修改时间。  3
ftp_mkdir() 在 FTP 服务器创建一个新目录。   3
ftp_nb_continue()   连续获取/发送文件 (non-blocking)。   4
ftp_nb_fget()   从FTP服务器上下载文件并保存到本地已经打开的文件中(non-blocking)    4
ftp_nb_fput()   上传已打开的文件,并在FTP服务器上把它保存为文件(non-blocking)。    4
ftp_nb_get()    从 FTP 服务器下载文件 (non-blocking)。   4
ftp_nb_put()    把文件上传到服务器 (non-blocking)。   4
ftp_nlist() 返回指定目录的文件列表。    3
ftp_pasv()  返回当前 FTP 被动模式是否打开。  3
ftp_put()   把文件上传到服务器。  3
ftp_pwd()   返回当前目录名称。   3
ftp_quit()  ftp_close() 的别名。    3
ftp_raw()   向 FTP 服务器发送一个 raw 命令。   5
ftp_rawlist()   返回指定目录中文件的详细列表。 3
ftp_rename()    重命名 FTP 服务器上的文件或目录。 3
ftp_rmdir() 删除 FTP 服务器上的目录。 3
ftp_set_option()    设置各种 FTP 运行时选项。 4
ftp_site()  向服务器发送 SITE 命令。 3
ftp_size()  返回指定文件的大小。  3
ftp_ssl_connect()   打开一个安全的 SSL-FTP 连接。 4
ftp_systype()   返回远程 FTP 服务器的系统类型标识符。   3

转载于:https://www.cnblogs.com/followyou/p/6927205.html

FTP服务器搭建及操作(一)相关推荐

  1. suse ftp文件服务器搭建,SUSE下FTP服务器搭建

    FTP(File Transfer Protocol),是TCP/IP网络上两台计算机传送文件的协议,是在TCP/IP网络和Internet上最早使用的协议之一,属于网络协议组的应 用层.FTP客户机 ...

  2. linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...

    第五章 FTP服务器搭建 1.看看是否已经安装FTP服务器 service vsftpd start ftp localhost 如果不认识ftp命令是因为没有安装ftp的client包,需要拿安装光 ...

  3. Linux下FTP服务器搭建

    Linux下FTP服务器搭建 一.FTP介绍 二.环境介绍 三.FTP服务端搭建步骤 1.安装相关软件包 2.启动FTP并检查状态 3.检查服务端口运行状态 4.修改FTP配置文件 5.关闭selin ...

  4. Linux(centos7.4)上FTP服务器搭建(使用yum)

    Linux(centos7.4)上FTP服务器搭建(使用yum) 安装步骤 1.安装 $ yum -y install vsftpd 2.备份配置 cp /etc/vsftpd/vsftpd.conf ...

  5. Linux网络服务——FTP服务器搭建

    FTP服务器 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是用来在两台计算机之间传输文件, ...

  6. 虚拟机xp架设服务器,xp虚拟机搭建ftp服务器搭建

    xp虚拟机搭建ftp服务器搭建 内容精选 换一换 在运行的Sharepoint产品配置向导中,单击"Next".Sharepoint产品配置向导单击"Yes", ...

  7. win7系统ftp服务器搭建,win7系统 ftp服务器搭建

    win7系统 ftp服务器搭建 内容精选 换一换 为了保证使用私有镜像创建的新云服务器可以通过"用户数据注入"功能注入初始化自定义信息(例如为云服务器设置登录密码),请在创建私有镜 ...

  8. Android设备FTP服务器搭建

    Android设备FTP服务器搭建 目 录 1 前言- 1.1设计背景- 1.2搭建方案简述- 2 搭建服务器流程- 2.1创建新项目- 2.2添加相应jar包- 2.3添加相应依赖- 2.4获取设备 ...

  9. redhat 7中FTP服务器搭建与应用

    FTP服务器搭建与应用 实验准备 软件:VMware Workstation Pro 虚拟机:Red Hat Enterprise Linux 7 64 位 两台(一台服务器,一台客户端) 匿名账号F ...

最新文章

  1. Netbeans and Remote Host for C/C++ Developing
  2. 专题解读 |「知识图谱」领域近期值得读的 6 篇顶会论文
  3. Hadoop四大组件
  4. c语言行列式源代码,新手作品:行列式计算C语言版
  5. html5 sse java_html5----sse实现服务端推送数据给前端
  6. 【项目管理】敏捷团队协议示例
  7. 使用php自动将文章标题或内容进行分词,添加和删除标签功能实例!
  8. pytorch得到梯度计算结果
  9. oracle undo seg,正确切换undo
  10. ubuntu防火墙关闭命令-转
  11. VC下的人人对弈五子棋(dos)
  12. openwrt源码下载
  13. 中文核心期刊是什么?
  14. 视频格式转换库--libyuv的简介与编译
  15. Windows Server 2008 简体中文 正式版 下载
  16. 第16章 SQL BETWEEN 操作符教程
  17. 东南大学计算机视觉博士招生,基于计算机视觉的手势识别及人机交互技术的应用研究...
  18. 斯坦福SCI写作公开课目录
  19. PIC18f46j50单片机里SPI部分的一点程序
  20. python 人像素描_基于python实现把图片转换成素描

热门文章

  1. 使用QEMU实现vexpress-ca9板卡的linux启动
  2. zookeeper启动后查看状态的Error contacting service. It is probably not running.错误
  3. Android6.0动态权限
  4. 因果推断笔记——DR :Doubly Robust学习笔记(二十)
  5. 【Leetcode】98. 验证二叉搜索树
  6. Pycharm下tensorflow导入错误
  7. cordova构建项目命令小结
  8. 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(二)
  9. C#实现WebService服务 项目完整总结
  10. React学习笔记—表单