歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

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這個命令:

  1. fs@ubuntu:~/qiang/tftp$ ifconfig  
  2. eth0      Link encap:Ethernet  HWaddr 00:0c:29:6c:c2:ec    
  3.           inet addr:172.16.58.130  Bcast:172.16.58.255  Mask:255.255.255.0  
  4.           inet6 addr: fe80::20c:29ff:fe6c:c2ec/64 Scope:Link  
  5.           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
  6.           RX packets:337 errors:0 dropped:0 overruns:0 frame:0  
  7.           TX packets:358 errors:0 dropped:0 overruns:0 carrier:0  
  8.           collisions:0 txqueuelen:1000   
  9.           RX bytes:123712 (123.7 KB)  TX bytes:42430 (42.4 KB)  
  10.           Interrupt:19 Base address:0x2024   
  11.   
  12. lo        Link encap:Local Loopback    
  13.           inet addr:127.0.0.1  Mask:255.0.0.0  
  14.           inet6 addr: ::1/128 Scope:Host  
  15.           UP LOOPBACK RUNNING  MTU:16436  Metric:1  
  16.           RX packets:149 errors:0 dropped:0 overruns:0 frame:0  
  17.           TX packets:149 errors:0 dropped:0 overruns:0 carrier:0  
  18.           collisions:0 txqueuelen:0   
  19.           RX bytes:10307 (10.3 KB)  TX bytes:10307 (10.3 KB)  
  20.   
  21. fs@ubuntu:~/qiang/tftp$   

如果ifconfig命令不帶任何參數時,用於顯示當前主機中狀態為“活動”的網絡接口信息;

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

  1. 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

  1. fs@ubuntu:~/qiang/tftp$ cat /etc/network/interfaces   
  2. auto lo  
  3. iface lo inet loopback  
  4.   
  5. auto eth0  
  6. fs@ubuntu:~/qiang/tftp$   

靜態IP

  1. fs@ubuntu:~/qiang/tftp$ cat /etc/network/interfaces   
  2. auto lo  
  3. iface lo inet loopback  
  4.   
  5. auto eth0  
  6. iface eth0 inet static  
  7.     address 192.168.3.51  
  8.     netmask 255.255.0.0  
  9.     gateway 192.168.1.1  
  10. fs@ubuntu:~/qiang/tftp$   


重啟下系統,用ifconfig命令查看IP地址

  1. fs@ubuntu:~$ ifconfig   
  2. eth0      Link encap:Ethernet  HWaddr 00:0c:29:6c:c2:ec    
  3.           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、配置服務器端

  1. 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:

  1. fs@ubuntu:~$ sudo vi /etc/default/tftpd-hpa   
  2. fs@ubuntu:~$ cat /etc/default/tftpd-hpa   
  3. # /etc/default/tftpd-hpa  
  4.   
  5. TFTP_USERNAME="tftp"  
  6. TFTP_DIRECTORY="/home/fs/qiang/tftpd"  
  7. TFTP_ADDRESS="0.0.0.0:69"  
  8. TFTP_OPTIONS="-l-c-s"  
  9. fs@ubuntu:~$   

說明:修改項,其中TFTP_DIRECTORY處可以改為你的tftp-server的根目錄,博主這裡是/home/fs/qiang/tftpd,當然可以改成其他地址,參數 -c 指定了可以創建文件,參數 -s是指定tftpd-hpa服務目錄,上面已經指定;

創建文件夾/home/fs/qiang/tftpd,修改權限,這裡我直接 chmod 777.

3、手動啟動、停止服務

  1. fs@ubuntu:~$ sudo service tftpd-hpa stop  
  2. tftpd-hpa stop/waiting  
  3. fs@ubuntu:~$ sudo service tftpd-hpa start  
  4. tftpd-hpa start/running, process 3041  
  5. fs@ubuntu:~$ sudo service tftpd-hpa status  
  6. tftpd-hpa start/running, process 3041  
  7. fs@ubuntu:~$ sudo service tftpd-hpa restart  
  8. tftpd-hpa stop/waiting  
  9. tftpd-hpa start/running, process 3055  
  10. fs@ubuntu:~$   


4、tftp服務器測試

a、登陸服務器

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

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

b、從tftp服務器下載文件

  1. fs@ubuntu:~/qiang/1$ tftp localhost  
  2. tftp> get qiang  
  3. tftp>   

c、上傳文件到tftp服務器

  1. fs@ubuntu:~/qiang/1$ tftp localhost  
  2. tftp> get qiang  
  3. tftp> put qiang  
  4. tftp>   

d、查看幫助

  1. fs@ubuntu:~/qiang/1$ tftp localhost  
  2. tftp> get qiang  
  3. tftp> put qiang  
  4. tftp> ?  
  5. tftp-hpa 5.2  
  6. Commands may be abbreviated.  Commands are:  
  7.   
  8. connect     connect to remote tftp  
  9. mode        set file transfer mode  
  10. put         send file  
  11. get         receive file  
  12. quit        exit tftp  
  13. verbose     toggle verbose mode  
  14. trace       toggle packet tracing  
  15. literal     toggle literal mode, ignore ':' in file name  
  16. status      show current status  
  17. binary      set mode to octet  
  18. ascii       set mode to netascii  
  19. rexmt       set per-packet transmission timeout  
  20. timeout     set total retransmission timeout  
  21. ?           print help information  
  22. help        print help information  
  23. tftp>   

e、退出登陸

  1. 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

Copyright © Linux教程網 All Rights Reserved