今天给各位分享ubuntu安装tftp服务器的知识,其中也会对如何安装linux的tftp服务器进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
一、为啥ubuntu要配置tftp和nfs的作用
tftp是FTP服务文件上传用的,NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。
配置tftp
方法一:(推荐方法)Ubuntu10.04测试通过
1.安装TFTP软件
sudo apt-get install tftp-hpa tftpd-hpa
tftp-hpa是客户端,tftpd-hpa是服务器端
2.建立tftpboot目录,作为服务器的目录
sudo mkdir~/tftpboot
释放权限:(服务器目录,需要设置权限为777,chomd 777)
sudo chmod 777~/tftpboot
3.配置TFTP服务器
sudo gedit/etc/default/tftpd-hpa
将原来的内容为:
#/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
#TFTP_DIRECTORY="/var/lib/tftpboot"#修改为自己需要的路径,与上面创建的目录一致
TFTP_ADDRESS="0.0.0.0:69"
#TFTP_OPTIONS="--secure"#可以通过查看mantftpd,看各种参数的意义
#修改为
TFTP_DIRECTORY="/home/shenhao/tftpboot"
TFTP_OPTIONS="-l-c-s"
3.重新启动TFTP服务
sudo service tftpd-hpa restart
4.测试下
$ cd~/tftpboot echo"hello tftp service">>a.txt
$ echo"hello tftp service,put to tftp serive">>b.txt
$ tftp localhost
tftp> get a.txt
tftp> put b.txt
tftp> quit
其中get是取得文件,put是将文件上传到TFTP服务器上。
方法二:
配置tftp服务的步骤:
1、安装相关软件包:tftpd(服务端),tftp(客户端),xid
sudo apt-get install tftpd tftp xid
2、建立配置文件(蓝色的目录是可以更改为其他的,例如/home/user/tftpboot)
在/etc/xid.d/下建立一个配置文件tftp
sudo vi 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
}
保存退出
3、建立tftp服务文件目录(上传文件与文件的位置),并且更改其权限
sudo mkdir/tftpboot
sudu chmod 777/tftpboot
4、重新启动服务
sudo/etc/init.d/xid restart
至此tftp服务已经安装完成了,下面可以对其进行一下测试。(假设在当前目录下有一个测试文件test.txt)
$tftp 192.168.16.2(本机的ip)
tftp> get test.txt
tftp> quit
$
通过get命令,可以把当前目录下的test.txt文件,通过tftp上传到它的服务文件目录。这时,在/tftpboot下面会出现test.txt文件。通过put命令,可以从/tftpboot下,test.txt文件。这样就验证了tftp服务配置的正确*。当文件上传与结束后,可以通过quit命令退出。
严格按照以上步骤配置tftp服务,一般都可以成功。如果出现无法get或者put的时候,可以查看一下防火墙是否关闭。
-----------------------------------------------------------------------------------------------------
配置nfs服务器
在ubuntu下安装、配置nfs服务的步骤如下:
1、安装nfs
Ubuntu上默认是没有安装nfs服务器的,因此我们首先安装nfs服务器端:
$sudo apt-get install nfs-kernel-server
在一些文档中,提出还需要使用apt-get来手动安装nfs的客户端nfs-mon,以及端口映射器portmap,但其实这是没有必要的,因为在安装nfs-kernel-server时,apt会自动为我们把它们安装好。
2、配置/etc/exports
nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。
例如,我们要将根目录下的rootfs目录共享出来,那么我们需要在/etc/exports文件末尾添加如下一行:
/rootfs*(rw,sync,no_root_squash)
其中:/rootfs是要共享的目录,
*代表允许所有的网络段访问,
rw是可读写权限,sync是资料同步写入内存和硬盘,
no_root_squash是nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。
其它nfs常用的参数有:
ro
只读访问
rw读写访问sync所有数据在请求时写入共享
async
nfs在写入数据前可以响应请求
secure
nfs通过1024以下的安全TCP/IP端口发送
insecure
nfs通过1024以上的端口发送
wdelay
如果多个用户要写入nfs目录,则归组写入(默认)
no_wdelay
如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。
hide在nfs共享目录中不共享其子目录
no_hide
共享nfs目录的子目录
subtree_check
如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
no_subtree_check
和上面相对,不检查父目录权限
all_squash
共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
no_all_squash
保留共享文件的UID和GID(默认)
root_squash
root用户的所有请求映射成如anonymous用户一样的权限(默认)
no_root_squas
root用户具有根目录的完全管理访问权限
anonuid=xxx
指定nfs服务器/etc/passwd文件中匿名用户的UID
anongid=xxx
指定nfs服务器/etc/passwd文件中匿名用户的GID
3、重启服务
$sudo/etc/init.d/portmap restart
$sudo/etc/init.d/nfs-kernel-server restart
4、测试nfs
此时可以运行以下命令来显示一下共享出来的目录:
$showmount-e
或者可以使用以下命令把它挂载在本地磁盘上,例如将/rootfs挂载到/mnt下:
$sudo mount-t nfs localhost:/rootfs/mnt
可以运行df命令查看是否挂载成功。查看后可以使用以下命令卸载:
$ sudo umount/mnt
二、如何安装linux的tftp服务器
以下资料来源网上:
fedora下tftp服务器的安装与配置
总结过程如下:
1.tftp服务器、客户端tftp和守护进程xid三个包
yum install xid tftp tftp-server
//xid.i386 2:2.3.14-21.fc10
//tftp-0.49-1.fc10.i386.rpm
//tftp-server-0.49-1.fc10.i386.rpm
2.配置vi/etc/xid.d/tftp
修改server_args=-s/tftpboot-c,这里的-c一定要加上,否则只能不能上传!!!
service tftp
{
disable= no
socket_type= dgram
protocol= udp
wait= yes
user= root
server=/usr/sbin/in.tftpd
server_args=-s/tftpboot-c
per_source= 11
cps= 100 2
flags= IPv4
}
3.关闭防火墙
4.建立tftp工作目录并修改属*(不修改属*会出现error)
cd/
mkdir tftpboot
chmod 777-R/tftpboot/
5.开启服务,上传文件
######################################
我的配置过程中先后顺序和出现的问题如下:
tftp服务客户端tftp和守护进程xid
yum install xid
yum install tftp tftp-server
//xid.i386 2:2.3.14-21.fc10
//tftp-0.49-1.fc10.i386.rpm
//tftp-server-0.49-1.fc10.i386.rpm
关闭防火墙
service xid restart
Stopping xid: [ OK ]
Starting xid: [ OK ]
cd/
mkdir tftpboot
cd tftpboot
cp/etc/inittab/tftpboot/
tftp 172.18.1.90
tftp> get inittab
Transfer timed out.
tftp>quit
[root@localhost tftpboot]# stat-a|grep tftp
[root@localhost tftpboot]# ls
inittab
[root@localhost tftpboot]# touch aaa
[root@localhost tftpboot]# ls
aaa inittab
[root@localhost tftpboot]# tftp 172.18.1.90
tftp> get aaa
Transfer timed out.
tftp> quit
不知何故出现“Transfer timed out.”的错误提示,想想没有修改tftp配置文件:
[root@localhost tftpboot]# cd/etc/xid.d
[root@localhost xid.d]# vi tftp
修改保存:
disable=no
server_args=-s/tftpboot/-c
[root@localhost xid.d]# cd/
[root@localhost/]#/etc/init.d/xid restart
Stopping xid: [ OK ]
Starting xid: [ OK ]
[root@localhost/]# stat-a| grep tftp
udp 0 0*:tftp*:*
[root@localhost/]# tftp 172.18.1.90
tftp> get aaa
Error code 1: File not found
tftp> get inittab
Error code 1: File not found
tftp> quit
错误不一样了,以为需要安装tftpd服务器端,yum install tftpd没有源
但这次想起来新建/tftpboot/目录时候没有对该目录权限进行修改,就一切ok了
[root@localhost/]# chmod 777-R/tftpboot/
[root@localhost/]# tftp 172.18.1.90
tftp> get aaa
tftp> get inittab
tftp> q
[root@localhost/]# ls
aaa boot etc inittab lost+found mnt proc sbin srv tftpboot usr
bin dev home lib media opt root selinux sys tmp var
//根目录出现了aaa和inittab文件,成功!
再来试试上传文件:
[root@localhost/]# cd/tftpboot
[root@localhost tftpboot]# ls
aaa inittab
[root@localhost tftpboot]# rm aaa
rm: remove regular empty file `aaa'? y
[root@localhost tftpboot]# ls
inittab
[root@localhost tftpboot]# tftp 172.18.1.90
tftp> put aaa
tftp: aaa: No such file or directory
tftp> put aaa
tftp: aaa: No such file or directory
tftp> q
[root@localhost tftpboot]# cd/
[root@localhost/]# ls
aaa boot etc inittab lost+found mnt proc sbin srv tftpboot usr
bin dev home lib media opt root selinux sys tmp var
[root@localhost/]# tftp 172.18.1.90
tftp> put aaa
tftp> q
[root@localhost/]# cd/tftpboot
[root@localhost tftpboot]# ls
aaa inittab
上传成功!
上面错误原因就是tftp的执行目录要再根目录下进行,因为默认根目录为当前操作的目录
三、如何将服务器中文件夹或磁盘映射到多台个人电脑实现共享
映射网络驱动器时,每次重启电脑需要映射,让人不厌其烦,后来想到制作一个批处理文件,并设置开机启动,这样就解决了这一问题。
批处理文件命令:
J*a代码
@echooff
useZ:\\IP\shareFile"password"/user:"ftpname"
开机启动设置:
win+R跳出运行对话框;然后输入regedit调出注册表编辑器-依次展开HKEY_LOCAL_MACHINE-SOFTWARE-MICROSOFT-WINDOWS-CURRENTVERSION-RUN在右面新建一个字符串值数据设置为该批处理文件的路径!关闭就OK!!
详情如下:
1.利用批处理文件来自动映射
①首先制作自动映射网络驱动器批处理文件;
②利用Net Use命令,其基本格式如下:
NET USE
[devicename|*] [\\putername\sharename[\volume] [password|*]]
[/USER:[domainname\]username]
[/USER:[dotted domain name\]username]
[/USER:[username@dotted domain name]
[/SMARTCARD]
[/S*ECRED]
[[/DELETE]| [/PERSISTENT:{YES| NO}]]
其中,devicename是映射的盘符,自己定义,比如Z:、Y:等,如果为*,则每次创建都选择一个盘符;putername为所要映射的计算机名称,用其IP也可以;sharename为共享的文件夹;password为连接所需密码;username是连接该计算机的用户名;S*ECRED是否保存用户名和密码;PERSISTENT是否永久连接,YES或NO,示例如下:
@echo off
use z: \\Server\sharefile""/user:"guest"/persistent:no
即映射\\Server\sharefile到Z:盘,用户名为Guest,密码为空
③制作步骤如下:
首先定义一个txt文件,然后修改其扩展名为bat,比如NetMing.bat;接着编辑这个批处理文件,写入如下命令:
@echo off
use z: \\Server\sharefile""/user:"guest"/persistent:no
根据需要修改要连接的计算机名称,共享文件名,登陆用户名和密码,还有定义的盘符。
再接着有几种执行方式,最简单的方式是将这个批处理文件放在“启动”项里,用户每次注销或重启计算机都会自动映射网络驱动器,但是如果Z:映射的已经存在,则不再创建。