news 2026/10/19 16:46:48

FileZilla+SFTP:Windows 11与Ubuntu 20.04文件互传全攻略

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FileZilla+SFTP:Windows 11与Ubuntu 20.04文件互传全攻略

1. 为什么选FileZilla做跨系统文件互传

做Linux和Windows双系统的小伙伴,十有八九都会遇到一个尴尬场景:Windows 11下随手存的资料、代码包、安装程序,到Ubuntu 20.04里却没带过来。用U盘拷吧,来回插拔确实麻烦,大文件还容易中途报错;用网盘中转吧,上传下载速度受带宽限制,隐私文件放上去心里也不踏实。

这时候最顺手的方案就是搭建一个本地的FTP/SFTP传输通道,而FileZilla是绕不开的老牌工具。它分为客户端和服务端两部分,我们这次用到的组合是:Windows 11上装FileZilla Client,Ubuntu 20.04上通过SSH/SFTP服务来配合,这样不需要额外装FTP服务端,因为Ubuntu本身自带了OpenSSH,SFTP就顺带解决了。而且用SFTP走的是SSH加密通道,比传统FTP更安全,账号密码也是走系统用户验证,配置起来省事。

我实际测试下来,局域网内传输一个1GB左右的视频文件,速度和共享文件夹差不多,而且胜在稳定,不会出现拷到一半Windows突然弹“文件被占用”。对经常在两套系统间同步代码、传安装包、备份配置文件的开发者来说,FileZilla算是性价比最高的选择。

本篇内容适合这些读者:刚装好Ubuntu 20.04双系统、想摆脱U盘的Linux新手;需要在Windows与Linux之间高频互传文件的办公用户;以及想深入了解SFTP配置细节的运维爱好者。下面我把整个流程拆开讲透。

2. 环境准备与前置条件

2.1 Ubuntu 20.04 和 Windows 11 的网络互通

做文件互传,先得保证两台系统能互相访问。大多数人是双硬盘或单硬盘双系统,同一台电脑上Windows和Ubuntu是交替启动的,不存在同时运行的问题。这种情况其实很简单——因为宿主机只有一个,网络是同一个,不需要考虑跨设备。

但如果你用的是两台物理机,或者用虚拟机跑Ubuntu,那就得确认网络互通。常规做法是让两台机器处于同一个局域网,比如连同一个路由器或交换机。Ubuntu 20.04默认走DHCP获取IP,Windows 11也是一样,只要插上网线或连上WiFi,一般就能互通。

我建议在开始之前,先在终端里确认一下Ubuntu的IP地址,因为后面的SFTP连接要用到。用下面命令查看:

ip addr show | grep inet

或者更直观一点:

hostname -I

输出结果通常长这样:

192.168.1.100

记下这个IP,Windows 11那边连的时候要填它。Windows 11的IP怎么查?在“设置 > 网络和Internet > WLAN/以太网”里看,或者在命令行敲ipconfig也行。

注意:如果是虚拟机,需要把网络模式设置为“桥接模式”,别用NAT。桥接模式下,Ubuntu会直接拿局域网IP,这样Windows才能反向访问到它。NAT模式下,虚拟机是藏在宿主后面的,外面不好直接连。

2.2 Ubuntu 20.04 安装并启用 SSH 服务

既然要用SFTP,Ubuntu这边就得开着SSH服务。好在20.04默认安装了openssh-client,但服务端一般没装,需要手动装一下。

打开终端,执行:

sudo apt update sudo apt install openssh-server -y

安装完成后,查看SSH服务状态:

sudo systemctl status ssh

正常情况下,你会看到类似这样的输出:

● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running)

只要Active显示是running,就说明服务已经跑起来了。如果没跑起来,手动启动一下:

sudo systemctl start ssh

顺便设置成开机自启:

sudo systemctl enable ssh

这一步做完,Ubuntu这边等于开了一个对外开放的22号端口,等待SFTP连接。

2.3 Windows 11 安装 FileZilla Client

Windows 11这边我们去官网下载FileZilla Client。打开浏览器,访问FileZilla官方下载页面,选择Windows版本,下载安装包。安装过程一路Next就行,注意如果杀毒软件有拦截,加白名单即可。

