插件窝 干货文章 Linux怎么在两个服务器直接传文件

Linux怎么在两个服务器直接传文件

remote 文件 传输 远程 699    来源:    2025-04-25

在Linux系统中,有多种方法可以在两个服务器之间传输文件。以下是几种常见且高效的方式:


1. SCP (Secure Copy)

基于SSH协议的安全文件传输,适合中小文件。

# 从本地推送到远程服务器
scp /path/to/local/file username@remote_host:/path/to/remote/directory

# 从远程服务器拉取到本地
scp username@remote_host:/path/to/remote/file /path/to/local/directory

# 递归传输目录(-r)
scp -r /local/dir username@remote_host:/remote/dir

优点:简单、加密传输。
缺点:无法断点续传,大文件效率低。


2. Rsync

增量同步工具,适合大文件或目录,支持断点续传和压缩。

# 基本用法(同步本地到远程)
rsync -avz /path/to/local/ username@remote_host:/path/to/remote/

# 从远程同步到本地
rsync -avz username@remote_host:/path/to/remote/ /path/to/local/

# 常用参数:
# -a:归档模式(保留权限、时间等)
# -v:显示进度
# -z:压缩传输
# --partial:保留部分传输的文件(断点续传)

优点:高效、支持增量同步和压缩。
缺点:命令参数较复杂。


3. SFTP (SSH File Transfer Protocol)

交互式文件传输,适合需要浏览目录的场景。

sftp username@remote_host
# 进入交互界面后:
put /local/file /remote/dir  # 上传
get /remote/file /local/dir  # 下载

优点:交互式操作直观。
缺点:不适合脚本自动化。


4. NFS/Samba

挂载远程目录到本地,适合频繁访问的场景。

NFS示例(需配置服务端)

# 服务端导出目录(/etc/exports):
/export/dir client_ip(rw,sync)

# 客户端挂载:
mount -t nfs server_ip:/export/dir /local/mountpoint

优点:透明访问远程文件。
缺点:需额外配置权限和网络。


5. HTTP/FTP

临时共享文件(需安装nginx/vsftpd等)。

# 快速用Python启动HTTP服务(临时测试):
python3 -m http.server 8000
# 另一台服务器用wget下载:
wget http://source_ip:8000/file

优点:无需认证时方便。
缺点:不安全,仅限内网临时使用。


6. SSH + Tar

直接通过SSH传输归档文件,适合大目录。

# 将本地目录打包后传输到远程
tar czf - /local/dir | ssh username@remote_host "tar xzf - -C /remote/dir"

# 反向操作(远程到本地)
ssh username@remote_host "tar czf - /remote/dir" | tar xzf - -C /local/dir

优点:结合压缩,节省带宽。
缺点:命令较长。


选择建议:

  • 快速传小文件:用scpsftp
  • 同步大文件/目录:用rsync
  • 频繁访问远程文件:用NFS/Samba挂载。
  • 内网临时共享:用HTTP服务。

根据实际需求选择最适合的方式!