摘要:本文介绍linux下的几种网络共享文件的传输:NFS、Samba、FTP及基于SSH传输协议的sftp。这里仅介绍如何使用已有共享资源,对于服务器的配置暂不介绍。
1、linux间的网络硬盘:NFS。
NFS目前只用于在linux和UNIX主机间共享文件系统。通过NFS可以方便地将一台linux(或者UNIX)主机上的文件系统挂载到本地。当然,这要求对方主机开启了NFS服务器,并对共享的文件系统做了相关的设置。
(1)如何安装NFS文件系统呢?
与安装本地文件系统一样,区别在于需要给mount命令指定一个远程主机名(或者IP地址)。
例:sudo mount 192.168.1.111:/default /mnt #将主机192.168.1.111上导出的/default安装到mnt目录下
安装成功之后就可以像使用本地文件一样使用它了,如果安装失败的话,可能是因为服务器端的NFS服务器没有正确导出这个目录,可以使用带-e选项的showmount查看服务器端导出的目录。
例:showmount -e 192.168.1.111 #查看主机192.168.1.111导出的目录
(2)在安装文件系统时,我们可以选择合适的安装选项来对文件系统进行安装:
在默认情况下,mount命令会根据NFS服务器上的设置,选择合适的安装选项。如果确定NFS服务器以可写方式导出了这个文件系统,那么可以使用-o选项配合rw标志,明确以可读写方式安装这个文件系统。
例:sudo mount -o rw 192.168.1.111:/default /mnt #以可读写方式挂载
注意:rw标志实际上是“推荐”mount命令用可读写方式安装文件系统。如果NFS服务器上的设置是不允许外部可写,那么mount会自动选择以只读方式安装。
常用的 NFS安装标志有:
rw:以可读写方式安装文件系统。
ro:以只读方式安装文件系统。
bg:如果安装失败,那么在后台继续发送安装请求。
hard:“硬安装”方式。如果服务器没有响应,那么暂时挂起对服务器的访问,直到服务器恢复。
soft:“软安装”方式。如果服务器没有响应,那么返回一条出错信息,并中断正在执行的操作。
intr:允许用户中断某项操作,并返回一条错误信息。
nointr:不允许用户中断。
timeo=n:请求的超时时间。n以十分之一秒为单位。
tcp:使用TCP协议传输文件(默认选择UDP)
async:要求服务器在实际写磁盘之前就回应客户机的写请求。
“硬安装”是mount命令的默认安装方式,使用这种安装方式有助于NFS传输的稳定。如果因为网络原因使某个程序的传输暂时被阻塞,那么客户机还会继续等待,直到传输恢复正常。与此相对,“软安装”时,一次短暂的故障就可能毁掉几个小时的劳动成果。但如果用户正在和一台不那么重要的NFS服务器打交道,那么soft标志有助于避免把时间浪费在无谓的等待上。
intr允许用户在发现某项操作没有回应的时候中断它,通常,给“硬安装”方式配合intr标志是一种比“软安装”更好的方式,这样既可以保证重要操作不会被意外中断,又能让用户在适当的时候中断某项操作。
使用逗号分隔多个不同的选项。下面这条命令以可读写、硬安装、可中断、后台重试安装请求的方式安装远程NFS文件系统。
例:sudo mount -o rw,hard,intr,bg 192.168.1.111:/default /mnt
(3)卸载文件系统:与本地文件系统的卸载一般,使用umount命令。
例:sudo umount /mnt
(4)如果需要在启东时让机器自动挂载远程的NFS文件系统,可以通过修改/etc/fstab进行配置。
例:192.168.1.111:/default /mnt nfs rw,hard,intr,bg 0 0 #文件系统类型为nfs
2、与Windows进行传输共享:Samba。
(1)Windows中,并不使用NFS,而是使用CIFS的协议机制进行共享文件。CIFS本质上是SMB的升级版本,是由Andrew Tridgell于1991年采用逆向工程对SMB协议进行实现开发出来的。Tridgell将这个开发出来的软件包取名为Samba。
(2)Samba包括一个服务器端和几个客户端程序。安装在linux主机上的Samba的服务器端程序向Windows机器提供linux共享,Windows主机不需要为此安装其他特殊的工具。Samba的客户端程序用于获取Windows主机的共享内容。
(3)smbtree:用于查看当前网络上的共享资源。
-S选项:简单的列出当前网络上的共享主机列表。当smbtree询问口令时,直接回车(表示不需要口令)即可。如果不指定—S选项,那么smbtree会试图与搜索到的共享主机建立连接。
—U:可以指定与哪个用户名进行连接,并提供对应的口令。
-b:指定smbtree使用广播的方式搜寻整个网络。
例:smbtree -b -U smbuser #以广播方式搜寻整个网络,并指定以用户smbuser与搜寻到的共享主机建立连接。
(4)nmblookup:可以查询某台主机对应的IP地址。如果需要使用IP地址来访问Samba资源的话,这个命令还是很不错的。
例:nmblookup lewis-laptop #查询lewis-laptop的IP地址
(5)smbclient:获取Samba共享资源。基本语法:smbclient //servername/sharename [-U username]
例:smbclient //172.16.25.128/share
登录成功后,smbclient会显示“smb:/>”提示用户输入命令。这里的命令与FTP及sftp的命令一般。在FTP时介绍。
quit:退出。
(6)mount.cifs:将windows的共享目录挂载到本地的目录下。
语法:mount.cifs service mount-point [-o options] #service表示服务器端的共享目录,和smbclient一样,应该使用//servername/sharename这样的写法。mount-point代表用于挂载该共享的本地目录。
例:sudo mount.cifs //10.171.20.225/share /srv/share
3、使用FTP:
(1)使用web浏览器:使用web浏览器连接FTP,记得在地址中加上“ftp://”前缀告诉浏览器要使用FTP协议。
(2)FTP图形客户端:常用的有FIleZilla。具体不介绍了,很简单。
(3)使用ftp命令:
ftp:是linux自带的一个命令行的FTP工具,可以完成所有基本的FTP操作。要使用ftp命令连接服务器,只要在这个命令后面跟上服务器名称或者IP就可以了。
例:ftp 10.171.37.1 #连接FTP服务器10.171.37.1
FTP服务器默认使用21端口,如果FTP没有使用默认端口,那么可以在主机后面再增加一个端口参数。
例:ftp 10.171.37.1 2121 #连接工作在2121端口的FTP守护进程。
建立连接后,ftp命令会要求输入登录的用户名。如果连接的是匿名FTP服务器(也就是任何人都能够访问的FTP服务器的话),那么应该输入anonymous,代表匿名用户。登录成功后,可以看到ftp提示符,等待用户输入命令:ftp>。
ftp程序用于浏览文件系统的命令和shell基本一致。
常用的ftp客户端命令:
!<command>:在本地执行命令。
?<command>:显示ftp命令的帮助信息。
open:连接FTP服务器。
close或disconnect:关闭连接但不退出FTP程序。
bye或quit:退出FTP程序。
cd:切换远程所在的目录。
ls或dir:列出远程目录中的内容。
get:下载文件。
mget:一次下载多个文件。
put:上传文件。
mput:一次上传多个文件。
mkdir:在FTP服务器上建立目录。
rmdir:删除FTP服务器上的目录。
delete:删除FTP服务器上的文件。
pwd:显示当前远程所在的目录。
lcd:切换本地所在的目录。
prompt:切换交互和非交互模式。
4、基于SSH的文件传输:sftp和scp。
(1)传统的FTP由于采用了不加密的传输方式,因此存在严重的安全隐患,而SSH则是目前最安全可靠地传输协议之一。使用sftp进行文件传输有助于保护用户账户和传输安全。首先确保主机开启了SSH的守护进程,然后使用如下命令建立连接。
例:sftp lewis@10.171.32.73 #以用户lewis建立连接。
连接成功后,出现:sftp>。等待用户输入命令,这里的命令与FTP差不多。
(2)scp:用于从服务器上赋值一些文件。
例:scp lewis@10.171.33.221:/home/lewis/dump-0.4b41.tar.gz /srv/nfs_share/
#以lewis的身份从服务器10.171.33.221上的/home/lewis中复制文件dump-0.4b41.tar.gz到/srv/nfs_share/中。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/183497.html