搬磚頭

          Knocking on Heaven's Door
          posts - 34, comments - 6, trackbacks - 0, articles - 0

          嵌入式linux的tftp安裝配置 (zt)

          Posted on 2007-07-24 23:57 生活在別處 閱讀(10014) 評論(0)  編輯  收藏 所屬分類: Unix
          TFTP是用來下載遠程文件的最簡單網絡協議,它基于UDP協議而實現。嵌入式linux的tftp開發環境包括兩個方面:一是嵌入式linux宿主機的 tftp-server支持,二是嵌入式linux目標機的tftp-client支持。因為u-boot本身內置支持tftp-client,所以嵌入式目標機就不用配置了。下面就詳細介紹一下linux宿主機tftp-server的安裝配置。

          在FC6光盤的ISO鏡像中,有tftp-server的rpm安裝包。
          (1)安裝
          #mount -o loop <FC6光盤ISO鏡像.iso> /mnt/CD //掛載光盤
          #rpm -ivh tftp-0.42-3.1.i386.rpm //安裝tftp-client
          #rpm -ivh tftp-server-0.42-3.1.i386.rpm //安裝tftp-server
          #umount /mnt/CD //卸載光盤

          (2)修改文件
          在linux 下,不管使用的是哪一種super-server,inetd或者xinetd,默認情況下TFTP服務是禁用的,所以要修改文件來開啟服務。根據(1)的安裝方法,可以修改文件/etc/xinetd.d/tftp。主要是設置TFTP服務器的根目錄,開啟服務。修改后的文件如下:

          service tftp
          {
          socket_type = dgram
          protocol = udp
          wait = yes
          user = root
          server = /usr/sbin/in.tftpd
          server_args = -s /tftpboot
          disable = no
          per_source = 11
          cps = 100 2
          flags = IPv4
          }

          說明:修改項server_args= -s <path> -c,其中<path>處可以改為你的tftp-server的根目錄,參數-s指定chroot。

          (3)創建tftp根目錄,啟動tftp-server。
          #mkdir /tftpboot
          #chmod o+w /tftpboot
          #service xinetd restart
          這樣,tftp-server就啟動了。

          (4)配置防火墻
          TFTP (Trivial File Transfer Protocol),中譯簡單文件傳輸協議或小型文件傳輸協議. 大家一定記得在2003年8月12日全球爆發沖擊波(Worm.Blaster)病毒,這種病毒會監聽端口69,模擬出一個TFTP服務器,并啟動一個攻擊傳播線程,不斷地隨機生成攻擊地址,進行入侵。另外tftp被認為是一種不安全的協議而將其關閉,同時也是防火墻打擊的對象,這也是有道理的。tftp 在嵌入式linux還是有用武之地的。
          打開防火墻,允許tftp訪問網絡。
          [root@localhost /]# setup
          Firewall configuration--> Customize--other port 處:69:udp,保存就可以了。

          你可以登陸本機測試以下,命令如下:
          #tftp your-ip-address
          tftp>get <download file>
          tftp>put <upload file>
          tftp>q
          #
           

          ================整理====================

          ########################################################
          安裝過程中出現的問題及原因
          現象一:
              tftp> get test.log
              Transfer timed out.
          原因:
              tftpd服務沒有啟動


          現象二:
              tftp> get test.log
              Error code 2: Only absolute filenames allowed
          原因:
              在/etc/xinetd.d/tftpd中設置的server_args為/etc/default/tftpd-hpa
              cat /etc/default/tftpd-hpa
              #Defaults for tftpd-hpa
              RUN_DAEMON="no"
              OPTIONS="-s /home/tftpd -c -p -U 077 -u tftpd"
          ps:實際根本就不用/etc/default/tftpd-hpa文件,它應該是用在standalone模式下的


          現象三:
              tftp> put ex070416.log
              Error code 1: File not found
          原因:
              指定的文件不存在;或tftpd啟動參數中沒有指定-c選項,允許上傳文件

          ########################################################
          其它常用選項如下:
          -l        使用standalone模式運行,此模式下,將會忽略-t選項
          -a address:port    在standalone模式下服務所在的IP與端口,如果不指定,則在本機所有IP,/etc/service中指定的port上偵聽連接
          -c         允許在服務器上新建文件,否則只允許更新現有的文件。如果未指定-U或-p選項,則允許任何人上傳文件
          -s directory    服務器端默認的目錄,默認為/var/lib/tftpdboot
          -u username    tftpd服務以什么身份運行,默認是nobody,一般可以新建一個tftpd的賬號來運行
          -U umask    上傳的文件的掩碼,如果未指定-p則為000,如果指定了-p,則采用指定的umask
          -p        對于通過-u指定的用戶執行的動作,不做額外的權限檢查

          更多權限請見man tftpd。

          主站蜘蛛池模板: 峡江县| 大竹县| 天柱县| 五家渠市| 武穴市| 石渠县| 德格县| 黄平县| 邢台县| 拜城县| 盐边县| 蓬莱市| 化德县| 高陵县| 平度市| 磴口县| 定结县| 嘉善县| 基隆市| 泌阳县| 扶风县| 无锡市| 安康市| 多伦县| 鄱阳县| 天台县| 博爱县| 尼木县| 宁夏| 林芝县| 连城县| 宁都县| 崇州市| 许昌县| 枝江市| 平阴县| 甘南县| 交口县| 兴仁县| 沙洋县| 高平市|