tftp服务器环境搭建

首先说明:在ubuntu12.04下,安装的是tftp-hpa和tftpd-hpa而不是tftp和tptpd(早期的版本是)。因为,通过网上搜索到的帖子,安装tftp和tptpd后,如果在本地测试的话是OK的。而换台电脑,真正的远程通过tftp来get文件或put文件。则总是显示Transfor time out。但是,通过 $ netstat -nlp命令查看,tftpd的确已经启动了呀。不知何解,故放弃tftp和tftpd。

1.安装tftp的服务端和客户端:
sudo apt-get install tftpd-hpa ;安装tftp服务端
sudo apt-get install tftp-hpa   ;安装tftp客户端

2.安装xinetd

sudo apt-get install xinetd:支持对tcp、udp、RPC服务的东东


3.安装完 xinetd应该会建立目录/etc/xinetd.d,在此目录中添加文件:tftpd
#gedit /etc/xinetd.d

#sudo touch tftpd

4.sudo gedit /etc/xinetd.d/tftpd
想tftpd中添加如下内容:
service tftp
{
disable = no
socket_type = dgram
wait = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tftpd                                      ----------------------------自己创建的tftp主目录
log_on_success = PID HOST DURATION
log_on_failure = HOST
}

5.在/home下建立tftpd目录,作为服务器的目录
sudo mkdir /home/tftpd
释放权限:
sudo chmod 777 /home/tftpd              

6.打开inetd.conf 注释掉内容:
sudo gedit /etc/inetd.conf
#tftp dgram udp wait nobody /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot        ----------若没有请自己添加此句。

7.配置

sudo vi /etc/default/tftpd-hpa
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot " //改成你想要的那个tftpboot
TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -c -s"        //这里是选项



8.重启xinetd服务
sudo /etc/init.d/xinetd restart

重启tftpd服务
sudo /etc/init.d/tftpd-hpa restart

9、
测试服务tftp是否启动

netstat -a|grep tftp

显示 :

udp        0      0 *:tftp                  *:* 

则启动服务了



测试tftp:

tftp的目录是在/var/lib/tftpboot,可以进行修改。在第7步进行修改。

通过查看进程可以查看当前tftp server 主目录
ps -axu | grep tftp
root     10736  0.0  0.0   2280   684 ?        Ss   21:26   0:00 /usr/sbin/in.tftpd -s /home/tftpd

# tftp 127.0.0.1

tftp> get 1.c

Received 7 bytes in 0.1 seconds

tftp> put 2.c

Sent 10 bytes in 0.0 seconds

tftp> quit

# ls

1.c  2.c 

# cd /tftpboot/

# ls

1.c  2.c



下面是网上总结出来的常见错误及解决方法:
现象一:
tftp> get file
Transfer timed out.
原因:
tftpd服务没有启动
解决方法:启动服务
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftpd-hpa restart

现象二:
tftp> get file
Error code 2: Only absolute filenames allowed
原因:
在/etc/xinetd.d/tftpd中设置的server_args为/etc/default/tftpd-hpa
下面是我的机器上/etc/default/tftpd-hpa配置
# /etc/default/tftpd-hpa
RUN_DAEMON="yes"
TFTP_ADDRESS="0.0.0.0:69"
OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"

现象三:
tftp> put file
Error code 1: File not found
原因:
指定的文件不存在;或tftpd启动参数中没有指定-c选项,允许上传文件~上传的时候一定要确保文件先存在于上传目录下。

现象四:
tftp> get file
tftp:  : Permission denied
原因:权限不足
请查看chmod 是不是配置好


你可能感兴趣的:(tftp服务器环境搭建)