当前位置: 首页 > news >正文

Windows与Ubuntu文件互传:虚拟机、共享文件夹与SFTP实战指南

1. 项目概述:为什么我们需要在Windows和Ubuntu之间传文件?

作为一名在嵌入式、后端开发和运维领域摸爬滚打了十多年的老鸟,我敢说,几乎每个技术人都会遇到一个绕不开的场景:跨操作系统文件传输。尤其是在国内,绝大多数人的主力工作机还是Windows,但无论是做嵌入式Linux开发、深度学习模型训练,还是部署服务器应用,Ubuntu这类Linux发行版又是绕不开的“生产力工具”。这就形成了一个典型的“双系统”工作流:在Windows上写文档、查资料、用一些特定的图形化工具,在Ubuntu里编译代码、运行服务、调试系统。

最头疼的就是在这两个世界之间倒腾文件。一个编译好的固件要从Ubuntu拖到Windows用烧录工具;一份在Windows上写好的配置文件要传到Ubuntu的服务器上;或者反过来,把Ubuntu里生成的日志、数据包下载到Windows来分析。如果每次都用U盘拷,或者发邮件给自己,那效率就太低了,也完全不符合我们追求自动化、高效率的极客精神。

所以,掌握几种可靠、高效的Windows与Ubuntu文件互传方法,是每个开发者、工程师乃至技术爱好者的必备技能。这不仅仅是“知道怎么传”,更要理解每种方法背后的原理、适用场景以及那些官方手册里不会写的“坑”。今天,我就结合自己多年的实战经验,把这几种主流方法掰开揉碎了讲清楚,从最傻瓜式的拖拽,到需要一点配置但极其灵活的共享,再到适合远程、自动化场景的网络传输,给你一份可以直接“抄作业”的完整指南。

2. 核心思路与方案选型:三种方法的本质区别

在开始动手之前,我们得先搞清楚,面对“文件互传”这个需求,我们到底有哪些牌可以打,以及每张牌适合什么场合。根据我多年的经验,主要可以归结为以下三种核心思路,它们分别对应着不同的技术实现和用户体验。

2.1 虚拟机增强工具:极致的便捷性,为一体化体验而生

第一种方法,也是很多新手入门时最先接触的,就是在VMware或VirtualBox这类虚拟机软件中,安装所谓的“增强工具”或“客户机插件”(如VMware Tools)。这种方法的核心思想是在宿主机(Host,即你的Windows)和客户机(Guest,即虚拟机里的Ubuntu)之间,建立一条由虚拟机软件提供的、高度集成的专用通道

这条通道能实现什么?绝不仅仅是文件传输。它通常包括:

  • 共享剪贴板:在Windows里复制一段文本,可以直接在Ubuntu的终端里粘贴,反之亦然。
  • 文件拖拽:直接把Windows资源管理器里的文件或文件夹,用鼠标拖进Ubuntu的桌面或文件管理器窗口,文件会自动复制过去。反向操作同样有效。
  • 屏幕分辨率自适应:Ubuntu的桌面可以自动适应虚拟机窗口的大小,实现无缝全屏。
  • 时间同步:保持两个系统的时间一致。

为什么选择它?它的最大优势就是无缝和便捷。你几乎感觉不到两个系统之间的隔阂,操作符合直觉,学习成本为零。特别适合开发调试过程中,需要频繁进行小文件、代码片段交换的场景。如果你的工作流重度依赖虚拟机,并且追求一体化的桌面体验,这是首选。

它的局限是什么?这种方法高度依赖于虚拟机平台本身。首先,它只适用于虚拟机环境,如果你的Ubuntu是安装在物理机上的双系统,或者是一台远程的云服务器,那这个方法就失效了。其次,传输大文件(比如几个GB的镜像文件)时,性能可能不如一些专用的网络传输方案,因为它的数据流需要经过虚拟机软件的额外处理层。最后,如果虚拟机工具安装或运行不正常,这个功能就会失效,排查起来有时会比较麻烦。

2.2 共享文件夹:稳定的桥梁,为项目共享而设计

第二种方法,同样是在虚拟机环境下,但思路略有不同:在宿主机上划出一块“领地”,将其直接“映射”到客户机的文件系统中,作为一个普通的目录来访问。这就是共享文件夹(Shared Folder)。

你可以把它想象成在两个房间(Windows和Ubuntu)之间的墙上开了一扇带锁的门,门后是一个共用的储物间(共享文件夹)。任何一方放在储物间里的东西,另一方都能立刻看到并取用。在Ubuntu里,这个共享文件夹通常会挂载在/mnt/hgfs/(VMware)或/media/sf_(VirtualBox)这样的路径下。

为什么选择它?它的核心优势是稳定、直观和高效。一旦设置好,这个文件夹对Ubuntu来说就像一个本地磁盘,你可以用任何命令行工具(cp,mv,ls)或图形界面去操作它,速度非常快。它特别适合管理项目目录。比如,你可以把整个项目的代码仓库放在Windows的D盘某个文件夹,然后将其共享给Ubuntu。这样,你可以在Windows下用你熟悉的IDE(如VSCode、Clion)编辑代码,保存后,在Ubuntu里直接编译运行,无需任何手动复制操作。对于需要两个系统共同读写、长期维护的一组文件,这是最佳方案。

它的局限是什么?和增强工具一样,它也是虚拟机专属功能。另外,权限问题有时是个小麻烦。从Windows创建的文件,在Ubuntu里可能默认属于一个特殊的用户组(如vboxsf),你需要把自己的用户加到那个组里,或者妥善处理文件所有权和权限,才能顺利读写。

2.3 基于网络的软件互传:最通用的解决方案,突破环境限制

第三种方法,也是适用性最广、最接近“正统”运维思维的方法,就是利用网络协议进行文件传输。无论你的Ubuntu是虚拟机、双系统、远程服务器,甚至是一台树莓派,只要两者能在网络上互通(可以是局域网,也可以是互联网),这个方法就有效。

最典型的代表就是FTP/SFTP、SCP、甚至简单的HTTP服务。我们通过在Ubuntu上启动一个文件服务(如vsftpd, sshd),然后在Windows上使用对应的客户端(如FileZilla, WinSCP,或系统自带的SCP命令)来连接、浏览和传输文件。

为什么选择它?它的最大优点是普适性和灵活性。它不关心底层是虚拟机还是物理机,只要IP能通就行。这意味着你今天在本地虚拟机用,明天换到公司的测试服务器,甚至连接到阿里云的ECS实例,操作方法一模一样。这对于自动化脚本(如用scp命令写部署脚本)、远程服务器管理、以及任何非虚拟机环境,都是唯一的选择。SFTP/SCP基于SSH协议,安全性也有保障。

它的局限是什么?它需要一些基础的网络知识,比如知道Ubuntu的IP地址,可能需要配置防火墙规则。对于纯桌面用户来说,设置步骤比前两种稍多,不够“傻瓜式”。传输速度受网络带宽和延迟影响。

简单总结一下选型建议:

  • 追求极致便捷和一体化桌面体验,且环境是虚拟机 ->首选增强工具(拖拽/共享剪贴板)
  • 需要长期、稳定地共享一个项目目录,环境是虚拟机 ->首选共享文件夹
  • 环境不限于虚拟机(包括双系统、远程服务器),或者需要自动化、脚本化传输->首选基于网络的传输(如SFTP/SCP)

在实际工作中,我通常是组合使用的:用共享文件夹管理核心项目代码,用增强工具的剪贴板快速传递命令和文本片段,用SFTP来和远程服务器同步数据。接下来,我们就深入每种方法的实操细节。

3. 方法一详解:虚拟机增强工具的安装与深度配置