装好之后打开,界面分五个区域:最上面是快速连接栏,中间是站点管理器和传输状态,下面左右两个大窗格,左侧是本地目录,右侧是远程目录,最底下是传输队列和日志窗口。

为什么不用别的方式?比如Windows自带的SMB共享、或者Ubuntu里的Samba?说实话Samba配置比SSH复杂多了,要设用户、设密码、设共享目录,Windows访问还要处理权限问题。而SFTP从Ubuntu端来看,零配置文件,直接用系统用户和密码登录,天然就是干净的Linux权限体系,NTFS和ext4之间的格式坑也完全绕开了。

3. 核心配置:Ubuntu端用户权限与目录规划

3.1 用哪个账号登录

SFTP登录用的是Ubuntu的系统账号。最简单直接的方式就是用你平时登录Ubuntu桌面时的那个用户名和密码。这样登录后,默认就会回到你的home目录,也就是/home/用户名。

如果Ubuntu上设置了自动登录,建议手动设置一下,确保密码是已知的:

passwd

输入旧密码和新密码,确保Windows这边能用一个确定的密码去连。如果账号密码里有特殊字符,比如@、#,连接时要注意URL编码的问题,建议密码只用字母数字加简单符号,别自找麻烦。

3.2 传输目录的权限心得

默认SFTP登录后看的目录就是用户主目录/home/用户名。里面默认包含下载(Downloads)、文档(Documents)、桌面(Desktop)这些中文目录,Windows的FileZilla左侧看得到,右侧也能看到这些目录。

不过要注意:FileZilla列出的中文目录在Windows客户端的编码设置不对时,可能会显示成乱码。所以我的习惯是提前建一个纯英文目录专门用来做互传:

mkdir -p ~/share chmod 755 ~/share

这样Windows那边连上来,一眼就能看到share文件夹,传输文件就往里面扔,路径简洁,编码也好处理。权限755表示所有用户可读可执行,只有owner能写,对传公共文件来说是够用的。

3.3 防火墙放通 SSH 端口

Ubuntu 20.04默认防火墙ufw通常是关闭的,但如果你或者某些软件把ufw开启过,那就得放行22端口:

sudo ufw allow ssh sudo ufw enable

如果你用端口转发或者改过SSH端口,那就把22换成实际端口。这里提醒:不同系统默认状态不一样,我遇到过某些云镜像自带ufw开启的情况,所以这个步骤还是查一下更稳。

查看ufw状态:

sudo ufw status

如果显示Status: inactive,就不用操心。如果是active,就放行。

4. FileZilla 连接操作的完整步骤

4.1 快速连接方式

这一节演示最常用的快速连接。打开FileZilla Client,在顶部快速连接栏里这样填:

  • 主机:Ubuntu的IP,比如192.168.1.100
  • 用户名:你的Ubuntu账号名
  • 密码:账号密码
  • 端口:默认22,不用改

然后点击“快速连接”。第一次连接会弹出提示,询问是否信任该主机,勾选“始终信任该主机”,确定即可。

连接成功后,FileZilla右侧窗格会显示远程目录列表,左侧窗格是本地Windows目录。日志窗口会显示“Directory listing successful”之类的信息。

4.2 站点管理器方式(适合固定使用)

如果这台服务器你经常连,保存配置更方便。点击菜单“文件 > 站点管理器”,或者按Ctrl+S。

在站点管理器中点击“新站点”,给它取个名,比如“我的Ubuntu”。然后填写:

  • 协议:选择SFTP - SSH File Transfer Protocol
  • 主机:IP地址
  • 端口:22
  • 登录类型:正常
  • 用户:用户名
  • 密码:密码

切到“传输设置”选项卡,把传输模式选为“主动”或“被动”都可以。对于SFTP来说,主动和被动区别不大,如果某个模式有问题换另一个即可。

保存后,每次打开FileZilla直接点站点记录就能连上,不用再输密码。

4.3 文件上传与下载的细节

