您的位置:首页 > 运维架构 > Linux

Linux下静态IP地址的设置及TFTP服务的搭建

2016-06-19 10:45 393 查看
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP承载在UDP上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。

一、在谈TFTP之前,先简单讲一下Linux网络配置,网络中最重要的当然是IP地址了,这里不讲IP协议,在后面的网络编程再讲解,这里主要学习一下Linux下配置IP,配置IP地址的方法有两种:

1、配置静态IP:在主机进入网络之前,事先未主机设置固定的IP地址;

2、配置动态IP:选择DHCP网络服务,在主机进行网络之后,动态的随机获取IP地址;

当然,大家都知道ifconfig这个命令:

[cpp] view
plain copy







fs@ubuntu:~/qiang/tftp$ ifconfig

eth0 Link encap:Ethernet HWaddr 00:0c:29:6c:c2:ec

inet addr:172.16.58.130 Bcast:172.16.58.255 Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe6c:c2ec/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:337 errors:0 dropped:0 overruns:0 frame:0

TX packets:358 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:123712 (123.7 KB) TX bytes:42430 (42.4 KB)

Interrupt:19 Base address:0x2024

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:149 errors:0 dropped:0 overruns:0 frame:0

TX packets:149 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:10307 (10.3 KB) TX bytes:10307 (10.3 KB)

fs@ubuntu:~/qiang/tftp$

如果ifconfig命令不带任何参数时,用于显示当前主机中状态为“活动”的网络接口信息;

当然,ifconfig命令可以修改IP地址:

[cpp] view
plain copy







fs@ubuntu:~/qiang/tftp$ sudo ifconfig eth0 192.168.3.51

但是这是动态的修改IP地址,重启以后,IP地址又变回原来的静态IP地址;

修改IP地址除了可以在图形界面中修改,也可以在配置文件中修改,这才是Linux的特性!无论是配置静态IP还是动态IP,计算机系统将IP信息保存在什么地方呢?

答案是配置文件 "/etc/network/interfaces".在UBuntu Linux 启动时就能获得IP地址的配置信息。若是配置静态IP。就从配置文件中读取IP地址参数,直接配置网络接口设备;若是配置动态IP,就通知主机通过DHCP协议获取网络配置。

以下分别为配置静态IP和动态IP时,配置文件"/etc/network/interfaces"的实例:

动态IP

[cpp] view
plain copy







fs@ubuntu:~/qiang/tftp$ cat /etc/network/interfaces

auto lo

iface lo inet loopback

auto eth0

fs@ubuntu:~/qiang/tftp$

静态IP

[cpp] view
plain copy







fs@ubuntu:~/qiang/tftp$ cat /etc/network/interfaces

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet static

address 192.168.3.51

netmask 255.255.0.0

gateway 192.168.1.1

fs@ubuntu:~/qiang/tftp$

重启下系统,用ifconfig命令查看IP地址

[cpp] view
plain copy







fs@ubuntu:~$ ifconfig

eth0 Link encap:Ethernet HWaddr 00:0c:29:6c:c2:ec

inet addr:192.168.3.51 Bcast:192.168.255.255 Mask:255.255.0.0

明显看到IP地址依然是我们静态修改过的IP地址。

注意:

1、若不能访问外网: ping 不通114.114.114.114

解决方法: sudo route add default gw 192.168.1.1

2、若不能访问域名: ping 不通baidu.com

解决方法:

1)-- sudo vi /etc/resolv.conf

2) -- 添加 nameserver 114.114.114.114

当然Linux网路配置还包括Route 、DNS等,这里先不详细介绍,下面进入我们的

二、TFTP环境的搭建:

我的Linux版本是Ubuntu,下面是配置过程:

1、配置服务器端

[cpp] view
plain copy







fs@ubuntu:~$ sudo apt-get install tftp-hpa thtpd-hpa

这里是因为我们再同一台机器上操作的,在实际使用中,一般是

Client :PC 安装tftp-hpa

Server :ARM 安装tftpd-hpa

后面的 tftp <IP> 此处的IP地址应该是ARM的IP地址。

2、修改配置文件

在/etc/default下修改tftp服务的配置文件tftpd-hpa:

[cpp] view
plain copy







fs@ubuntu:~$ sudo vi /etc/default/tftpd-hpa

fs@ubuntu:~$ cat /etc/default/tftpd-hpa

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

TFTP_DIRECTORY="/home/fs/qiang/tftpd"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l-c-s"

fs@ubuntu:~$

说明:修改项,其中TFTP_DIRECTORY处可以改为你的tftp-server的根目录,博主这里是/home/fs/qiang/tftpd,当然可以改成其他地址,参数 -c 指定了可以创建文件,参数 -s是指定tftpd-hpa服务目录,上面已经指定;

创建文件夹/home/fs/qiang/tftpd,修改权限,这里我直接 chmod 777.

3、手动启动、停止服务

[cpp] view
plain copy







fs@ubuntu:~$ sudo service tftpd-hpa stop

tftpd-hpa stop/waiting

fs@ubuntu:~$ sudo service tftpd-hpa start

tftpd-hpa start/running, process 3041

fs@ubuntu:~$ sudo service tftpd-hpa status

tftpd-hpa start/running, process 3041

fs@ubuntu:~$ sudo service tftpd-hpa restart

tftpd-hpa stop/waiting

tftpd-hpa start/running, process 3055

fs@ubuntu:~$

4、tftp服务器测试

a、登陆服务器

[cpp] view
plain copy







fs@ubuntu:~/qiang/1$ tftp localhost



[cpp] view
plain copy







fs@ubuntu:~/qiang/1$ tftp <主机IP>

b、从tftp服务器下载文件

[cpp] view
plain copy







fs@ubuntu:~/qiang/1$ tftp localhost

tftp> get qiang

tftp>

c、上传文件到tftp服务器

[cpp] view
plain copy







fs@ubuntu:~/qiang/1$ tftp localhost

tftp> get qiang

tftp> put qiang

tftp>

d、查看帮助

[cpp] view
plain copy







fs@ubuntu:~/qiang/1$ tftp localhost

tftp> get qiang

tftp> put qiang

tftp> ?

tftp-hpa 5.2

Commands may be abbreviated. Commands are:

connect connect to remote tftp

mode set file transfer mode

put send file

get receive file

quit exit tftp

verbose toggle verbose mode

trace toggle packet tracing

literal toggle literal mode, ignore ':' in file name

status show current status

binary set mode to octet

ascii set mode to netascii

rexmt set per-packet transmission timeout

timeout set total retransmission timeout

? print help information

help print help information

tftp>

e、退出登陆

[cpp] view
plain copy







tftp> q

这里将大家容易出现的错误以及解决方法介绍给大家:

出现的一些问题及原因(解决方法):

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

TFTP_OPTIONS="-l -c -s",中的选项注意一下,是否没 -c

5、Error code 2:Access violation

上传的文件要有相应的可读写(覆盖)的权限才能上传,要对文件的权限进行修改 chmod 777 a(文件名)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: