在Ubuntu20.10中搭建TFTP服务器

TFTP(Trivial File Transfer Protocol)是用来下载远程文件的最简单的网络协议,它基于UDP协议而实现.

一、安装:

sudo apt-get install tftp-hpa tftpd-hpa  

 tftp-hpa 为客户端,tftpd-hpa 为服务端。

二、配置:

修改tftpd-hpa相应的配置文件

sudo vi /etc/default/tftpd-hpa

原始的内容如下:

#/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/svr/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure"

修改后:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/svr/tftp"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="-l -c -s"

说明:

TFTP_USERNAME:tftp帐号,

TFTP_DIRECTORY:tftp根目录,

TFTP_ADDRESS:地址与端口号,

TFTP_OPTIONS:启动参数,(可通过命令 man tftpd,查看各种参数含义)

-l:以standalone/listen模式启动TFTP服务(--listen),不用安装网络守护进程服务程序xinetd。

-c:可上传创建新文件(--create)。默认情况下,TFTP只允许覆盖原有文件,不能创建新文件。

-s:改变TFTP启动的根目录(--secure)。为了安全性和兼容性,使用一些引导rom,很难在请求中包含目录名。

三、修改TFTP根目录():

如果没有则建立TFTP目录 /var/tftp,以供上传和下载。修改目录所有者;设定该目录的权限,一般就将其权限设置为最高,为所有用户组都添加所有权限(读+写+执行=4+2+1=7):

$ sudo chown tftp:tftp /srv/tftp

sudo mkdir  /var/tftp

sudo chmod 777 tftp

四、重启tftpd-hpa服务:

sudo service tftpd-hpa restart

五、查看TFTP服务状态

$ ps aux|grep tftp
root        5070  0.0  0.0   3068   680 ?        Ss   10:59   0:00 /usr/sbin/in.tftpd --listen --user tftp --address :69 --secure --create /var/tftpboot

可以看到, /usr/sbin/in.tftpd已经启动,进程号:5070,以及对应参数

六、使用:

1、linux环境:

xxx@xxx-virtual-machine:~$ tftp 127.0.0.1
tftp> help    
tftp-hpa 5.2
Commands may be abbreviated.  Commands are:

connect 	connect to remote tftp
mode    	set file transfer mode
put     	send file
get     	receive file
quit    	exit tftp
verbose 	toggle verbose mode
trace   	toggle packet tracing
literal 	toggle literal mode, ignore ':' in file name
status  	show current status
binary  	set mode to octet
ascii   	set mode to netascii
rexmt   	set per-packet transmission timeout
timeout 	set total retransmission timeout
?       	print help information
help    	print help information
tftp>  

2、windows环境:

控制面板中,启用TFTP客户端,并在防火墙中放行(C:\Windows\System32\TFTP.EXE)。

C:\Users\Administrator>tftp

向运行 TFTP 服务的远程计算机传入或从该计算机传出文件。

TFTP [-i] host [GET | PUT] source [destination]

  -i              指定二进制映像传输模式(也称为
                  八进制)。在二进制映像模式中,逐字节地
                  移动文件。在传输二进制文件时,
                  使用此模式。
  host            指定本地或远程主机。
  GET             将远程主机上的文件目标传输到
                  本地主机的文件源中。
  PUT             将本地主机上的文件源传输到
                  远程主机上的文件目标。
  source          指定要传输的文件。
  destination     指定要将文件传输到的位置。


C:\Users\Administrator>tftp -i 192.168.1.100 get test.bin  

你可能感兴趣的:(linux,tftp)