- 论坛徽章:
- 0
|
tftp,ftp和nfs是在嵌入式linux开发环境中经常要用到的传输工具,samba则是在linux和windows下的文件传输工具。
一. tftp安装
1.安装
sudo apt-get install tftpd tftp openbsd-inetd
2.建立tftp主目录
其中用户名和组是你平时使用的主要用户,请不要用root用户作为你的主要操作用户,因为那样很容易把系统搞乱。
sudo mkdir /tftpboot
sudo chown -R tan:tan /tftpboot
3.配置
修改文件:/etc/inetd.conf, 确认文件中包含有类似下面这一行内容:
#emacs /etc/inetd.conf
tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot
4.启动tftp
可以重启动电脑,或者执行:
sudo /etc/init.d/openbsd-inetd reload
5.测试
测试从Tftp服务器传入/传出文件:
tftp localhost
二. ftp安装
1.安装
sudo apt-get install vsftpd
2.配置 修改文件“etc/vsftpd.conf”
#不允许匿名登录
anonymous_enable=NO
#本地用户可用
local_enable=YES
#可写
write_enable=YES
#不需要显示某目录下文件信息
#dirmessage_enable=YES
#登录消息
ftpd_banner=Hello~~
#最大连接用户数
max_clients=10
#限制每个IP的进程
max_per_ip=5
#最大传输速率(bit/s)
local_max_rate=256000
#隐藏帐号
hide_ids=YES
3.启动ftp
sudo /etc/init.d/vsftpd restart
4.安装ftp client
系统自带的ftp client中文乱码。
sudo apt-get install filezilla
三. samba安装
1.安装
sudo apt-get install samba smbfs
2.配置
修改文件“/etc/samba/smb.conf”
配置例子(建立一个共享名称为“share”的samba资源):
[share]
comment = linux share
#共享目录
path = /opt
guest ok = yes
#写权限用户名
write list = tan
printable = no
directory mask 0775
create mask 0775
wide links = no
3.写权限用户口令
如果定义了写特权用户,则该用户必须有samba口令,samba口令与系统用户口令是不同的。
smbpasswd -a 用户名
4.启动
sudo /etc/init.d/samba restart
5.在xp上的共享连接问题处理
在XP上连接samba资源时,出现以下提示的处理:
指定的网络文件夹目前是以其它用户名和密码进行映射的。
要用其他用户名和密码进行连接,首先请断开所有现有连接到该网络共享的映射。
处理:
断开连接
找到该共享连接名称
net use
删除该连接(共享连接名可以是“”“开头的全名,也可以是映射的盘符)
net use /delete
然后重新连接即可。
四. NFS
NFS(Network File System, 网络文件系统)可以通过网络将分享不同主机(不同的OS)的目录——可以通过NFS挂载远程主机的目录, 访问该目录就像访问本地目录一样!
一般而言, 使用nfs能够方便地使各unix-like系统之间实现共享. 但如果需要在unix-like和windows系统之间共享, 就得使用samba了!
NFS运行在SUN的RPC(Remote Procedure Call, 远程过程调用)基础上, RPC定义了一种与系统无关的方法来实现进程间通信. 由此, NFS server也可以看作是RPC server.
正因为NFS是一个RPC服务程序, 所以在使用它之前, 先要映射好端口——通过portmap设定. 比如: 某个NFS client发起NFS服务请求时, 它需要先得到一个端口(port). 所以它先通过portmap得到port number. (不仅NFS, 所有的RPC服务程序启动之前, 都需要设定好portmap)
与NFS相关的几个文件, 命令:
1. /etc/exports
对NFS卷的访问是由exports来批准, 它枚举了若干有权访问NFS服务器上文件系统的主机名.
2. /sbin/exportfs
维护NFS的资源共享. 可以通过它重新设定 /etc/exports 的共享目录, 卸载NFS Server共享的目录或者重新共享等.
3. /usr/sbin/showmount
用在 NFS Server 端,而 showmount 则主要用在 Client 端. showmount 可以用來查看 NFS 共享的目录资源.
4. /var/lib/nfs/xtab
NFS的记录文档: 通过它可以查看有哪些Client 连接到NFS主机的记录.
下面这几个并不直接负责NFS, 实际上它们负责所有的RPC
5. /etc/default/portmap
实际上, portmap负责映射所有的RPC服务端口, 它的内容非常非常之简单(后面详述)
6. /etc/hosts.deny
设定拒绝portmap服务的主机
7. /etc/hosts.allow
设定允许portmap服务的主机
安装NFS
Debian/Ubuntu上默认是没有安装NFS服务器的,首先要安装NFS服务程序:
sudo apt-get install nfs-kernel-server
安装nfs-kernel-server时,apt会自动安装nfs-common和portmap,服务端和客户程序都一块安装了。
客户端需要安装客户端程序。如果是Debian/Ubuntu系统,客户端包名称是“nfs-common”:
sudo apt-get install nfs-commmon
nfs-common和nfs-kernel-server都依赖于portmap!
配置NFS
配置portmap
方法1: 编辑/etc/default/portmap, 将 -i 127.0.0.1 去掉.
方法2: 执行
sudo dpkg-reconfigure portmap
对Should portmap be bound to the loopback address? 选N.
配置/etc/hosts.deny
(禁止任何host(主机)能和你的NFS服务器进行NFS连接),加入:
### NFS DAEMONS
portmap:ALL
lockd:ALL
mountd:ALL
rquotad:ALL
statd:ALL
配 置/etc/hosts.allow
允许那些你想要的主机和你的NFS服务器建立连接。下列步骤将允许任何IP地址以192.168.2开头的主机(连 接到NFS服务器上),也可以指定特定的IP地址。参看man页 hosts_access(5), hosts_options(5)。加入:
### NFS DAEMONS
portmap: 192.168.2.
lockd: 192.168.2.
rquotad: 192.168.2.
mountd: 192.168.2.
statd: 192.168.2.
/etc/hosts.deny 和 /etc/hosts.allow 设置对portmap的访问. 采用这两个配置文件有点类似”mask”的意思. 现在/etc/hosts.deny中禁止所有用户对portmap的访问. 再在/etc/hosts.allow 中允许某些用户对portmap的访问. 运行
sudo /etc/init.d/portmap restart
重启portmap daemon.
配置/etc/exports
NFS挂载目录及权限由/etc/exports文件定义
比如我要将将我的home目录中的/home/zp/share目录让192.168.2.*的IP共享, 则在该文件末尾添加下列语句:
/home/zp/share 192.168.2.*(rw,sync,no_root_squash)
或者:
/home/zp/share 192.168.2.0/24(rw,sync,no_root_squash)
192.168.2.* 网段内的NFS客户端能够共享NFS服务器/home/zp/share目录内容.且有读,写权限, 并且该用户进入/home/zp/share目录后的身份为root
最好加上sync, 否则 “sudo exportfs -r” 时会给出警告, sync是NFS的默认选项.
运行
showmount -e
查看NFS server的export list.
若更改了/etc/exports, 运行
sudo exportfs -r
更新
运行
sudo /etc/init.d/nfs-kernel-server restart
重启nfs服务
/etc/exports实际上就是nfs服务器的核心配置文件了.
测试NFS
可以尝试一下挂载本地磁盘(假设NFS服务器IP地址为:192.128.2.1,NFS目录为“/home/zp/share”)
sudo mount 192.168.2.1:/home/zp/share /mnt
运行
df
看看结果.
卸载NFS目录
sudo umount /mnt
注意被拷贝文件的读/写权限!
另外, 可以使用一定的参数:
使用加参数的办法:
mount -o nolock,rsize=1024,wsize=1024,timeo=15 192.168.2.130:/tmp/ /tmp/
--EOF--
Categories:
Embedded
,
Tech.Notes
Tags:
Embedded
,
ftp
,
Linux
,
nfs
,
samba
,
tftp
Related
Pthread创建线程后必须使用join或detach释放线程资源
Google发布免费DNS解析服务
vim 快速查找
[Kernel] Debian-ubuntu-kernel-install
The Kernel Newbie Corner 系列文章 By: Robert P. J. Day
IGMPv3 Multicasting Linux MRouter with XORP How-to on Ubuntu
linux-2.6.30 with gcc-3.4.6 compile error
IGMP协议学习笔记(一)
Linux Kernel 2.6.x SCTP FWD Memory COrruption Remote Exploit
利用SSH实现加密代理
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/108757/showart_2133275.html |
|