wyj@wyj-virtual-machine:~$ dpkg -l | grep tftp
wyj@wyj-virtual-machine:~$
wyj@wyj-virtual-machine:~$ sudo apt-get install tftp-hpa tftpd-hpa xinetd
wyj@wyj-virtual-machine:~$ dpkg -l | grep tftp
ii tftp-hpa 5.2-7ubuntu3.1 amd64 HPA's tftp client
ii tftpd-hpa 5.2-7ubuntu3.1 amd64 HPA's tftp server
# tftp-hpa是客户端,tftpd-hpa是服务程序。
wyj@wyj-virtual-machine:~$ sudo cp /etc/default/tftpd-hpa /etc/default/tftpd-hpa_backup //备份配置文件
wyj@wyj-virtual-machine:~$ sudo vim /etc/default/tftpd-hpa //修改配置文件
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/wyj/server/tftp/tftpboot" #将/tftpboot改成你自己建立的tftpboot文件夹路径
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s" #-c是可以上传文件的参数,如果不用-c,会发生无法使用put命令的情况,-s是指定tftpd-hpa服务目录
#cd到/etc/xinetd.d/看有没有tftp文件没有就新建一个
wyj@wyj-virtual-machine:~$ cd /etc/xinetd.d/
wyj@wyj-virtual-machine:/etc/xinetd.d$ ls
chargen daytime discard echo time
wyj@wyj-virtual-machine:/etc/xinetd.d$ sudo vim tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = wyj #修改为你登录系统的用户名
server = /usr/sbin/in.tftpd
server_args = -s /home/wyj/server/tftp/tftpboot -c # /tftpboot为你存放TFTP的文件目录,我使用的是/home/wyj/server/tftp/tftpboot这个路径
per_source = 11
cps = 100 2
}
# server_args = -s /tftpboot –c
-c参数是允许上传用的,参数/tftpboot则是你的tftp目录,修改成你的目录即可。
第一个是disabled选项,如果是yes,TFTP服务器是关闭的,修改为no启动TFTP服务器;
wyj@wyj-virtual-machine:/etc/xinetd.d$ sudo service tftpd-hpa restart //重启服务器
tftpd-hpa stop/waiting
tftpd-hpa start/running, process 8150
wyj@wyj-virtual-machine:/etc/xinetd.d$ sudo /etc/init.d/xinetd reload
wyj@wyj-virtual-machine:/etc/xinetd.d$ sudo /etc/init.d/xinetd restart //重启xinetd,tftp的一个脚本
xinetd stop/waiting
xinetd start/running, process 8175
看Linux系统与window系统能否相互Ping通
wyj@wyj-virtual-machine:/$ ping 192.168.1.102 ping
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_seq=1 ttl=128 time=4.97 ms
64 bytes from 192.168.1.102: icmp_seq=2 ttl=128 time=5.03 ms
64 bytes from 192.168.1.102: icmp_seq=3 ttl=128 time=5.23 ms
64 bytes from 192.168.1.102: icmp_seq=4 ttl=128 time=5.17 ms
64 bytes from 192.168.1.102: icmp_seq=5 ttl=128 time=5.40 ms
64 bytes from 192.168.1.102: icmp_seq=6 ttl=128 time=4.97 ms
64 bytes from 192.168.1.102: icmp_seq=7 ttl=128 time=4.71 ms
^C
--- 192.168.1.102 ping statistics ---
Windows cmd ping Linux
ping 192.168.158.129
正在 Ping 192.168.158.129 具有 32 字节的数据:
来自 192.168.158.129 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.158.129 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.158.129 的回复: 字节=32 时间=1ms TTL=64
来自 192.168.158.129 的回复: 字节=32 时间<1ms TTL=64
192.168.158.129 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 1ms,平均 = 0ms
# 能互相ping通,然后关闭防火墙
1、Ubuntu14.0.4开启
ufw enable
2、Ubuntu14.0.4关闭
ufw disable
wyj@wyj-virtual-machine:/$ sudo ufw disable
[sudo] password for wyj:
防火墙在系统启动时自动禁用
#测试服务tftp是否启动
执行命令:netstat -a|grep tftp;当结果显示 : udp 0 0 *:tftp *:* 则启动tftp服务了。
wyj@wyj-virtual-machine:/$ netstat -a|grep tftp
udp 0 0 *:tftp *:*
#测试tftp
1、文件的下载
在/tftpboot目录文件夹路径下新建一个文件:
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ sudo vim tftp_test.txt
This is tftp test!
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ sudo chmod 777 tftp_test.txt
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ ll
总用量 12
drwxr-xr-x 2 root root 4096 7月 22 16:58 ./
drwxr-xr-x 3 root root 4096 7月 22 16:12 ../
-rwxrwxrwx 1 root root 19 7月 22 16:58 tftp_test.txt*
wyj@wyj-virtual-machine:~/server_test/tftp$ tftp 192.168.158.129
tftp> get tftp_test.txt
tftp: tftp_test.txt: Permission denied
tftp> q
#改了tftp目录权限
wyj@wyj-virtual-machine:~$ sudo chmod 777 -R /home/wyj/server/tftp//tftpboot/
wyj@wyj-virtual-machine:~/server_test/tftp$ tftp 192.168.158.129
tftp> get tftp_test.txt
tftp: tftp_test.txt: Permission denied //还是权限问题
tftp> q
#改了另一个路径目录的权限
wyj@wyj-virtual-machine:~$ sudo chmod 777 -R /home/wyj/server_test/tftp/
wyj@wyj-virtual-machine:~$ cd /home/wyj/server_test/tftp/
wyj@wyj-virtual-machine:~/server_test/tftp$ tftp 192.168.158.129
tftp> get tftp_test.txt
tftp> q
wyj@wyj-virtual-machine:~/server_test/tftp$ ls
tftp_test.txt
wyj@wyj-virtual-machine:~/server_test/tftp$ cat tftp_test.txt
This is tftp test!
#tftp服务两个目录的权限要注意!
2、文件的上传
#上传文件到服务器:上传文件时需要注意,在/tftpboot下面要存在一个跟您上传文件名相同的文件,这个文件可以是空文件,但是该文件需要具备可读可写权限,否者会出现 “Errorcode 2: Access violation” 错误。
wyj@wyj-virtual-machine:~/server_test/tftp$ cd /home/wyj/server/tftp/tftpboot/
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ touch hello.txt
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ sudo chmod 777 hello.txt
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ ls
hello.txt test.txt
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ cd /home/wyj/server_test/tftp/
wyj@wyj-virtual-machine:~/server_test/tftp$ sudo vim hello.txt
[sudo] password for wyj:
hello!
wyj@wyj-virtual-machine:~/server_test/tftp$ sudo chmod 777 hello.txt
wyj@wyj-virtual-machine:~/server_test/tftp$ tftp 192.168.158.129
tftp> put hello.txt
tftp> q
wyj@wyj-virtual-machine:~/server_test/tftp$ cd /home/wyj/server/tftp/tftpboot/
wyj@wyj-virtual-machine:~/server/tftp/tftpboot$ cat hello.txt
hello!
#上传文件后,可以看到hello.txt文件里面确实已经有新内容了,也就是说文件进行了覆盖
3、linux与windows利用tftp文件传输
#先在windows下载Tftpd32 Current Directory为当前要上传到ubuntu的文件目录 Server interfaces为winsdows的IP地址
#从windows上下载文件到linux
wyj@wyj-virtual-machine:~/server_test/tftp$ ls
hello.txt test.txt
wyj@wyj-virtual-machine:~/server_test/tftp$ tftp 192.168.158.129 //tftp后面跟Ubuntu地址
tftp> get 192.168.1.102:hi.txt //get后跟windows地址:跟要操作的文件
tftp> q
wyj@wyj-virtual-machine:~/server_test/tftp$ ls
hello.txt hi.txt test.txt
wyj@wyj-virtual-machine:~/server_test/tftp$ cat hi.txt
hi
#从linux发送文件到windows
wyj@wyj-virtual-machine:~/server_test/tftp$ sudo vim hey.txt
[sudo] password for wyj:
hey!
wyj@wyj-virtual-machine:~/server_test/tftp$ tftp 192.168.158.129
tftp> put 192.168.1.102:hey.txt
tftp> q
TFTP作用:
1、TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
2、TFTP是简单文件传输协议,是用于在远端服务器和本地主机之间传输文件的,相对于FTP,TFTP 没有复杂的交互存取接口和认证控制,适用于客户端和服务器之 间不需要复杂交互的环境。TFTP 协议的运行基于UDP 协议。 TFTP 传输请求是由客户端发起的,当 TFTP 客户端需要从服务器下载文件时,由客户端向TFTP 服务器发送请求包,然后从服 务器接收数据;当 TFTP 客户端需要向服务器上传文件时,由客户端向TFTP 服务器发送写请求包,然后向服务器发送数据。
参考博客:https://www.cnblogs.com/AP0904225/p/6589085.html