欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > linux >内容正文

linux

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

发布时间:2023/12/9 linux 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Linux下静态IP地址的设置及TFTP服务的搭建 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

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 plaincopy
  • 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 plaincopy
  • 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 plaincopy
  • fs@ubuntu:~/qiang/tftp$ cat /etc/network/interfaces   
  • auto lo  
  • iface lo inet loopback  
  •   
  • auto eth0  
  • fs@ubuntu:~/qiang/tftp$   
  • 静态IP

    [cpp] view plaincopy
  • 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 plaincopy
  • 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 plaincopy
  • 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 plaincopy
  • 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 plaincopy
  • 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 plaincopy
  • fs@ubuntu:~/qiang/1$ tftp localhost  
  • [cpp] view plaincopy
  • fs@ubuntu:~/qiang/1$ tftp <主机IP>  
  • b、从tftp服务器下载文件

    [cpp] view plaincopy
  • fs@ubuntu:~/qiang/1$ tftp localhost  
  • tftp> get qiang  
  • tftp>   
  • c、上传文件到tftp服务器

    [cpp] view plaincopy
  • fs@ubuntu:~/qiang/1$ tftp localhost  
  • tftp> get qiang  
  • tftp> put qiang  
  • tftp>   
  • d、查看帮助

    [cpp] view plaincopy
  • 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 plaincopy
  • 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(文件名)

    总结

    以上是生活随笔为你收集整理的Linux下静态IP地址的设置及TFTP服务的搭建的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。