连接成功后,从Windows向Ubuntu传文件,就是选中右侧窗格某个目录,然后把左侧窗格的本地文件拖到右侧窗格。反之,从Ubuntu往Windows传,把右侧窗格的文件拖到左侧窗格。

这里有几个我踩过的细节坑:

  • 拖拽文件的时候注意看鼠标提示,FileZilla默认鼠标拖拽是“上传/下载”动作,但如果你按住Shift再拖,就变成移动(相当于mv),而按住Ctrl拖是复制(相当于cp)。传输和移动在实际效果上差别很大,可以试一次看看,通常我们要的是“复制/传输”,不是“移动”。
  • 传大量小文件时,FileZilla默认并发传输6个文件,可以在“设置 > 传输 > 并发传输”里提高这个数值。比如传一个包含几千个小图片的目录,默认6并发比较慢,调到20左右会快不少。
  • 大文件传一半经常断,这个是FileZilla的老问题了。遇到这种情况,在“设置 > 传输”里勾选“如果文件已存在,则覆盖”,同时开启“保留时间戳”,这样断点续传才有意义。FileZilla其实是有断点续传能力的,但必须在连接没断开的情况下重新传输同名文件,它会自动判断大小,接着传。

4.4 命令行小技巧:能用 sftp 就不开图形界面

FileZilla虽然好用,但偶尔我也会直接用Ubuntu终端里的sftp命令测试连接:

sftp 用户名@192.168.1.100

如果命令行能传输,说明服务端没问题;如果命令行也不行,那问题多半出在SSH服务或者网络层。这个排错思路后面排查问题会用到。

5. 实操中常见的三大问题与排查诀窍

5.1 连接超时或拒绝连接

Windows 11的FileZilla提示“连接超时”或者“连接被拒绝”,这是最典型的问题。按照由内到外的顺序排查:

  1. 先ping Ubuntu的IP,看通不通:
ping 192.168.1.100

在Windows cmd里执行。能通就说明网络层没问题。

  1. 再检查SSH服务是否运行:
sudo systemctl status ssh

看不到running就启动。

  1. 然后检查22端口是否监听:
sudo netstat -tlnp | grep 22

或者用ss命令:

ss -tlnp | grep 22

如果看到类似:

LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234,fd=3))

就说明SSH在正常监听。

  1. 如果上面都正常,那就是防火墙拦截,按2.3放行ufw。

  2. 还有一个容易被忽略的地方:Windows 11自带防火墙首次运行FileZilla时,会弹窗询问是否允许公网访问,有时候因为手滑点了“取消”,导致连接出去流量被拦截。去“防火墙设置 > 允许应用通过防火墙”里找到FileZilla,勾选专用和公用。

5.2 中文目录名乱码

用FileZilla连接Ubuntu后,右侧窗格的中文目录名显示成乱码,比如“下载”显示成“涓嬭浇”,这是因为FileZilla默认使用UTF-8编码,但服务器的locale设置不一致。

解法有两种:

一是改服务器端环境变量,让SSH会话默认使用UTF-8。编辑/etc/ssh/sshd_config,确认没有注释掉SendEnv LANG LC_*这一行。然后重启ssh。不过有时依然改不彻底。

二是直接在FileZilla里设置强制UTF-8。打开站点管理器,选中你的站点,点击“字符集”选项卡,选择“强制UTF-8”。改完重新连接,乱码就没了。但这个选项只在服务器端支持时有用,对OpenSSH来说肯定支持,所以这个方案更靠谱。

我自己的做法是尽量不用中文目录,直接建英文share目录,彻底避开这一层编码烦恼。

5.3 权限拒绝:无法上传文件

Windows拖文件到Ubuntu,提示“Permission denied”。这个大概率是目标目录的写权限问题。Ubuntu的home目录默认只有owner有写权限,如果你登录的用户是当前账号,那肯定能写。但如果你用别的账号登录,或者目标目录属于root,那就写不进去。

检查目录权限:

ls -ld 目录路径

如果需要修改,可以把自己加入某个组,或者直接改目录owner:

sudo chown 用户名:用户名 目录路径

也可以在FileZilla里右键目标目录,选择“修改属性”,直接改权限。但要注意,权限改太大有可能影响系统安全,别把整个home目录设成777。