我们以行业里最常用的VMware Workstation为例(VirtualBox的“客户机增强功能”思路类似)。很多人以为安装VMware Tools就是点几下鼠标,其实里面有不少细节和坑,处理好了才能获得稳定流畅的体验。

3.1 安装前的准备工作:确保环境干净

在点击安装之前,有几步准备工作能极大提高成功率,避免一些诡异的问题。

首先,更新你的Ubuntu系统。在终端里运行以下命令,确保所有软件包都是最新的,特别是内核相关的包。这能避免因内核版本不匹配导致的编译失败。

sudo apt update sudo apt upgrade -y

升级完成后,强烈建议重启一次Ubuntu客户机。让新内核生效。

其次,安装必要的编译工具和内核头文件。VMware Tools的一部分功能是以内核模块的形式存在的,安装过程中需要编译这些模块,所以必须要有构建环境。

sudo apt install -y build-essential linux-headers-$(uname -r)

这里的$(uname -r)会自动获取你当前运行的内核版本号,确保安装的头文件版本完全匹配。

实操心得:我曾经多次遇到安装失败,报错找不到内核头文件。根本原因就是apt upgrade更新了内核,但重启后忘记安装新内核对应的头文件。所以,升级->重启->安装头文件这个顺序一定要记牢。

3.2 安装步骤全流程与避坑指南

现在,可以开始正式的安装了。

  1. 加载ISO镜像:在VMware的菜单栏,点击 “虚拟机” -> “安装VMware Tools”。这时候,VMware会在虚拟光驱里加载一个名为VMware Tools-xxx.tar.gz的ISO镜像文件。在Ubuntu里,这个镜像通常会自动挂载/media/你的用户名/VMware Tools/目录下。

  2. 复制并解压安装包:我们不建议直接在挂载点编译。打开终端,将安装包复制到你的家目录下再操作。

    cp /media/你的用户名/VMware\ Tools/VMwareTools-*.tar.gz ~/ cd ~ tar -xzvf VMwareTools-*.tar.gz

    解压后会生成一个vmware-tools-distrib/目录。

  3. 执行安装脚本:进入目录,运行安装脚本。这里需要超级用户权限。

    cd vmware-tools-distrib/ sudo ./vmware-install.pl

    接下来,安装程序会问你一大堆问题,主要是各种功能的安装路径和配置。对于新手,我强烈建议一路按“回车”键,接受所有默认设置。安装程序给出的默认值都是经过测试的,最稳妥。

  4. 处理可能的编译警告:安装过程中,在编译模块时,你可能会看到一些关于“隐式函数声明”的警告(warning)。请不必惊慌,只要没有出现红色的错误(error)导致编译中断,这些警告通常可以忽略。VMware Tools的驱动代码有时会稍微领先或落后于内核的严格检查标准,产生警告是常见的。

  5. 重启系统:安装脚本最后会提示你,一些功能需要重启后才能生效。输入sudo reboot重启Ubuntu。

3.3 安装后的验证与高级功能配置

重启后,如何验证安装成功?最直观的就是试试文件拖拽剪贴板共享。从Windows桌面拖一个文本文件到Ubuntu桌面,看看能否成功。在Windows记事本里写点东西复制,然后在Ubuntu的文本编辑器里粘贴。

如果拖拽失败,首先检查VMware的虚拟机设置。确保“虚拟机设置” -> “选项” -> “客户机隔离”中,“启用拖放”和“启用复制粘贴”两项都是勾选状态。

除了基础功能,VMware Tools还有一个非常实用的高级功能:文件夹共享(注意,这个和后面要讲的“共享文件夹”是同一个功能的两个入口)。你可以在虚拟机设置的“选项”页里添加Windows主机上的目录,然后在Ubuntu的/mnt/hgfs/下访问。但有时你会发现/mnt/hgfs/目录是空的。

