tftp协议一般用在PXE启动,常用的有atftp和tftpd-hpa,推荐使用atftp,因为atftp是唯一的免费的符合RFC规范的TFTP服务器。

下载atftp
http://down1.chinaunix.net/distfiles/atftp-0.7.tar.gz

考虑到有的Linux系统没有start-stop-daemon程序,可以自行安装。
下面是安装方法,我的SUSE是有的,因此编译后的程序没有经过测试,不保证正确。

下载start-stop-daemon
http://developer.axis.com/download/distribution/apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz


安装 start-stop-daemon
tar xzvf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.gz
cd apps
gcc –o start-stop-daemon start-stop-daemon.c
cp start-stop-daemon /sbin



安装atftp

如果需要将来的tftp支持pcre参数,需要安装pcre库,因为atftp链接需要。

pcre库主页

http://www.pcre.org/

下载pcre库源代码

http://ftp.osuosl.org/pub/haiku/releases/r1alpha2/sources/libpcre-8.02_haiku-2010-04-29.tar.xz

解压xz文件解压工具

http://tukaani.org/xz/xz-4.999.9beta.tar.bz2

$tar xzvf xz-4.999.9beta.tar.bz2
$./configure --prefix=/opt/gnu/xz

$make

$make install

$ln -s /opt/gnu/bin/xz /bin/xz

$xz -d libpcre-8.02_haiku-2010-04-29.tar.xz

$tar xvf libpcre-8.02_haiku-2010-04-29.tar

$cd pcre-8.02

$ ./configure --prefix=/opt/mathlibs/pcre --enable-pcretest-libreadline --enable-pcregrep-libz --enable-pcregrep-libbz2

$make

$make install

$ln -s /opt/mathlibs/pcre/lib/libpcre.so /lib/libpcre.so

$tar xzvf atftp-0.7.tar.gz
$cd atftp-0.7

因为此软件包比较老,目前比较新的gcc编译会有问题。
为了编译它,需要修改两个文件stats.c和argz.h。

$sed -i '160,161s/CLK_TCK/CLOCKS_PER_SEC/' stats.c
$sed -i '183,197 s/__THROW//' argz.h

$./configure -prefix=/opt/gnu/atftp --enable-libpcre --enable-debug
$make
$make install
$ln -s /opt/gnu/atftp/sbin/atftpd /usr/sbin/atftpd



Xinetd进程启动方式

建立文件/etc/xinetd.d/tftp
$vi  /etc/xinetd.d/tftp

内容如下

service tftp
{
id = tftp-udp
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = nobody
nice = 5
server = /opt/gnu/atftp/sbin/atftpd
server_args = /tftpboot
}
$service xinetd restart
$ps –ef|grep atftpd

我安装此方法配置后启动失败,没找到原因,如果你也是,可以用下面的守护进程启动方式。



独立守护进程启动方式

vi /etc/init.d/atftpd

#! /bin/sh
# Author: linfengfeiye@gmail.com, template by ro@suse.de
# /etc/init.d/atftpd
#
### BEGIN INIT INFO
# Provides:          atftpd
# Required-Start:    $syslog $network
# Required-Stop:    $syslog $network
# Default-Start:     3 5
# Default-Stop:      0 1 2 4 6
# Description:       Launch atftpd server, a TFTP server useful
#                    for network boot (PXE).
### END INIT INFO
# Determine the base and follow a runlevel link name.
base=${0##*/}
link=${base#*[SK][0-9][0-9]}

. /etc/rc.status
rc_reset

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/atftpd
NAME=atftpd
DESC="Advanced TFTP server"
USE_INETD=true
OPTIONS=""

test -f $DAEMON || { echo "/usr/sbin/atftpd not exists"; rc_failed 5; rc_status -v; rc_exit; }

if [ -f /etc/atftpd.conf ]; then
. /etc/atftpd.conf
fi

if [ "$USE_INETD" = "true" ]; then
echo "not configured in dameon,use xinetd to start atftpd"
rc_failed 6
rc_status -v;
rc_exit;
fi

# Make sure we have --daemon when not using inetd
echo "$OPTIONS"|grep -q -- --daemon || OPTIONS="--daemon $OPTIONS"

case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
rc_status -v;
;;

stop)
echo -n "Stopping $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
rc_status -v
;;

restart|reload|force-reload)
echo -n "Restarting $DESC: "
start-stop-daemon --stop --oknodo --quiet --exec $DAEMON
sleep 1
start-stop-daemon --start --oknodo --quiet --exec $DAEMON -- $OPTIONS
rc_status -v
;;

*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
exit 1
rc_status -v
;;

esac
exit 0
rc_exit

守护进程启动方式配置文件


vi /etc/atftpd.conf
USE_INETD=false
OPTIONS="--tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 239.239.239.0-255 --mcast-ttl 1 --maxthread 100 --verbose=5 /tftpboot"



