海思Ubuntu16.04中搭建TFTP 和 NFS 服務器

Ubuntu 16.04中搭建TFTP服務

1. 安裝

  $ apt-get install tftp-hpa tftpd-hpa

 

2. 建立目錄

  $ mkdir /tftpboot # 這是建立tftp傳輸目錄。

  $ sudo chmod 0777 /tftpboot

  $ sudo touch test.txt # test.txt文件最好輸入內容以便區分

   

 

3. 配置/etc/xinetd.conf
  配置相關服務文件。進入根目錄下的 etc 文件夾(cd /etc/),首先看目錄中有沒有一個xinetd.conf 文件,如果沒有則新建一個,有的話查看內容,看是否與下面的一致,若不一致則
修改,內容如下:

  # Simple configuration file for xinetd
  #
  # Some defaults, and include /etc/xinetd.d/

  defaults
  {

  # Please note that you need a log_type line to be able to use log_on_success
  # and log_on_failure. The default is the following :
  # log_type = SYSLOG daemon info

  }

  includedir /etc/xinetd.d

  

 

4. 配置

  # vi /etc/default/tftpd-hpa

  TFTP_USERNAME="tftp"

  TFTP_DIRECTORY="/tftpboot" # 這裏是你的tftpd-hpa的服務目錄,這個想建立在哪裏都行

  TFTP_ADDRESS="0.0.0.0:69"

  TFTP_OPTIONS="-l -c -s" # 這裏是選項,-c是可以上傳文件的參數,-s是指定tftpd-hpa服務目錄,上面已經指定

  

 

5. 配置/etc/xinetd.d/tftp
  然後進入 xinetd.d 文件夾(cd xinetd.d),查看是否有一個 tftp 文件,如果沒有就新建一個,如果有的話就查看內容是否與下面的一致,不一致則修改,內容如下:
  service tftp
  {
  socket_type = dgram
  wait = yes
  disable = no
  user = root
  protocol = udp
  server = /usr/sbin/in.tftpd
  server_args = -s /tftpboot
  #log_on_success += PID HOST DURATION
  #log_on_failure += HOST
  per_source = 11
  cps =100 2
  flags =IPv4

  }

  

 

6. 重啓服務

  重新啓動服務。sudo service tftpd-hpa restart,這也是我經常疏忽的一步,當配置好 tftp 的配置文件後,需要重新啓動一下 xinetd,在終端中輸入 sudo /etc/init.d/xinetd reload,重新加載一下進程,再輸入 sudo /etc/init.d/xinetd restart,重啓服務。記住,每次修改完配置文件後,都需要重新啓動一下服務。
執行次序:

  $ sudo service tftpd-hpa restart
  $ sudo /etc/init.d/xinetd reload
  $ sudo /etc/init.d/xinetd restart

 

7. 測試

  # cd /home

  # tftp localhost  #localhost 表示本機

  tftp>get test.txt  //test.txt 是之前在 /tftpboot 目錄下新建的文件

  tftp>put test1.txt //test1.txt 是在 /home 目錄下新建的文件

  tftp>q

  退出後,在/home目錄下會有一個test.txt文件,在/tftpboot 目錄下有test1.txt,表示tftp服務器安裝成功!

  

 

回到頂部

ubuntu 16.04 中搭建NFS服務

  nfs服務是實現Linux和Linux之間的文件共享,nfs服務的搭建比較簡單。現在介紹如何在ubuntu16.04系統中搭建nfs服務,ubuntu的搭建比紅帽的還要簡單。

1、安裝nfs服務

  • $ sudo apt-get install nfs-kernel-server
  • $ sudo apt-get install nfs-common

2、修改配置文件

  1、sudo vim /etc/exports

  • 修改內容如下:
  • /root/rootfs *(rw,sync,no_root_squash,no_subtree_check)

  

  • 各段表達的意思如下,根據實際進行修改
  • 複製代碼
  • /home :共享的目錄
  • * :指定哪些用戶可以訪問
  • * 所有可以ping同該主機的用戶
  • 192.168.1.* 指定網段,在該網段中的用戶可以掛載
  • 192.168.1.12 只有該用戶能掛載
  • (ro,sync,no_root_squash): 權限
  • ro : 只讀
  • rw : 讀寫
  • sync : 同步
  • no_root_squash: 不降低root用戶的權限
  • 其他選項man 5 exports 查看
  • 複製代碼

  2、更改文件夾的訪問權限:chmod 777 -R /root/rootfs/rootfs

  3、在終端執行:showmount -e

  4、更新:exportfs -r

  5、重啓本地網卡:showmount localhost -e

  6、掛在目錄到本地:mount -t nfs -o nolock 192.168.1.141:/root/rootfs/rootfs /opt

3、開發板下載文件

  在開發板的命令行中輸入
    tftp -l a.txt -r a.txt -g 192.168.1.21 69
    參數說明:-l    是local的縮寫,後跟本地或下載到本地後重命名的文件名。    
           -r    是remote的縮寫,後跟遠程即PC機tftp服務器根目錄中的文件名,或上傳到PC機後重命名後的文件名。
           -g    是get的縮寫,下載文件時用,後跟PC機的IP地址
           -p    是put的縮寫,上傳文件時用,後跟PC機的IP地址
                 tftp 默認佔用的是69端口。
  注意:下載或上傳文件時,文件名最好相同,否則會出現得到了文件,但文件大小卻是 0k 的尷尬現象。如果出現了這種現象,請多敲幾次命令,在 -l   -r  和 -g 前面多放幾個空格,例如
    tftp  -l a.txt  -r a.txt  -g 192.168.1.21 69
  默認下載到開發板的當前目錄。
  上傳文件:將開發板當前目錄的某個文件上傳到tftp服務器根目錄。
  命令:      tftp -l a.txt -r a.txt -p 192.168.1.21 69
  當然我們假設tftp服務器根目錄不存在a.txt這個文件,當運行這個命令後,就會在tftp服務器根目錄中發現這個文件。
 


4、重啓nfs服務

  sudo /etc/init.d/nfs-kernel-server restart
  到此,nfs的服務就搭建好了。

 

下面介紹客戶端如何訪問服務器

  1、檢查客戶端和服務端的網絡是否連通(ping命令)

    ping + 主機IP

  2、查看服務端的共享目錄

    showmount -e + 主機IP

    showmount -e 192.168.1.93
    Export list for 192.168.1.93:
    /home *
  3、將該目錄掛載到本地

    mount -t nfs -o nolock 192.168.1.141:/root/rootfs/rootfs  /opt

    /root/rootfs/rootfs:目標主機(192.168.1.141)的nfs共享目錄;

    /opt:本地的nfs共享目錄;

4、訪問

    訪問本地的mnt目錄,就可訪問服務端共享的目錄了。