排查技巧

  1. 首先确认你在安装VMware Tools时,相关组件已安装。可以尝试手动挂载:
    sudo vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other
  2. 如果提示命令不存在,可能需要手动安装open-vm-tools-desktop(这是Ubuntu官方维护的VMware工具开源实现,现在更推荐这个):
    sudo apt install open-vm-tools-desktop sudo reboot
  3. 安装open-vm-tools后,共享文件夹通常会自动挂载。如果还没有,检查/etc/fstab文件,看是否有类似host:/share /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0的条目,如果没有可以手动添加(需谨慎)。

注意事项:近年来,对于Ubuntu等Linux发行版,更推荐直接使用系统仓库里的open-vm-tools,而不是从VMware提供的ISO安装。open-vm-tools与系统集成度更好,能通过系统更新自动升级,避免了手动编译可能带来的内核兼容性问题。你可以在安装完Ubuntu后,直接sudo apt install open-vm-tools-desktop并重启,效果一样,且更省事。

4. 方法二详解:共享文件夹的配置、权限管理与性能调优

共享文件夹是我在虚拟机开发环境下最依赖的功能,没有之一。它把跨系统文件交换这个动作,从“传输”变成了“访问”,思维模式的改变带来了效率的质变。

4.1 在VMware中配置共享文件夹

配置过程本身很简单,但有几个关键点需要注意:

  1. 关闭客户机:在配置共享文件夹之前,务必先将Ubuntu虚拟机关机。在虚拟机运行时更改此设置,有时会导致共享不稳定。

  2. 添加共享目录:在VMware中,右键你的虚拟机 -> “设置” -> “选项”选项卡 -> “共享文件夹”。选择“总是启用”,然后点击“添加”按钮,跟随向导选择你Windows主机上的一个目录。你可以给它起一个简单的名字,比如my_share

  3. 权限设置:在向导的最后一步,有两个重要选项:

    • 启用此共享:当然要勾选。
    • 只读:根据需求决定。如果你是单向从Windows向Ubuntu提供文件(如代码库),可以勾选只读以增加安全性。如果需要双向读写,则不要勾选。
    • 映射为网络驱动器:这个选项是针对Windows主机的,与Ubuntu客户机无关,一般不用管。
  4. 启动并验证:启动Ubuntu。打开终端,检查/mnt/hgfs/目录。你应该能看到以你共享名命名的文件夹,例如/mnt/hgfs/my_share

    ls -la /mnt/hgfs/

4.2 解决棘手的权限问题:让普通用户也能畅快读写

这是共享文件夹最常遇到的坑。你会发现,你能ls看到文件,但用普通用户身份去创建、修改或删除文件时,会报“权限不足”。

原因分析:出于安全考虑,VMware默认将共享文件夹挂载为root用户和一个特定组(如fuse)所有,且目录权限可能是755(即所有者可读写执行,组和其他用户只读执行)。你的普通用户不在fuse组里,自然没有写权限。

解决方案有三种,推荐第二种

方案一:每次用sudo操作(不推荐)最笨的方法,每次写文件都加sudo。这完全破坏了共享文件夹的便利性,仅用于临时应急。

方案二:将你的用户加入fuse组(推荐)这是最正统一劳永逸的方法。fuse(Filesystem in Userspace)是用户空间文件系统,共享文件夹正是通过它实现的。

# 将当前用户加入fuse组 sudo usermod -aG fuse $USER # 将当前用户加入vboxsf组(如果是VirtualBox) # sudo usermod -aG vboxsf $USER

关键一步退出当前登录,然后重新登录(或者重启)。用户组的变更只在新的登录会话中生效。重新登录后,你应该就能正常读写了。

方案三:修改挂载选项(需每次设置)在挂载时指定allow_otheruid/gid参数。你可以编辑/etc/fstab文件实现自动挂载,但操作相对复杂,有风险。对于新手,更推荐方案二。

4.3 性能优化与使用技巧

