- 安装tftp所需的软件
安装tftp-hpa、tftpd-hpa和xinetd:
$ sudo apt-get install tftp-hpa tftpd-hpa xinetd |
tftp-hpa是客户端,tftpd-hpa是服务程序。
- 配置TFTP服务器
第1步:修改/etc/default/tftpd-hpa配置文件。
$ sudo vim /etc/default/tftpd-hpa # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS=":69" TFTP_OPTIONS="--secure" #上面是系统默认的,做如下修改 # /etc/default/tftpd-hpa
TFTP_USERNAME="tftp" TFTP_DIRECTORY="/home/me/work/tftpboot" #这里是你Ubuntu虚拟机中TFTP服务器的目录 TFTP_ADDRESS="0.0.0.0:69"#ip地址和端口号 TFTP_OPTIONS="-l -c -s"#“-c”是可以上传文件的参数;“-s”是指定的TFTP服务器的目录;“-l”是在独立运行服务器(听)模式,而不是从inetd运行 |
第2步:新建或者修改/etc/xinetd.d/tftp配置文件 。
进入/etc/xinetd.d/文件夹,查看该目录下是否有一个tftp文件,如果没有就新建一个,如果有的话就查看内容是否与下面的一致,不一致则修改/etc/xinetd.d/tftp内容为:
service tftp { disable = no #yes表示TFTP服务器是关闭的;no表示启动TFTP服务器 socket_type = dgram #socket的链接类型是dgram(UDP) wait = yes #等待到启动完成 user = root #指定root用户启动服务进程 protocol = udp #UDP协议 server = /usr/sbin/in.tftpd #指定服务进程是/usr/sbin/in.tftpd server_args = -s /home/me/work/tftpboot #指定传给该进程的参数 per_source = 11 #表示每一个ip地址上最多可以建立的实例数目 cps = 100 2 #表示每秒100个入站链接,如果超过限制,则等待2秒 } |
第3步:创建用户下载的文件存放目录
$ sudo mkdir /home/me/work/tftpboot
$ sudo chmod 777 /home/me/work/tftpboot -R
- 重启TFTP服务[重要]
每次修改完配置文件后,都需要重新启动一下服务。执行次序如下:
$ sudo service tftpd-hpa restart #重启服务器 $ sudo /etc/init.d/xinetd reload $ sudo /etc/init.d/xinetd restart #重启xinetd,tftp的一个脚本 |
- 测试TFTP服务
使用TFTP服务器的前提:
a、Linux系统与window系统能相互Ping通
b、关闭Linux、Window的防火墙。运行sudo ufw disable命令关闭Linux防火墙(防火墙在系统启动时自动禁用)。
测试服务tftp是否启动
#执行命令如下: $ netstat –a | grep tftp #当前显示结果 $ dp 0 0 *:tftp *:* #则启动tftp服务了 |
测试tftp
在/home/me/work/tftpboot目录下新建一个文件:
$ touch test #创建test文件 $ echo “tftp configure is ok.” > test #将“tftp configure is ok.”写到test文件中 |
然后在切换到另一个目录下执行如下命令:
$ tftp xxx.xxx.xxx.xxx #Ubuntu的ip地址,链接TFTP服务器 $ tftp> get test #下载test文件到当前目录(切换到的那个目录) $ tftp> q #退出 $ cat test #回显的内容与echo的内容一样 |
如果在当前目录下多出了一个test文件,并且test文件的内容跟/home/me/work/tftpboo目录下test文件的内容一致,则tftp可以正常使用。这样可以通过tftp命令下载Ubuntu服务器上的可执行文件或者脚本到ARM运行。