linux下tftp使用

来源:互联网 发布:罗京 艾滋 知乎 编辑:程序博客网 时间:2024/05/16 06:35

Ubuntu13.04上tftp服务的配置


 下面第一种方法是以前可行的方法,新版不的ubuntu下相同 的设置却不管用。
1、安装:tftp,tftpd,xinetd 

2、配置/etc/xinetd.d/tftp文件(没有可自行创建),内容如下:

service tftp {

socket_type = dgram

protocol = udp

wait = yes

user = root

server = /usr/sbin/in.tftpd

server_args = -s /var/tftp -c

disable = no

per_source = 11

cps = 1002

flags = IPv4

3、设置工作目录/var/tftp权限 $ sudo chmod -R 777 /var/tftp 
4、重新启动服务

$ sudo /etc/init.d/xinetd restart 

通过netstat -a | grep tftp测试服务已经开启

5、通过tftp的get和put进行测试: 

$ tftp localhost 

tftp> get xx 

tftp> put yy

 
可是测试不成功,不是Transfer timed out.就是Access violation.

有人说是tftp与tftpd的版本不一样造成的,如果把版本改成一致就可以了,我没有测试过,读者有兴趣可以试试。


======================= 
正确的配置方法如下:
 

1、安装:tftp-hpa,tftpd-hpa,xinetd

2、配置/etc/default/tftpd-hpa,内容如下:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="--secure -c"
说明:第二项改成你自己定义的tftp工作目录路径;第四项添加一个“-s”参数以便运行执行put操作(--secure等同于-s; -c等同与--create) 
3、设置工作目录/tftpboot权限 $ sudo chmod -R 777 /tftpboot 
4、重新启动服务
$ sudo /etc/init.d/tftpd-hpa restart 
5、通过tftp的get和put进行测试:

 $ tftp localhost 

tftp> get xx 

tftp> put yy
 

如果电脑有两个网卡,网卡A能上外网,网卡B连arm开发板,如果想要PC能上网,还能让arm通过网络从PC下载文件,我是这样实现的。

PC系统:ubuntu

网卡A IP:192.168.1.196(通过路由DHCP自动获取)

网卡B IP:192.168.1.10(手动设置静态IP)

arm开发板ipaddr:192.168.1.20(开发板上的默认静态IP,也可手动设置为同一网段的不同IP)

arm开发板serverip:192.168.1.196(此条是关键,只有设为网卡A的IP才能通过tftp下载)

arm开发板的网关:随意,此处暂时用不到,默认就可以


同样的情况,用nfs挂载的时候也是要 mount -t nfs -o nolock 192.168.1.196:/armnfs /mnt/nfs/

其中-o nolock必须要加,不然无法挂载,搞了一上午才挂载上去。


原创粉丝点击