共享文件夹的性能已经不错,但对于需要频繁读写大量小文件(如npm install,git clone)的场景,还可以优化。

  • 选择高性能的宿主目录:尽量将共享文件夹设置在Windows的SSD硬盘上,避免在机械硬盘或网络驱动器上。
  • 关闭Windows杀毒软件实时监控:有些杀毒软件会对共享文件夹的每一次读写进行扫描,严重拖慢速度。可以将共享目录添加到杀毒软件的排除列表。
  • 在Ubuntu内使用符号链接:如果你觉得/mnt/hgfs/路径太长,可以在家目录下创建一个符号链接。
    ln -s /mnt/hgfs/my_share ~/projects
    这样,你直接访问~/projects就相当于访问共享文件夹了,非常方便。

实操心得:我曾经将一个大型的Node.js项目放在共享文件夹里开发,node_modules目录包含数万个小文件。初期性能慢得令人发指。后来将共享目录移到SSD,并调整了杀毒软件设置,速度提升非常明显。另外,对于编译密集型项目,建议在Ubuntu的本地磁盘(非共享文件夹)上进行编译,只将源代码放在共享文件夹,这样可以避免因文件系统差异导致的编译性能损失和潜在问题。

5. 方法三详解:基于网络的文件传输(以SFTP为核心)

当你的Ubuntu不在本地虚拟机里时,网络传输就是唯一的桥梁。FTP是一种古老但广泛支持的协议,然而,在当今的网络环境下,我强烈不建议使用明文传输的FTP。它的用户名、密码和数据都是不加密的,在局域网内都有风险,更别说互联网。我们应该使用它的安全升级版:SFTP

SFTP(SSH File Transfer Protocol)是SSH协议的一部分,它通过加密的SSH连接来传输文件,安全性极高。而且,几乎所有的Linux服务器默认都开启了SSH服务,这意味着SFTP服务也是现成的,无需额外安装和配置复杂的FTP服务器。

5.1 在Ubuntu上启用SSH/SFTP服务

如果你的Ubuntu是桌面版,默认可能没有安装SSH服务器。安装非常简单:

sudo apt update sudo apt install openssh-server -y

安装完成后,SSH服务(包含了SFTP子系统)会自动启动。你可以检查其状态:

sudo systemctl status ssh

如果看到active (running),说明服务正在运行。防火墙可能需要放行22端口(SSH默认端口):

sudo ufw allow 22 sudo ufw enable # 如果UFW防火墙未启用,这条命令会启用它

5.2 在Windows上使用SFTP客户端

有了SFTP服务,Windows上需要一个客户端来连接。这里我推荐两个神器:

1. WinSCP(经典强大)这是一款免费开源的图形化SFTP/FTP客户端,功能极其强大,界面是左右双面板(本地和远程),直接拖拽即可传输,对新手非常友好。

  • 下载安装:去官网下载安装即可。
  • 连接配置
    • 文件协议选择SFTP
    • 主机名:填写你的Ubuntu的IP地址。在Ubuntu终端用ip addrhostname -I命令查看。
    • 端口号:22(默认)。
    • 用户名和密码:填写你的Ubuntu登录用户名和密码。
  • 高级技巧:WinSCP支持保存会话、同步目录、甚至可以在右键菜单中直接用本地编辑器编辑远程文件,保存后自动上传,堪称开发利器。

2. 使用VSCode Remote - SSH(开发者的终极选择)如果你是用VSCode进行开发,那么它的Remote-SSH扩展绝对是跨系统开发的“核武器”。它不仅仅能传文件。

  • 安装扩展:在VSCode扩展商店搜索安装 “Remote - SSH”。
  • 连接:点击左下角的绿色远程连接按钮,选择“Connect to Host...” -> “Configure SSH Hosts...” -> 编辑~/.ssh/config文件,添加你的Ubuntu主机配置。
    Host my-ubuntu HostName 192.168.1.100 # 你的Ubuntu IP User your_username
    保存后,就可以在远程连接列表里选择my-ubuntu进行连接。
  • 体验:连接成功后,VSCode的整个环境(终端、文件浏览、代码编辑、调试)都仿佛是在Ubuntu本地运行。你可以直接打开、编辑、保存远程文件,完全无需手动传输。文件传输在后台自动完成。

