怎样在Linux系统之间传输文件

发布时间:2022-01-25 10:57:53 作者:kk
来源:亿速云 阅读:256
# 怎样在Linux系统之间传输文件

## 前言

在Linux系统管理和日常运维工作中,文件传输是最基础也最频繁的操作之一。无论是跨服务器同步数据、备份重要文件,还是在分布式系统中共享资源,掌握高效可靠的文件传输方法都至关重要。本文将全面介绍Linux系统间文件传输的12种主流方法,涵盖从基础命令到专业工具的全套解决方案。

## 一、SCP(Secure Copy Protocol)

### 1.1 基本概念
SCP是基于SSH协议的安全文件传输工具,加密所有传输数据,默认使用22端口。

### 1.2 基本语法
```bash
scp [选项] 源文件 目标路径

1.3 常用操作示例

1.4 高级选项

选项 说明
-P 指定端口号
-C 启用压缩
-l 限制带宽(Kbit/s)
-q 静默模式

1.5 注意事项

二、SFTP(SSH File Transfer Protocol)

2.1 交互式操作

sftp user@remotehost
sftp> put localfile
sftp> get remotefile
sftp> lls  # 查看本地文件
sftp> lpwd # 查看本地路径

2.2 非交互式批量传输

sftp -b batchfile.txt user@remotehost

三、rsync(远程同步工具)

3.1 增量传输优势

仅传输差异部分,节省带宽和时间。

3.2 典型应用场景

rsync -avz --progress /source/dir/ user@remote:/target/dir/

3.3 关键参数说明

3.4 实际案例:网站备份

rsync -avz --delete /var/www/ backup@server:/backups/www/$(date +%F)/

四、NFS(Network File System)

4.1 服务端配置

  1. 安装NFS服务:

    sudo apt install nfs-kernel-server  # Debian/Ubuntu
    sudo yum install nfs-utils         # CentOS/RHEL
    
  2. 配置exports文件:

    /shared/dir 192.168.1.0/24(rw,sync,no_subtree_check)
    
  3. 启动服务:

    sudo systemctl start nfs-server
    

4.2 客户端挂载

sudo mount -t nfs server:/shared/dir /local/mountpoint

五、SSHFS(基于SSH的文件系统)

5.1 安装与挂载

sudo apt install sshfs  # 安装
sshfs user@remote:/remote/dir /local/mountpoint

5.2 卸载方法

fusermount -u /local/mountpoint

六、FTP/FTPS

6.1 vsftpd配置示例

# /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

6.2 安全建议

七、WebDAV

7.1 Apache配置

<Directory /var/www/webdav>
    DAV On
    AuthType Basic
    AuthName "WebDAV"
    AuthUserFile /etc/apache2/webdav.passwd
    Require valid-user
</Directory>

7.2 客户端挂载

sudo mount -t davfs http://server/webdav /mnt/webdav

八、BitTorrent同步

8.1 使用syncthing

# 安装
sudo apt install syncthing
# 启动
syncthing

九、云存储中转

9.1 rclone配置示例

rclone copy /local/path remote:bucket/path --progress

十、nc/netcat传输

10.1 快速临时传输

接收端:

nc -l 1234 > received.file

发送端:

nc receiver_ip 1234 < send.file

十一、BBR加速优化

11.1 启用BBR

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p

十二、传输测试与验证

12.1 校验文件完整性

md5sum file.txt
sha256sum file.txt

12.2 带宽测试

iperf3 -c remote_server

总结对比表

方法 加密支持 断点续传 适合场景 速度
SCP 单文件传输
rsync 目录同步
SFTP 交互式操作
NFS 网络共享
SSHFS 透明访问远程文件

安全建议

  1. 始终优先使用SSH相关协议(SCP/SFTP/rsync over SSH)
  2. 定期更新SSH密钥
  3. 限制网络访问范围(防火墙配置)
  4. 敏感数据应二次加密
  5. 传输完成后验证文件完整性

常见问题解决

Q:传输大文件时中断怎么办? A:使用rsync的--partial参数或lftp的pget功能

Q:如何提高传输速度? A:1. 启用压缩(-z参数) 2. 使用更高效的加密算法(如aes128-ctr) 3. 调整TCP窗口大小

Q:无root权限如何传输? A:使用用户空间的工具如rsync、scp、或编译安装到用户目录

扩展阅读

  1. 《SSH权威指南》
  2. rsync官方文档:https://rsync.samba.org/documentation.html
  3. Linux内核网络调优参数说明

本文共计约4250字,涵盖Linux系统间文件传输的主流方案,实际应用时请根据具体场景选择合适工具。 “`

推荐阅读:
  1. Linux系统中的文件传输优化
  2. 传输文件

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linux

上一篇:Linux下如何安装winusb

下一篇:Linux下md5sum怎么用

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》