FTP服务器搭建及操作(一)
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服务器搭建及操作(一)相关推荐
- suse ftp文件服务器搭建,SUSE下FTP服务器搭建
FTP(File Transfer Protocol),是TCP/IP网络上两台计算机传送文件的协议,是在TCP/IP网络和Internet上最早使用的协议之一,属于网络协议组的应 用层.FTP客户机 ...
- linux下java写ftp服务器端,在Linux下部署网站(java环境部署)第五章 FTP服务器搭建...
第五章 FTP服务器搭建 1.看看是否已经安装FTP服务器 service vsftpd start ftp localhost 如果不认识ftp命令是因为没有安装ftp的client包,需要拿安装光 ...
- Linux下FTP服务器搭建
Linux下FTP服务器搭建 一.FTP介绍 二.环境介绍 三.FTP服务端搭建步骤 1.安装相关软件包 2.启动FTP并检查状态 3.检查服务端口运行状态 4.修改FTP配置文件 5.关闭selin ...
- Linux(centos7.4)上FTP服务器搭建(使用yum)
Linux(centos7.4)上FTP服务器搭建(使用yum) 安装步骤 1.安装 $ yum -y install vsftpd 2.备份配置 cp /etc/vsftpd/vsftpd.conf ...
- Linux网络服务——FTP服务器搭建
FTP服务器 FTP服务器(File Transfer Protocol Server)是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务. FTP是用来在两台计算机之间传输文件, ...
- 虚拟机xp架设服务器,xp虚拟机搭建ftp服务器搭建
xp虚拟机搭建ftp服务器搭建 内容精选 换一换 在运行的Sharepoint产品配置向导中,单击"Next".Sharepoint产品配置向导单击"Yes", ...
- win7系统ftp服务器搭建,win7系统 ftp服务器搭建
win7系统 ftp服务器搭建 内容精选 换一换 为了保证使用私有镜像创建的新云服务器可以通过"用户数据注入"功能注入初始化自定义信息(例如为云服务器设置登录密码),请在创建私有镜 ...
- Android设备FTP服务器搭建
Android设备FTP服务器搭建 目 录 1 前言- 1.1设计背景- 1.2搭建方案简述- 2 搭建服务器流程- 2.1创建新项目- 2.2添加相应jar包- 2.3添加相应依赖- 2.4获取设备 ...
- redhat 7中FTP服务器搭建与应用
FTP服务器搭建与应用 实验准备 软件:VMware Workstation Pro 虚拟机:Red Hat Enterprise Linux 7 64 位 两台(一台服务器,一台客户端) 匿名账号F ...
最新文章
- Netbeans and Remote Host for C/C++ Developing
- 专题解读 |「知识图谱」领域近期值得读的 6 篇顶会论文
- Hadoop四大组件
- c语言行列式源代码,新手作品:行列式计算C语言版
- html5 sse java_html5----sse实现服务端推送数据给前端
- 【项目管理】敏捷团队协议示例
- 使用php自动将文章标题或内容进行分词,添加和删除标签功能实例!
- pytorch得到梯度计算结果
- oracle undo seg,正确切换undo
- ubuntu防火墙关闭命令-转
- VC下的人人对弈五子棋(dos)
- openwrt源码下载
- 中文核心期刊是什么?
- 视频格式转换库--libyuv的简介与编译
- Windows Server 2008 简体中文 正式版 下载
- 第16章 SQL BETWEEN 操作符教程
- 东南大学计算机视觉博士招生,基于计算机视觉的手势识别及人机交互技术的应用研究...
- 斯坦福SCI写作公开课目录
- PIC18f46j50单片机里SPI部分的一点程序
- python 人像素描_基于python实现把图片转换成素描
热门文章
- 使用QEMU实现vexpress-ca9板卡的linux启动
- zookeeper启动后查看状态的Error contacting service. It is probably not running.错误
- Android6.0动态权限
- 因果推断笔记——DR :Doubly Robust学习笔记(二十)
- 【Leetcode】98. 验证二叉搜索树
- Pycharm下tensorflow导入错误
- cordova构建项目命令小结
- 集成CCFlow工作流与GPM的办公系统驰骋CCOA介绍(二)
- C#实现WebService服务 项目完整总结
- React学习笔记—表单