5.3 命令行利器:scp和rsync

对于喜欢命令行或者需要写自动化脚本的场景,scprsync是必须掌握的。

scp (Secure Copy):基础的文件复制命令,语法类似cp

  • 从本地复制到远程
    # 在Windows PowerShell或CMD中(如果安装了OpenSSH客户端) scp .\local_file.txt your_username@192.168.1.100:/home/your_username/remote_dir/
  • 从远程复制到本地
    scp your_username@192.168.1.100:/remote/path/file.txt .\
  • 复制整个目录:加-r参数。

rsync:更强大的文件同步工具,支持增量同步(只传输变化的部分)、断点续传、保持文件属性等,是备份和部署的利器。

# 将本地目录同步到远程(保持软链接、时间戳等属性) rsync -avz -e ssh ./local_project/ your_username@192.168.1.100:/remote/project/ # 从远程同步到本地 rsync -avz -e ssh your_username@192.168.1.100:/remote/project/ ./local_backup/

参数解释:-a归档模式(保留所有属性),-vverbose(显示详情),-z压缩传输,-e ssh指定使用ssh通道。

注意事项:使用命令行工具时,如果Ubuntu的SSH服务端口不是默认的22,需要用-P参数指定(scp)或在~/.ssh/config文件中配置。首次连接时会提示验证主机密钥,输入yes即可。为了免密码登录,可以配置SSH密钥对,这在自动化脚本中非常有用,但这是另一个话题了。

6. 进阶场景与方案融合:双系统、远程服务器与大文件传输

掌握了以上三种核心方法,你已经能应对90%的场景。但还有一些特殊情况,需要更灵活的方案组合或特殊工具。

6.1 物理机双系统下的文件共享

如果你的电脑是Windows和Ubuntu双系统启动,那么虚拟机那套方法就失效了。此时,核心思路是:在磁盘上创建一个两个系统都能读写的“公共分区”

  • 方案A:使用NTFS分区(推荐)。Windows原生支持NTFS,Ubuntu通过ntfs-3g驱动也能完美读写。你可以在Windows的磁盘管理里压缩出一个新分区,格式化为NTFS。在Ubuntu启动后,这个分区会被自动识别并挂载,通常位于/media/你的用户名/分区名下。两个系统都能自由读写这个分区里的文件。

    • 注意:为了兼容性,最好禁用NTFS分区的“快速启动”和休眠文件。在Windows中,以管理员身份运行命令提示符,输入powercfg -h off
  • 方案B:使用exFAT分区。exFAT是微软设计的一种更适合闪存的文件系统,但同样被Windows和Linux(需要安装exfat-fuseexfat-utils包)良好支持。它的优点是对于大文件处理效率高,没有NTFS的日志开销,适合用作纯粹的“数据交换盘”。

    # 在Ubuntu上安装exFAT支持 sudo apt install exfat-fuse exfat-utils

6.2 与远程Linux服务器传输文件

对于云服务器(ECS)、公司内网开发机等远程Ubuntu,方法三(SFTP/SCP)是标准答案。这里再强调几个要点:

  1. 安全第一:永远使用SSH密钥对登录,禁用密码登录。这是运维的基本安全准则。
  2. 使用rsync进行增量同步:当你需要将本地开发目录同步到测试服务器时,rsync是唯一选择。它比scp智能得多,节省时间和流量。
    rsync -avz -e ssh --delete ./local_dir/ user@remote_host:/path/to/remote_dir/
    --delete参数会删除远程目录中本地不存在的文件,保持严格同步,使用时要小心。
  3. 图形化客户端:对于不习惯命令行的同事,给他们安装WinSCP或FileZilla(配置为SFTP协议),图形化界面更直观。

6.3 超大文件或海量小文件传输优化