错误:
service atftpd start                                             done
ps –ef|grep atfpd
未启动。
tail /var/log/messages
出现
atftpd: can't bind port :69/udp

解决:
找到/etc/xinetd.d/tftp

disable = yes 修改为 disable = no 后保存

运行  service xinetd restart

atftp 在SUSE Linux中的源代码安装配置方法相关推荐

  1. linux 中关于网络的配置方法

    配置文件 /etc/hosts(本地主机ip地址映射,可以有多个别名). /etc/services(端口号与标准服务之间的对应关系). /etc/sysconfig/network(设置主机名,网关 ...

  2. linux中mongodb的安装配置及基础使用

    mongodb安装包下载链接:https://pan.baidu.com/s/176Gwq4vyczKFIX2T6zaEKA  提取码:ns7l 一:安装mongodb 1:将压缩包上传至指定目录下( ...

  3. xware for linux,Linux版迅雷(Xware)安装配置方法

    Linux版迅雷下载请见:Xware下载 解压下载的压缩包 核对MD5或SHA1校验值 解压得到以下三个文件 安装文件 在/usr/local/下创建thunder文件夹,将上面的三个文件放入,然后运 ...

  4. linux迅雷默认安装目录,Linux版迅雷(Xware)安装配置方法

    Linux版迅雷下载请见:Xware下载 解压下载的压缩包 核对MD5或SHA1校验值 解压得到以下三个文件 安装文件 在/usr/local/下创建thunder文件夹,将上面的三个文件放入,然后运 ...

  5. Linux 多用户远程,suse linux vnc多用户远程桌面配置实战

    在suse linux上如何实现VNC的多用户远程桌面配置呢,我们看下面的实际案例. 一.启动和配置VNC服务 suse linux中一般默认安装了VNC组件包,可以直接进行启动 #vncserver ...

  6. postfix mysql_Linux中Postfix邮件安装配置(二)

    原标题:Linux中Postfix邮件安装配置(二) 本套邮件系统的搭建,从如何发邮件到收邮件到认证到虚拟用户虚拟域以及反病毒和反垃圾邮件等都有详细的介绍.在搭建过程中必须的参数解释以及原理都有告诉, ...

  7. 如何查看虚拟机mysql安装路径_Linux虚拟机下mysql 5.7安装配置方法图文教程

    记录一下Linux虚拟机下MySQL安装配置方法 一. 下载mysql5.7 http://mirrors.sohu.com/mysql/MySQL-5.7/ Linux下载: 输入命令:wget h ...

  8. linux下从git获取有权限的代码,linux下从源代码安装git

    之所以有这样的需求,是因为部分预安装的git版本太低,很多功能没有并且安全性存在问题. 比如git submodule add xxx@host:yyy.git必须在父repo的root目录安装,而新 ...

  9. Linux中常用软件安装

    Linux中常用软件安装 0 软件安装命令 rpm命令 yum命令 1 JDK安装 2 Mysql安装 0 MySQL安装与卸载 (新增于 2021-06-06) 1 卸载 yum方式 rpm方式 2 ...

最新文章

  1. 设计模式-行为-观察者
  2. VS2008 fatal error LNK1000: Internal error during IncrBuildImage 解决方案
  3. Java中的String、StringBuffer、StringBuilder的区别和使用范围
  4. memcache 总结笔记
  5. MyBatisPlus分页
  6. 825. 适龄的朋友
  7. 又一个手机圈大佬确认离职!网友:圈内再无万瓷王
  8. Spring : Spring Aop JDK动态代理调用过程
  9. 常用类中的方法 —— java.util.Map
  10. JAVA对象属性方法的使用
  11. web前端工程师的供求
  12. Linux 实现 Google Authenticator 动态密码 + SSH 密码双重认证
  13. Word frequency program 词频分析程序
  14. 网络投票中的作弊与反作弊
  15. CyanogenMod 7
  16. 01赵玉荣-03安海莹-04郝玥-实训一
  17. 【Cocos2D-X 游戏引擎】初窥门径(4)Touch 事件:移动精灵
  18. 推荐学习方法——费曼技巧,以教促学,教学相长
  19. xy苹果助手未受信任_【安全问题】关于苹果信任问题
  20. 元气骑士(联机版)java合作大作业

热门文章

  1. 使用百度API进行关键点识别
  2. XPE下关闭自动播放功能的方法
  3. Android QQ登录 程序奔溃的问题
  4. Redis Cluster搭建方法简介22211111
  5. 洛谷P2483 Bzoj1975 [SDOI2010]魔法猪学院
  6. 2016.9.24 の 測試
  7. activeMQ相关配置与相关知识
  8. 摘:常用函数(包括:宽字符函数、普通C函数 )
  9. shell编程中特殊字符的问题总结
  10. 百度地图api的密钥申请地址