如何安装linux的tftp服务器

2024-11-26 08:52:14
推荐回答(5个)
回答1:

以下资料来源网上:
fedora下tftp服务器的安装与配置
总结过程如下:

1.下载tftp服务器、客户端tftp和守护进程xinetd三个包
yum install xinetd tftp tftp-server

//xinetd.i386 2:2.3.14-21.fc10
//tftp-0.49-1.fc10.i386.rpm
//tftp-server-0.49-1.fc10.i386.rpm

2.配置vi /etc/xinetd.d/tftp
修改server_args = -s /tftpboot -c,这里的-c一定要加上,否则只能下载不能上传!!!
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags = IPv4
}

3.关闭防火墙

4.建立tftp工作目录并修改属性(不修改属性会出现error)
cd /
mkdir tftpboot
chmod 777 -R /tftpboot/

5.开启服务,上传下载文件

######################################

我的配置过程中先后顺序和出现的问题如下:

下载tftp服务客户端tftp和守护进程xinetd
yum install xinetd
yum install tftp tftp-server
//xinetd.i386 2:2.3.14-21.fc10
//tftp-0.49-1.fc10.i386.rpm
//tftp-server-0.49-1.fc10.i386.rpm
关闭防火墙
service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
cd /
mkdir tftpboot
cd tftpboot
cp /etc/inittab /tftpboot/
tftp 172.18.1.90
tftp> get inittab
Transfer timed out.

tftp>quit
[root@localhost tftpboot]# netstat -a|grep tftp
[root@localhost tftpboot]# ls
inittab
[root@localhost tftpboot]# touch aaa
[root@localhost tftpboot]# ls
aaa inittab
[root@localhost tftpboot]# tftp 172.18.1.90
tftp> get aaa
Transfer timed out.

tftp> quit
不知何故出现“Transfer timed out.”的错误提示,想想没有修改tftp配置文件:
[root@localhost tftpboot]# cd /etc/xinetd.d
[root@localhost xinetd.d]# vi tftp
修改保存:
disable=no
server_args=-s /tftpboot/ -c
[root@localhost xinetd.d]# cd /
[root@localhost /]# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@localhost /]# netstat -a | grep tftp
udp 0 0 *:tftp *:*
[root@localhost /]# tftp 172.18.1.90
tftp> get aaa
Error code 1: File not found
tftp> get inittab
Error code 1: File not found
tftp> quit
错误不一样了,以为需要安装tftpd服务器端,yum install tftpd没有源
但这次想起来新建/tftpboot/目录时候没有对该目录权限进行修改,就一切ok了
[root@localhost /]# chmod 777 -R /tftpboot/