说起这个,我有个实战体会:日常传文件,就固定用一个非root账号操作,遇到权限不够就chown到该账号名下。千万别为了省事直接开root登录。有些不熟练的读者会用root账号去连SFTP,虽然Ubuntu默认禁止root远程SSH,但如果你改了配置允许root登录,一旦密码泄露,整个系统就裸奔了。这里还是强调一下安全底线。

6. 进阶玩法:用 FileZilla 同步与备份

6.1 同步目录操作

FileZilla有“同步浏览”和“目录比较”功能。在“视图”菜单中勾选“同步浏览”,这样你切换左侧目录时,右侧也会自动切到对应目录,适合对齐项目文件夹。

更实用的是“目录比较”。选中本地和远程同一目录,点击工具栏上的“比较目录”按钮,FileZilla会用不同颜色标出哪些文件是本地有、远程没有,哪些是远程有、本地没有,哪些大小不同。这样你能快速判断哪些需要同步,然后手动拖拽传输,比开两个资源管理器一个个看效率高多了。

6.2 队列计划传输

FileZilla支持把待传文件加入队列,还可以在“文件 > 传输队列”里查看。不过它自带的定时功能比较弱,想实现全自动定时同步,更推荐用命令行工具,比如lftp或者rsync,但这就偏离FileZilla的范畴了。

如果非要用FileZilla做批量备份,我建议配合Windows的任务计划程序:写一个批处理脚本,调用FileZilla的命令行接口(filezilla.exe,带参数-s站点名),每天定时上传。文件Zilla官方文档有命令行参数的说明,有兴趣可以翻一下,这里不展开。

6.3 结合 rsync 的优点

说实话,如果是大规模目录同步,比如整个项目文件几百G,FileZilla这种图形工具就不太够看了。这种情况我更偏向直接用rsync:

rsync -avz --progress /本地/目录 用户名@IP:/远程/目录

rsync的增量传输算法特别适合大目录,只传输变化的部分。比如你备份了一个10G的项目,第二次备份只改了其中一个10M的文件,rsync只需要几百K的传输量,FileZilla就要老老实实扫一遍。

不过rsync学习成本高,参数也多。我的建议是:日常少量文件互传直接用FileZilla;项目备份同步用rsync。两者结合互补,才是最高效的方案。

7. 实战场景演示:完整跑通一次传输

我以一个典型流程来演示,方便你照做。

场景:Windows 11上有一个项目压缩包project_v1.0.zip,大小是850MB,要传到Ubuntu 20.04的~/share目录下。

第一步:打开FileZilla,站点管理器连接到Ubuntu。

第二步:左侧本地窗格导航到Windows存放压缩包的路径,例如D:\backup。右侧远程窗格,双击进入share目录。

第三步:左键按住project_v1.0.zip,拖到右侧share目录里,松开鼠标。FileZilla下方队列区就会显示上传进度,速度大概能跑到50-100MB/s,取决于硬盘和网络环境(如果是同一台电脑的双系统场景,网络走的是lo回环,速度基本等于磁盘速度,很快)。

第四步:传输完成后,右侧窗格看到project_v1.0.zip,右键选择“下载”也可以验证。

第五步:在Ubuntu终端解压验证:

cd ~/share unzip project_v1.0.zip

一切正常。

这个流程虽然简单,但如果你第一次操作,可能因为防火墙、SSH、编码、权限这四个坑中的任何一个导致卡住。所以我把排错顺序再强调一遍:网络 → SSH服务 → 端口 → 防火墙 → 账号权限 → 编码。按这个顺序走,再难的问题都能解决。

8. 传输性能优化建议

8.1 影响速度的关键因素

用FileZilla传文件,速度慢主要出在三个环节:网络带宽、磁盘IO、FileZilla配置。

对于同一台电脑的双系统,因为Ubuntu和Windows互传其实是通过虚拟网卡走的回环,速度理论上可以达到磁盘速度。但如果你把Ubuntu装在虚拟机里,那传输速度就会受虚拟网络适配器限制,有时候只有20MB/s,这是正常现象。

