Linux,Window之间文件传输-NFS,Samba,SSH,-nfssamba

 新葡亰计算机网络     |      2019-12-04

Linux,Window之间文件传输-NFS,Samba,SSH,-nfssamba

NFS
    NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。目前只支持Linux和Linux之间。前提是对方主机开启了NFS服务器。

sudo apt-get install nfs-kernel-server portmap 安装NFS服务
sudo gedit /etc/exports 修改配置文件
增加/nfs_share *(rw,sync,no_root_squash)表示可以访问
sudo /etc/init.d/nfs-kernel-server restart 重启NFS服务

从机:
mount -o rw 192.168.1.119:/nfs_share /home/local_share/
以可读写的方式(默认是只读)把 192.168.1.119主机上/nfs_share挂载到当前/home/local_share/下。

cd local_share/就可以像本地目录一样操作。

每次开机自动挂载就需要在/etc/fstab文件下面加如下一行:
192.168.1.119:/nfs_share /home/local_share nfs rw

Linux,Window之间文件传输-NFS,Samba,SSH,-nfssamba。mount -a -t nfs 让fstab对nfs的配置立即生效。

Samba
    Samba可以实现Windows系统访问Linux系统上的共享资源。
安装:sudo apt-get install samba smbclient
安装samba时会自动安装samba -commom

新建共享目录:sudo mkdir /home/share
给出所有权限:sudo chmod 777 /home/share
不然登陆的用户无法写文件

修改配置文件:sudo gedit /etc/samba/smb.conf
在末尾加入
[share] #[]里面是我们的共享名,可以配置多个
comment = This is my shared folder. #该共享的说明
path = /home/share #共享路径
writeable = yes #共享文件夹是否可写
browseable = yes #是否可浏览
guest ok = yes #跟public一样,是否允许guest用户
create mode = 0664 #创建文件权限定制
directory mode = 0775 #创建文件夹权限
valid users = user1 user2 #允许访问该共享的用户,可以写多个
invalid usrs=禁止访问的用户,root,@group,@表示组
admin users=该共享的管理者
write list=有写权限的用户

创建用户:sudo adduser smbuse 用户创建用户
添加smb用户:sudo smbpasswd -a user1
只有linux的用户才可以添加为smb用户
重启samba服务:sudo /etc/init.d/smbd restart 重启samba服务

在”运行”窗口中输入”192.168.1.4”,双击打开myshare,输入用户名和密码–>回车–>访问成功。在同一个网络也可以直接从网上邻居中看到。

其他配置参数说明:
server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。

log file = /var/log/samba/log.%m
说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。
FTP
FTP:File Transfer Protocol(文件传输协议),用于Internet上的控制文件的双向传输。
sudo apt-get install vsftpd 安装FTP服务
修改配置文件去掉下面的“#”号
local_enable=YES 允许用户登录
write_enable=YES 允许上传
sudo /etc/init.d/vsftpd restart 重启FTP服务

SSH
SSH: Secure Shell(安全外壳协议)。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
sudo apt-get install openssh-server
配置默认,安装后自动运行

Window下文件传输工具:WinSCP、Cuteftp;远程登录工具SecureCRT
Lindow下的远程登录工具可以选择C-kermit

1、安装tftp

 

在嵌入式开发时,可以通过tftp(简单文件传输协议)传输项目到目标机运行。

 

(1)安装所需的软件包

 sudo apt-get install tftp-hpa tftpd-hpa openbsd-inetd xinetd

(2)在根目录下创建目录tftpboot(该文件夹用于存放传输的文件)

 sudo mkdir /tftpboot

 chmod 777 /tftpboot -R

(3)更改配置文件/etc/default/tftpd-hpa

  # /etc/default/tftpd-hpa 

   www.2cto.com  

TFTP_USERNAME="root"

TFTP_DIRECTORY="/tftpboot"

TFTP_ADDRESS="0.0.0.0:69"

TFTP_OPTIONS="-l -s -c"

改成上面这样,TFTP_USERNAME是用户名,TFTP_DIRECTORY是存放文件的路径

(4)启动tftp服务

sudo service tftpd-hpa restart

启动和停止对应的是start和stop

(5)确认tftp服务是否开启

你netstat -a | grep tftp

如果出现下面这样,则表示已成功开启

udp    0   0 *:tftp     *:*

 

(6)验证tftp是否生效

上传文件:

切换到/home/用户/ 下并创建test.txt文件

tftp 127.0.0.1

tftp> put test.txt

tftp>quit

 

此时/tftpboot目录下应该有test.txt文件了

下载文件:

tftp 127.0.0.1

tftp> get test.txt

tftp>quit  www.2cto.com  

就可以把test.txt下载到当前目录

 

2、安装NFS

嵌入式开发时,nfs(网络文件系统)可以实现主机和开发板共享文件

(1)安装所需软件包

 sudo apt-get install nfs-common nfs-kernel-server portmap

(2)配置

   sudo vim /etc/exports

增加下面这一行内容:

/home/alexzhou *(rw,sync,no_root_squash)

 ps:/home/alexzhou: 表示共享的目录

  * :允许所有的网段访问,也可以设置成某一个ip段,如192.168.0.*

  rw :读写权限

  sync:资料同步写入内在和硬盘

  no_root_squash:nfs 允许客户端共享目录所有者权限

(3)启动服务

sudo /etc/init.d/portmap restart            --重启portmap

sudo /etc/init.d/nfs-kernel-server restart  --重启nfs服务器

sudo /etc/init.d/nfs-kernel-server status   --查看nfs状态

也可以使用:netstat -a | grep nfs 查看  www.2cto.com  

 

(4)测试NFS