FTP和TFTP是我们经常使用的文件传输协议。在Linux中,sftp协议由于其安全性的优点,被作为默认的链接协议。但是,一些场合下,我们依然需要使用ftp和tftp协议进行文件传输。本篇主要介绍配置方法,供有需要的朋友待查。
--------------------------------------分割线 --------------------------------------
相关阅读:
Ubuntu下tftp服务搭建
Ubuntu 12.04 搭建tftp服务器的安装、设置、调试
--------------------------------------分割线 --------------------------------------
1、 环境准备
我们选择Linux 2.6内核进行测试。
[root@SimpleLinuxUp ~]# uname -r
2.6.18-128.el5
当前OS运行在level 3模式下。
[root@SimpleLinuxUp ~]# grep init /etc/inittab
# inittab This file describes how the INIT process should set up
# 0 - halt (Do NOT set initdefault to this)
# 6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
默认情况下,tftp服务器包是安装上的,而FTP服务器没有安装。
[root@SimpleLinuxUp Server]# rpm -qa | grep ftp
tftp-server-0.42-3.1
ftp-0.17-35.el5
lftp-3.5.1-2.fc6
2、TFTP服务器安装配置
TFTP是一种比较特殊的文件传输协议。相对于FTP和目前经常使用的SFTP,TFTP是基于TCP/IP协议簇,用于进行简单文件传输,提供简单、低开销的传输服务。TFTP的端口设置为69。
相对于常见的FTP,TFTP有两个比较好的优势:
ü TFTP基于UDP协议,如果环境中没有TCP协议,是比较合适的;
ü TFTP执行和代码占用内存量比较小;
默认情况下,Linux内部是安装了tftp服务器包的。但是默认是不启动的。
[root@SimpleLinuxUp ~]# chkconfig --list tftp
tftp off
启用和禁用tftp服务是通过配置文件/etc/xinetd.d/tftp,将其中参数设置。
[root@SimpleLinuxUp ~]# vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
配置文件中,将disable默认值从yes改为no。适当修改server_args参数,主要是其中的tftp根目录地址。
Tftp服务是不需要单独启动的,是作为xinetd服务的一个附属对象连带启动。
[root@SimpleLinuxUp ~]# service xinetd status
xinetd (pid 2194) is running...
[root@SimpleLinuxUp ~]# cd /
[root@SimpleLinuxUp /]# mkdir /tftpboot
mkdir: cannot create directory `/tftpboot': File exists
[root@SimpleLinuxUp /]# cd /tftpboot/
[root@SimpleLinuxUp tftpboot]# cd ..
[root@SimpleLinuxUp /]# chmod -R 777 /tftpboot/
由于连接使用UDP端口,我们将防火墙和SELinux配置关闭。
[root@SimpleLinuxUp /]# service iptables stop
[root@SimpleLinuxUp /]# service iptables status
Firewall is stopped.
对xinetd服务重启,连带将tftp服务启动。
[root@SimpleLinuxUp /]# service xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
[root@SimpleLinuxUp /]# chkconfig --list tftp
tftp on
使用netstat判断UDP端口开启。
[root@SimpleLinuxUp /]# netstat -nlp | grep udp