局域网物理机互传的话,千兆局域网一般能跑到90-120MB/s。如果跑不到,检查网线、路由器是否千兆,无线是否5G频段。802.11n的2.4G频段最高也就50MB/s,5G频段能跑到100MB/s以上。

8.2 FileZilla 侧的调优设置

打开“设置 > 传输”,把“最大并发传输数”从默认的6调高到16,传输大量小文件效果明显。

另一个容易忽略的选项是“缓冲大小”。FileZilla有默认缓冲大小,但如果你的内存充裕,可以把“高速缓存”调到256MB,减少IO次数。

同时,在“传输”里勾选“以压缩模式传递”,类似SFTP的压缩。CPU性能还行的话,开压缩能更省带宽,但会消耗一些CPU。传文本、HTML、代码这类可压缩文件时效果明显,传已经压缩过的zip、mp4那就别开了,纯属白耗CPU。

8.3 大文件断点续传的陷阱

FileZilla的断点续传不是绝对可靠的,尤其是用FTP普通模式时,如果服务器不支持REST命令,断点续传就失效。好在SFTP协议一直支持,但你在操作时需要注意:必须保证目标文件的名称完全一致,且远程目录已存在同名文件,FileZilla才会询问你是“覆盖”、“续传”还是“跳过”。如果你远程目录里没有同名文件,那只能重新传输。

所以在传大的ISO、数据库备份文件前,建议先手工在远程目录创建同名占位文件,然后传输时选择“续传”。不过这个操作比较冷门,其实就是想告诉大家,传输大文件时别中途点断开,否则只能重来。

9. 安全加固与日常维护

9.1 修改默认 SSH 端口(可选)

如果你对安全有要求,可以把SSH端口从22改成其他高位端口,比如2222。

编辑/etc/ssh/sshd_config:

sudo nano /etc/ssh/sshd_config

找到Port 22,改成Port 2222,保存退出,重启SSH:

sudo systemctl restart ssh

然后FileZilla连接时,端口填2222即可。注意改之前确认新端口防火墙放行。这样做能减少一部分扫描器的攻击噪音,虽然不能完全避免,但能挡掉不少自动脚本。

9.2 使用密钥登录替代密码登录

长期使用密码登录,容易被暴力破解。推荐生成密钥对,用私钥在FileZilla里登录,更安全。

在Ubuntu终端生成密钥对:

ssh-keygen -t ed25519 -C "ubuntu-sftp-key"

一路回车,默认生成在~/.ssh/id_ed25519和id_ed25519.pub。然后把公钥写入authorized_keys:

cat ~/.ssh/id_ed25519.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

接着在Windows上用FileZilla:菜单“编辑 > 设置”,找到“连接 > SFTP”,添加私钥文件(也就是我刚才说的id_ed25519文件)。然后把私钥先下载到Windows本地。连接时,登录类型选择“密钥文件”,浏览到该私钥,再填用户名,就可以免密登录了。

生成密钥后建议立即测试。还有,如果私钥带密码,那么使用的时候FileZilla会提示输入私钥的密码,这也是一道保险。

9.3 定期清理传输记录

FileZilla会默认记录最近访问的站点和文件,在公共电脑上使用后,记得在“文件 > 清除私人数据”里勾选所有选项,清空传输历史。平时在家用电脑无所谓,但如果是靠共享主机办公,最好还是勤快一点。

另外,Ubuntu侧的系统日志会记录SSH登录信息,偶尔抽查一下:

sudo grep sshd /var/log/auth.log | tail -20

看看有没有异常登录尝试,提前发现问题。

10. 常见问题速查表

为了避免你四处翻找,我把刚才提到的重点问题汇总成一张表,直接对照排查。

现象可能原因解决办法
连接超时网络不通 / 防火墙拦截ping测试;放行22端口
连接被拒绝SSH服务未启动systemctl start ssh
登录成功但目录列表为空用户主目录权限异常查看主目录权限,修复为755
中文目录乱码编码不匹配FileZilla站点设置强制UTF-8
上传提示权限拒绝目标目录无写权限chown或chmod修改权限
传输速度很慢并发数低 / 无线信号差提高并发数;使用千兆有线
断点续传失败同名文件不存在先创建占位文件
大文件传一半断开网络不稳定开启传输队列,续传
密码无法粘贴客户端的密码框限制手动输入,或使用密钥登录