传输一个几十GB的虚拟机镜像或数据库备份,或者一个包含数百万个小文件的代码仓库,需要一些技巧。

  • 先压缩,后传输:对于大量小文件,先用tar命令打包并压缩,传输一个大的压缩包,速度远快于传输无数小文件。在目标端再解压。
    # 在源端压缩 tar -czvf project_backup.tar.gz /path/to/project/ # 传输 scp project_backup.tar.gz user@host:/destination/ # 在目标端解压 tar -xzvf project_backup.tar.gz
  • 使用支持断点续传的工具rsync本身支持断点续传。图形化工具里,FileZilla也支持。对于不稳定的网络环境,这个功能能救命。
  • 考虑专用工具:对于极端的大文件传输,可以考虑lftp(支持多线程、镜像)、bbcp等专业工具,或者在局域网内搭建一个临时的HTTP服务器(Python的python -m http.serverpython3 -m http.server)然后用下载工具(如wget, curl)多线程下载。

7. 常见问题排查与技巧实录

无论哪种方法,在实际操作中总会遇到一些“坑”。这里我整理了一份常见问题速查表,都是我和同事们真金白银踩出来的经验。

问题现象可能原因排查步骤与解决方案
VMware Tools安装后拖拽/复制粘贴无效1. 工具未正确安装或启动。
2. 虚拟机设置中功能未启用。
3. 使用了open-vm-tools但桌面组件未装。
1. 运行vmware-user命令尝试启动服务。
2. 检查虚拟机设置 -> 客户机隔离。
3. 对于Ubuntu,尝试sudo apt install open-vm-tools-desktop并重启。
共享文件夹/mnt/hgfs为空或不存在1. VMware Tools或open-vm-tools未安装共享组件。
2. 共享功能未启用或挂载失败。
3. 权限问题。
1. 安装open-vm-tools-desktop并重启。
2. 检查虚拟机设置中共享文件夹是否“总是启用”。
3. 尝试手动挂载:sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other
4. 将用户加入fuse组并重新登录。
SFTP连接被拒绝或超时1. Ubuntu上SSH服务未运行。
2. 防火墙阻止了22端口。
3. IP地址或用户名错误。
4. 网络不可达。
1.sudo systemctl status ssh检查状态,sudo systemctl start ssh启动。
2.sudo ufw allow 22放行端口。
3. 在Ubuntu上用ip addr确认IP,检查用户名。
4. 从Windowsping Ubuntu_IP测试连通性。
传输文件时提示“权限被拒绝”1. 目标目录对当前用户没有写权限。
2. SELinux/AppArmor安全模块限制(较少见)。
1. 使用ls -la查看目录权限。用chmodchown修改,或换用有权限的目录。
2. 对于共享文件夹,确保用户已在fusevboxsf组中。
传输大文件时速度慢或不稳定1. 网络带宽或延迟问题。
2. 杀毒软件实时扫描影响。
3. 共享文件夹位于机械硬盘。
1. 尝试压缩后传输。
2. 将共享目录添加到杀毒软件排除列表。
3. 将文件移到SSD上的目录再进行共享或传输。
4. 使用rsync并考虑--partial(保留部分文件)和--progress(显示进度)参数。
双系统下NTFS分区在Ubuntu中只读1. Windows的“快速启动”功能导致分区未正常卸载。
2. 分区有错误。
1.彻底关闭Windows(Shift+点击“重启”进入高级启动,或命令shutdown /s /f /t 0),再启动Ubuntu。
2. 在Windows中禁用“快速启动”(电源选项)。
3. 在Windows中检查并修复磁盘错误。

最后再分享一个我个人最常用的小技巧:别名(alias)。如果你经常需要从Windows命令行用scprsync同步某个项目,每次输入一长串命令很麻烦。可以在PowerShell的配置文件中设置别名。

对于PowerShell,编辑$PROFILE文件(如果不存在就新建):

# 用记事本或VSCode编辑 notepad $PROFILE

