sftp-server
sftp协议的服务器端程序
补充说明
sftp-server
命令是一个sftp
协议的服务器端程序,它使用加密的方式进行文件传输。
语法
代码语言:javascript复制sftp-server
sftp
交互式的文件传输程序
补充说明
sftp
命令是一款交互式的文件传输程序,命令的运行和使用方式与ftp
命令相似,但是,sftp
命令对传输的所有信息使用SSH加密,它还支持公钥认证和压缩等功能。
语法
代码语言:javascript复制sftp [选项] [参数]
选项
-B
:指定传输文件时缓冲区的大小;-l
:使用SSH协议版本1;-b
:指定批处理文件;-C
:使用压缩;-o
:指定SSH选项;-F
:指定SSH配置文件;-R
:指定一次可以容忍多少请求数;-v
:升高日志等级。
参数
目标主机
:指定sftp服务器IP地址或者主机名。
实例
建立连接
代码语言:javascript复制$ sfpt username@1.1.1.1 # 回车输入密码
获取文件下载到指定路径
代码语言:javascript复制sftp> get /export/sftp/test.csv /Users/my/Downloads
Fetching /export/sftp/test.csv to /Users/my/Downloads/test.csv
/export/sftp/test.csv 100% 133 0.3KB/s 00:00
上传本地文件到服务器指定路径
代码语言:javascript复制sftp> put /Users/my/Downloads/re-produce.gif /export/sftp
Uploading /Users/my/Downloads/re-produce.gif to /export/sftp/re-produce.gif
/Users/my/Downloads/re-produce.gif 100% 257KB 86.6KB/s 00:02
tftp
在本机和TFTP服务器之间使用TFTP协议传输文件
补充说明
tftp
命令用在本机和TFTP服务器之间使用TFTP协议传输文件。
TFTP是用来下载远程文件的最简单网络协议,它基于UDP协议而实现。嵌入式Linux的TFTP开发环境包括两个方面:一是Linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为U-Boot本身内置支持TFTP客户端,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下Linux服务器端tftp-server的配置。
语法
代码语言:javascript复制tftp [选项] [参数]
选项
-c
:指定与TFTP服务器连接成功后,立即要执行的指令;-m
:指定文件传输模式。可以是ASCII或者Binary;-v
:显示指令详细执行过程;-V
:显示指令版本信息。
参数
主机
:指定TFTP要连接的TFTP服务器的IP地址或主机名。
实例
- 安装TFTP服务器
需要安装xinetd、tftp和tftp-server这三个软件。
如果能上网,通过yum安装:
代码语言:javascript复制yum install xinetd
yum install tftp
yum install tftp-server
如果不能上网,可以直接安装提供的rpm包:
代码语言:javascript复制rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
rpm -ivh tftp-0.48-3.fc9.i386.rpm
rpm -ivh tftp-server-0.48-3.fc9.i386.rpm
- 配置TFTP服务器
修改/etc/xinetd.d/tftp
文件,将其中的disable=yes
改为disable=no
。主要是设置TFTP服务器的根目录,开启服务。修改后的文件如下:
service tftp
{
socket_type =dgram
protocol =udp
wait =yes
user =root
server =/usr/sbin/in.tftpd
server_args =-s /home/mike/tftpboot -c
disable =no
per_source =11
cps =100 2
flags =IPv4
}
说明:修改项server_args= -s <path> -c
,其中处可以改为你的TFTP服务器的根目录,参数-s
指定chroot,-c
指定了可以创建文件。
- 启动TFTP服务器并关闭防火墙
/etc/init.d/iptables stop # 关闭防火墙
sudo /sbin/service xinetd start
或
service xinetd restart
/etc/init.d/xinetd start
看到启动[OK]就可以了
- 查看TFTP服务是否开启
netstat -a | grep tftp
显示结果为udp 0 0 *:tftp *:*
表明服务已经开启,就表明TFTP配置成功了。
- TFTP使用
复制一个文件到TFTP服务器目录,然后在主机启动TFTP软件,进行简单测试。
代码语言:javascript复制tftp 192.168.1.2
tftp> get <download file>
tftp> put <upload file>
tftp> q
- TFTP命令用法如下
tftp your-ip-address
进入TFTP操作:
connect
:连接到远程TFTP服务器mode
:文件传输模式put
:上传文件get
:下载文件quit
:退出verbose
:显示详细的处理信息trace
:显示包路径status
:显示当前状态信息binary
:二进制传输模式ascii
:ASCII传输模式rexmt
:设置包传输的超时时间timeout
:设置重传的超时时间help
:帮助信息?
:帮助信息
- 如果老是出现"AVC Denial, click icon to view"的错误,并不能传输文件,需要作如下修改
修改/etc/sysconfig/selinux
,将SELINUX
设定为disable
,使用命令setenforce 0
让SELinux配置文件生效。
- Busybox中TFTP命令的用法
命令格式为:
代码语言:javascript复制tftp [option] ... host [port]
如果要下载或上传文件的话是一定要用这些option的。
-g
表示下载文件 (get)-p
表示上传文件 (put)-l
表示本地文件名 (local file)-r
表示远程主机的文件名 (remote file)
例如,要从远程主机192.168.1.2上下载embedexpert
,则应输入以下命令:
tftp -g -r embedexpert 192.168.1.2