这张表基本覆盖了90%的新手问题。如果遇到表里没有的,欢迎留言补充,我后续再整理成专题。

11. 个人使用体验小结

折腾了这么久FileZilla,我对它的评价是:不花哨,但足够稳定可靠。如果你只是需要一个快速可靠的SFTP图形客户端,它完全够用。界面虽然老旧了点,但功能扎实,没有乱七八糟的广告,在同类工具里已经很难得了。

我自己现在日常的双系统文件交换,主要就是靠FileZilla这一个工具。Windows 11这边装客户端,Ubuntu 20.04那边开SSH,两边都在同一个局域网,随连随传,完全替代了U盘。特别是传那些几十GB的虚拟机镜像、数据集,FileZilla的断点续传和队列功能真的帮了大忙。

最后再分享一个小技巧:你可以在Windows桌面创建一个快捷方式,指向FileZilla,并在快捷方式属性里加上站点名参数,比如"C:\Program Files\FileZilla FTP Client\filezilla.exe" -s "我的Ubuntu",这样双击就能直接连接,不用再打开软件、选站点、点连接这一串操作。这个功能是我偶然发现的,对高频使用的场景特别友好。

希望这篇能帮你顺利实现Ubuntu和Windows 11之间的文件互传。有什么配置上的问题,多试几次,别慌,按本文的排查顺序一步步来,总能搞定。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 16:45:07

用 Qt 实现文件搜索工具:QDir 递归遍历、正则匹配与多线程架构解析

简介:面向初学者的基于Qt框架的文件搜索示例资源,运用改良算法实现文件夹内文件遍历与过滤检索,并将匹配结果以表格形式呈现。支持双击列表中的文件调用系统关联程序打开编辑,覆盖文档、表格、演示文稿等常见办公格式,…

作者头像 李华
网站建设 2026/10/19 16:44:37

ISATAP隧道处理全解析:原理、配置与排障实战

1. 从一个让人抓狂的排障现场说起第一次接触ISATAP隧道,是在一个混合网络环境的联调现场。当时的情况大概是这样:办公网是纯IPv4的,但实验室那边新上了一批只跑IPv6的测试设备,两边要互通,中间又不可能为了这个需求把整…

作者头像 李华
网站建设 2026/10/19 16:44:06

开源惯性导航项目拆解:NaveGo实现GPS与IMU融合的Matlab指南

简介:面向惯性导航与组合导航开发者的MATLAB开源实现,以NaveGo开源项目为完整范例,聚焦GPS与IMU数据融合,系统呈现扩展卡尔曼滤波(EKF)在惯导解算中的完整应用流程。包体共66个文件,以56个.m源码…

作者头像 李华
网站建设 2026/10/19 16:42:07

从零搭建个人大数据集群:Spark安装与Standalone实战

从零开始搭建个人大数据集群(6)——SPARK安装个人大数据集群搭建系列走到第6篇,终于轮到Spark了。前面我们搞定了存储和资源调度,HDFS里能存数据,YARN上能跑MapReduce任务,但说实话,MapReduce那…

作者头像 李华
网站建设 2026/10/19 16:42:06

从人治到工具化:构建高效代码审查工作流的实践指南

开源社区的代码审查,表面上是个流程问题,实际上是个工程效率问题。我见过太多团队把 Code Review 挂在嘴边,最后却沦为一个“点个通过按钮”的形式主义动作。真正跑通一套代码审查工作流,需要的不只是纪律,还涉及工具链…

作者头像 李华
网站建设 2026/10/19 16:40:13

基于DeepSeek与RAG的岩土工程AI问答助手搭建指南

搞岩土的人应该都有过这种体验:一个简单的参数要翻三本规范,一份勘察报告翻到最后一页才发现地层描述前后对不上,新来的工程师请教老师傅某个地区经验取值,老师傅翻出十年前的内部报告才找到依据。我把这个场景写进了方案里&#…

作者头像 李华