在里面添加别名,例如:

function Sync-ToUbuntu { rsync -avz -e ssh ./my_project/ user@192.168.1.100:~/projects/ } Set-Alias stu Sync-ToUbuntu

保存后,重启PowerShell,以后只需要输入stu,就能自动执行完整的同步命令了。这个技巧对于提升重复性工作的效率有奇效。

http://www.jsqmd.com/news/856118/

相关文章:

  • 2026年评价高的小圆片玻璃清洗机/显示器玻璃清洗机实力厂家 - 行业平台推荐
  • 从零搭建OpenStack私有云:我是如何用两台旧电脑打造个人开发测试平台的
  • 2026年知名的成都加工中心机/高速加工中心机/五轴加工中心机/成都五轴加工中心机公司对比推荐 - 品牌宣传支持者
  • 别再死记硬背Payload了!用PHP+MySQL本地复现floor报错注入全过程
  • 靖江注册公司需要多少钱?2026最新费用明细与隐形消费避坑指南
  • 阿里云ECS新手避坑指南:搞定校园网、安全组和SSH端口映射(附XShell连接测试)
  • RT-Thread实战:基于STM32F103的线程创建与LED控制
  • 蓝桥杯单片机备赛避坑指南:从温度读取异常到电压输出不稳,这些调试经验帮你省时
  • 3分钟完成Windows包管理器Winget安装:PowerShell自动化部署方案
  • 2026年比较好的酸洗池耐酸砖/工业耐酸砖推荐品牌厂家 - 行业平台推荐
  • 2026年评价高的显示器玻璃清洗机/小型玻璃清洗机/1600玻璃清洗机/镜片玻璃清洗机制造厂家 - 品牌宣传支持者
  • 别再让容器‘断网’了!Docker DNS配置保姆级教程(从全局到单容器,含8.8.8.8等常用DNS)
  • 2026年知名的装载机耙齿/山东耙齿/弯耙齿主流厂家对比评测 - 行业平台推荐
  • 在PyTorch里手把手实现ODConv:一个Attention类搞定多维注意力卷积
  • QT版本选择与离线安装全解析:告别在线安装器,搞定5.14及以下旧版本部署
  • IDEA 和 Eclipse 在 Maven 项目支持上有哪些核心差异?
  • 2026年4月靠谱的光谱仪生产厂家推荐,分析仪/测试仪/libs/xrf/光谱仪/测厚仪/X射线,光谱仪生产厂家哪个好 - 品牌推荐师
  • Ubuntu20.04安装Mapviz避坑指南:解决Qt与OpenCV冲突,手把手配置天地图
  • 2026年比较好的三亚别墅庭院设计施工装修实力公司推荐 - 品牌宣传支持者
  • 2026年靠谱的工业耐酸砖/酸洗池耐酸砖/实验室耐酸砖厂家哪家好 - 行业平台推荐
  • 基于Python图像识别的自动化连连看:3步实现高效游戏破解
  • 2026年高透PVC全新料/浙江PVC颗粒/PVC/PVC软料高口碑品牌推荐 - 品牌宣传支持者
  • ESP32-C3开发踩坑记:我把Panic Handler从‘重启’改成‘挂起’,调试效率翻倍了
  • 2026年质量好的佛山不锈钢风口/不锈钢防雨百叶推荐厂家精选 - 品牌宣传支持者
  • PCB设计避坑指南:用ANSYS Designer快速评估耦合长度,别再盲目布线了
  • 深入理解STM32的FSMC:如何像访问内存一样轻松驱动TFTLCD屏
  • 告别安装失败!Proe5.0 M280终极版从下载到成功运行的完整配置流程
  • Koopman算子理论在移动机器人非线性控制中的应用
  • 告别付费弹窗!手把手教你配置Fiddler Everywhere进行本地API调试与Mock
  • DeepLearnToolbox:在Matlab/Octave中掌握深度学习的艺术