温馨提示×

如何在CentOS上使用SFTP传输大文件

小樊
48
2025-10-05 00:39:17
栏目: 智能运维

在CentOS上使用SFTP传输大文件,可以遵循以下步骤:

1. 安装SFTP服务器

首先,确保你的CentOS系统上已经安装了OpenSSH服务器。如果没有安装,可以使用以下命令进行安装:

sudo yum install openssh-server

2. 启动并启用SSH服务

启动SSH服务并设置为开机自启:

sudo systemctl start sshd
sudo systemctl enable sshd

3. 配置SFTP

默认情况下,OpenSSH服务器已经配置了SFTP。如果你需要自定义SFTP配置,可以编辑/etc/ssh/sshd_config文件:

sudo vi /etc/ssh/sshd_config

找到并修改以下行(如果它们存在):

Subsystem sftp /usr/libexec/openssh/sftp-server

确保没有其他冲突的配置。

4. 重启SSH服务

保存并退出编辑器后,重启SSH服务以应用更改:

sudo systemctl restart sshd

5. 使用SFTP传输文件

现在你可以使用SFTP客户端连接到服务器并传输文件。以下是使用命令行SFTP客户端的步骤:

连接到服务器

sftp username@hostname

替换username为你的用户名,hostname为服务器的IP地址或域名。

上传文件

使用put命令上传文件:

put localfile remotefile

替换localfile为本地文件的路径,remotefile为远程文件的路径。

下载文件

使用get命令下载文件:

get remotefile localfile

替换remotefile为远程文件的路径,localfile为本地文件的路径。

6. 处理大文件传输

对于非常大的文件,可以考虑以下优化措施:

  • 使用scp命令scp命令在传输大文件时通常比SFTP更快,因为它直接使用SSH进行传输,不经过SFTP子系统。

    scp localfile username@hostname:/path/to/remotefile
    
  • 调整TCP缓冲区大小:可以通过调整TCP缓冲区大小来提高传输速度。编辑/etc/sysctl.conf文件,添加以下行:

    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_rmem = 4096 87380 16777216
    net.ipv4.tcp_wmem = 4096 65536 16777216
    

    然后应用更改:

    sudo sysctl -p
    
  • 使用压缩:在传输前压缩文件可以减少传输时间。可以使用ziptar命令进行压缩:

    zip -r compressedfile.zip largefile
    scp compressedfile.zip username@hostname:/path/to/remotefile.zip
    

通过以上步骤,你应该能够在CentOS上使用SFTP成功传输大文件。

0