1、ubuntu上网设置
要安装tftp服务器,首先要能上网。编辑文件interface:
vim /etc/network/interface
其中的设置如下:
1 # interfaces(5) file used by ifup(8) and ifdown(8)
2 auto lo
3 iface lo inet loopback
4
5 auto ens33
6
7 #iface ens33 inet static
8 iface ens33 inet dhcp
9 #address 192.168.1.141
10 #netmask 255.255.255.0
11 #gateway 192.168.1.1
文件中设置成了 dhcp模式上网,然后需要重启网络。
sudo ifdown ens33
sudo ifup ens33
2、安装tftp服务器程序
sudo apt-get install tftp-hpa tftpd-hpa // tftp-hpa是客户端,tftpd-hpa 是服务器
sudo apt-get install xinetd
3、配置相关文件
vim /etc/xinetd.conf
1 # Simple configuration file for xinetd
2 #
3 # Some defaults, and include /etc/xinetd.d/
4
5 defaults
6 {
7
8 # Please note that you need a log_type line to be able to use log_on_success
9 # and log_on_failure. The default is the following :
10 # log_type = SYSLOG daemon info
11
12 }
13
14 includedir /etc/xinetd.d
vim /etc/default/tftpd-hpa
1 # /etc/default/tftpd-hpa
2
3 TFTP_USERNAME="tftp"
4 TFTP_DIRECTORY="/tftpboot"
5 TFTP_ADDRESS="0.0.0.0:69"
6 TFTP_OPTIONS="-l -c -s"
~
~
TFTP_DIRECTORY="/tftpboot" 这个是在根目录 “/” 下创建的一个共享目录,用来传输文件的存储目录。导航到根目录下,创建文件夹/tftpboot,同时更改权限。
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot/
4、创建文件tftp
如果 /etc/xinetd.d/下没有这个文件就创建
sudo vim /etc/xinetd.d/tftp
创建完成后输入下面内容:
1 service tftp
2 {
3 socket_type = dgram
4 wait = yes
5 disable = no
6 user = root
7 protocol = udp
8 server = /usr/sbin/in.tftpd
9 server_args = -s /tftpboot
10 #log_on_success += PID HOST DURATION
11 #log_on_failure += HOST
12 per_source = 11
13 cps =100 2
14 flags =IPv4
15 }
5 重启tftp服务
sudo service tftpd-hpa restart
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
输出结果:
wen@li-pc:/$ sudo vim /etc/xinetd.d/tftp
wen@li-pc:/$ sudo service tftpd-hpa restart
wen@li-pc:/$ sudo /etc/init.d/xinetd reload
[ ok ] Reloading xinetd configuration (via systemctl): xinetd.service.
wen@li-pc:/$ sudo /etc/init.d/xinetd restart
[ ok ] Restarting xinetd (via systemctl): xinetd.service.
如果成功就提示OK。
6、测试
1、本地测试
在 /tftpboot下创建一个文件(1.c)。退出 /tftpboot目录,然后再进入任意目录下。
进入tftp的模式:
tftp localhost
获取文件:
get file( 文件名)
退出tftp:
q
在当前文件路径下,file文件就被复制到当前目录下了。
2、远程测试
使用一个开发板(s3c2440开发板)测试文件传输。
下面用开发板中的uboot测试tftp的下载功能。首先保证开发板和主机ubuntu能ping通。uboot的环境变量设置:
ipaddr=192.168.1.10
gatewayip=192.168.1.1
serverip=192.168.1.20 // tftp服务器的ip(ubuntu16.04)
netmask=255.255.255.0
从uboot中 ping 通ubuntu16.04的情况下,从uboot中输入命令:
tftp address file
服务器上的文件就被传输到指定地址了。
例如:tftp 0x30000000 1.c