[root@localhost /]# tftp 172.18.1.90
tftp> get aaa
tftp> get inittab
tftp> q
[root@localhost /]# ls
aaa boot etc inittab lost+found mnt proc sbin srv tftpboot usr
bin dev home lib media opt root selinux sys tmp var
//根目录出现了aaa和inittab文件,下载成功!
再来试试上传文件:
[root@localhost /]# cd /tftpboot
[root@localhost tftpboot]# ls
aaa inittab
[root@localhost tftpboot]# rm aaa
rm: remove regular empty file `aaa'? y
[root@localhost tftpboot]# ls
inittab
[root@localhost tftpboot]# tftp 172.18.1.90
tftp> put aaa
tftp: aaa: No such file or directory
tftp> put aaa
tftp: aaa: No such file or directory
tftp> q
[root@localhost tftpboot]# cd /
[root@localhost /]# ls
aaa boot etc inittab lost+found mnt proc sbin srv tftpboot usr
bin dev home lib media opt root selinux sys tmp var
[root@localhost /]# tftp 172.18.1.90
tftp> put aaa
tftp> q
[root@localhost /]# cd /tftpboot
[root@localhost tftpboot]# ls
aaa inittab
上传成功!
上面错误原因就是tftp的执行目录要再根目录下进行,因为默认根目录为当前操作的目录

回答2:

安装tftp服务器:
需要安装xinetd、tftp、tftp-server3软件
1、如果能上网,通过yum安装:
sudo yum install xinetd
sudo yum install tftp
sudo yum install tptp-server
2、如果不能上网,可以直接安装提供的rpm包:
sudo rpm -ivh xinetd-2.3.14-18.fc9.i386.rpm
sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
sudo rpm -ivhtftp-server-0.48-3.fc9.i386.rpm
配置tftp服务器:
修改/etc/xinetd.d/tftp文件
disable=yes 改为 disable=no
server_args=-s /var/lib/tftpboot 改为 server_args=-s /tftpboot/ -c
修改/etc/sysconfig/selinux文件
SELINUX=disabled (系统默认是enforcing)要改成disabled
chmod 777 /tftpboot 修改/tftpboot文件夹的权限
启动 service xinetd restart
查看tftp服务是否开启:
netstat -a | grep tftp
显示结果为 udp 0 0 *:tftp *:* 表示服务已经开启,tftp配置成功
把openwrt-ar71xx-wp543-squashfs-4M-factory.img 文件复制到目录/tftpboot 下
在目录/home/x(目录名)下:
启动tftp服务器
sudo in.tftpd -l /tftpboot
tftp 192.168.0.26(本机的IP地址)
tftp>get a(文件名) 在服务器上下载文件
tftp>put a(文件名) 上传文件到服务器上
tftp>q 退出
启动tftp服务器:
service tftpd-hpa stop 停止tftp服务器
service tftpd-hpa start 开启tftp服务器
service tftpd-hpa stutus 查看tftp运行状态
service tftpd-hpa restart 重启tftp服务器
(注意:文件传输后文件的权限会发生变化)
进入TFTP操作:
connect:连接到远程tftp服务器
mode:文件传输模式
put:上传文件
get:下载文件
quit:退出
verbose:显示详细的处理信息
tarce:显示包路径
status:显示当前状态信息
binary:二进制传输模式
ascii:ascii 传送模式
rexmt:设置包传输的超时时间

timeout:设置重传的超时时间

help:帮助信息

? :帮助信息
-g 表示下载文件 (get)

-p 表示上传文件 (put)

-l 表示本地文件名 (local file)

-r 表示远程主机的文件名 (remote file)

例如,要从远程主机192.168.1.2上下载 embedexpert,则应输入以下命令:

tftp -g -r embedexpert 192.168.1.2
出现的一些问题及原因(解决方法):
1、Transfer time out.
tftpd服务没有启动

2、Error code 0:Permission denied

可能是由SELinux造成的,在FC3和FC3以后的FC版本中SELinux默认的都是开启的,现在要关掉它。
修改文件/etc/sysconfig/selinux,设定SELINUX=disabled,然后重启电脑即可
或者 执行命令system-config-securitylevel打开“安全级别配置”对话框,将SELinux(S)选项中“强制”改为“允许”
3、Error code 1:File not found
指定的文件夹不存在;或tftpd启动参数中没有指定-c选项,允许上传文件
4、Error code 2:Only absolute filenames allowed
/etc/xinetd.d/tftpd文件的设置没设好,只需要将server_args= 改为你自己设定 的服务器文件夹就行了
5、Error code 2:Access violation
上传的文件要有相应的可读写(覆盖)的权限才能上传,要对文件的权限进行修改 chmod 777 a(文件名)

回答3:

去下载
xinetd和tftp-server的rpm安装包.
安装完后就有 /etc/xinetd.d,在根据需要配置tftp

PS:使用tftp可能需要关闭防火墙.
另外,站长团上有产品团购,便宜有保证

回答4:

嵌入式Linux的ftp最常用来完成开发板和开发环境Linux系统之间的的文件传输功能,避免了频繁的U盘拷贝的过程。

回答5:

Ubuntu

sudo apt-get install vsftpd