Ubuntu服务器上传文件,如何通过命令行或FTP高效操作?
- 云服务器
- 2025-12-12
- 5
在Ubuntu服务器环境中,上传文件是日常运维和开发中常见的操作,掌握多种上传方法可以根据实际场景灵活选择,以下是几种主流的上传方式及其详细操作步骤。

使用SCP上传文件
SCP(Secure Copy Protocol)基于SSH协议,提供安全的文件传输功能,适合在Linux或macOS系统间传输文件,基本语法为scp [选项] 源文件 目标地址,从本地主机上传文件到Ubuntu服务器,需指定服务器的IP地址、用户名及目标路径,假设本地文件为/home/user/localfile.txt,服务器IP为168.1.100,用户名为admin,目标路径为/home/admin/,则命令为scp /home/user/localfile.txt admin@192.168.1.100:/home/admin/,若上传整个目录,需添加r选项,如scp r /home/user/localdir/ admin@192.168.1.100:/home/admin/,SCP的优点是操作简单且无需额外安装(基于SSH),但交互式输入密码可能不够便捷,可通过SSH密钥对实现免密登录提升效率。
使用SFTP上传文件
SFTP(SSH File Transfer Protocol)也基于SSH,但提供了类似FTP的交互式命令行界面,支持文件和目录的增删改查等操作,使用SFTP时,需通过sftp [用户名]@[服务器IP]连接服务器,例如sftp admin@192.168.1.100,连接成功后,会进入SFTP命令行环境,常用命令包括put(上传本地文件到服务器)、get(下载服务器文件到本地)、ls(列出服务器目录内容)、cd(切换服务器目录)等,例如上传本地文件localfile.txt,可执行put localfile.txt,默认上传到当前服务器目录;若指定目标路径,则为put localfile.txt /home/admin/remotefile.txt,上传目录时,需使用put r localdir/,SFTP的优势在于支持交互式操作,适合批量管理文件,且传输过程同样加密安全。

使用Rsync同步文件
Rsync不仅支持文件上传,还能高效同步本地与服务器之间的文件差异,适合增量备份或大文件传输,其基本语法为rsync [选项] 源文件 目标地址,上传本地目录/home/user/localdir/到服务器/home/admin/,并保留文件权限、时间戳等属性,可使用命令rsync avz /home/user/localdir/ admin@192.168.1.100:/home/admin/,其中a表示归档模式,v显示详细过程,z启用压缩传输,Rsync会自动跳过已存在的相同文件,仅传输差异部分,大幅提升传输效率,通过SSH传输时,可指定e ssh选项(默认已包含),或配合SSH密钥对实现免密同步。

通过Web界面上传文件
若服务器部署了Web服务(如Apache或Nginx),可通过网页表单上传文件,需在服务器端配置上传目录权限(如chmod 755 /var/www/uploads/)和Web服务器的上传配置(如Apache的php.ini中的upload_max_filesize和post_max_size),客户端通过浏览器访问上传页面,选择文件提交即可,此方法适合非技术用户操作,但需注意安全性,避免上传恶意文件,建议结合文件类型校验和病度扫描。
使用FTP/SFTP客户端工具
对于图形界面的用户,可借助FileZilla、WinSCP等客户端工具连接Ubuntu服务器,以FileZilla为例,需输入服务器IP、用户名、密码及端口(SFTP默认22端口),连接成功后,左侧显示本地文件目录,右侧显示服务器目录,通过拖拽即可完成文件上传,这类工具支持断点续传、多线程传输,操作直观,适合不熟悉命令行的用户。
不同上传方式对比
| 方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| SCP | 简单文件/目录传输,Linux/macOS环境 | 无需额外安装,基于SSH加密 | 交互式输入密码,功能单一 |
| SFTP | 交互式文件管理,批量操作 | 支持目录操作,命令丰富 | 需要SFTP客户端或命令行交互 |
| Rsync | 大文件/增量同步,备份场景 | 传输效率高,支持差异同步 | 参数较多,需一定学习成本 |
| Web上传 | 非技术用户通过浏览器操作 | 直观易用,无需命令行 | 依赖Web服务,安全性需额外配置 |
| FTP/SFTP客户端 | 图形界面操作,跨平台 | 支持拖拽,断点续传 | 需安装第三方工具 |
相关问答FAQs
Q1: 使用SCP上传文件时如何避免重复输入密码?
A1: 可通过SSH密钥对实现免密登录,在本地主机生成密钥对(sshkeygen t rsa),然后将公钥(~/.ssh/id_rsa.pub追加到服务器的~/.ssh/authorized_keys文件中(sshcopyid admin@192.168.1.100),之后使用SCP或SSH即可无需密码登录。
Q2: 上传大文件时传输中断,如何从断点处继续传输?
A2: 可使用Rsync的partial选项保留部分传输的文件,或通过FileZilla等客户端的“断点续传”功能自动恢复,例如Rsync命令可写为rsync partial progress avz /path/to/largefile admin@192.168.1.100:/path/to/destination,progress选项可显示传输进度。