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

Linux 下访问 Windows 共享目录的完整指南


各专栏更新如下👇

大模型初探分享零基础AI学习经历

OAI-5G开源通信平台实践

OpenWRT常见问题分析

5G CPE 组网技术分享

Linux音视频采集及视频推拉流应用实践详解

得力工具提升工作效率


Linux 下访问 Windows 共享目录的完整指南

在跨系统文件交互场景中,Linux 访问 Windows 共享目录的核心是基于SMB/CIFS 协议(Windows 文件共享的原生协议)。以下是覆盖临时访问、持久化挂载、图形界面操作的完整方法,适配 Ubuntu/Debian、CentOS/RHEL 等主流 Linux 发行版,并包含常见问题解决方案。

一、前提条件

在开始操作前,需确保 Windows 端和 Linux 端均完成基础配置,否则会导致连接失败。

1. Windows 端准备

  • 开启文件夹共享:右键目标文件夹 →「属性」→「共享」→ 添加有权限的用户(建议用 Windows 管理员账号),并授予「读写」权限;
  • 记录关键信息
    • Windows 主机 IP 地址(通过ipconfig查看,如192.168.1.100);
    • 共享名(共享时设置的名称,非文件夹原名,如win_share);
    • 访问账号密码(需拥有该共享文件夹的权限);
  • 放行 SMB 通信
    • 开启「网络发现」和「文件和打印机共享」(控制面板 → 网络和共享中心 → 更改高级共享设置);
    • 关闭 Windows 防火墙(或在防火墙规则中放行「文件和打印机共享」,默认端口 TCP 445)。

2. Linux 端准备

安装 SMB/CIFS 协议依赖工具(不同发行版命令不同):

  • Ubuntu/Debian 系列
    sudoaptupdate&&sudoaptinstall-ycifs-utils smbclient
  • CentOS/RHEL 系列
    sudoyuminstall-ycifs-utils smbclient
  • 验证安装:执行smbclient --version,若输出版本信息则安装成功。

二、三种核心访问方法

方法一:smbclient 命令(临时交互式访问)

smbclient是命令行工具,类似 FTP 客户端,适合临时查看/传输文件(无需挂载目录),操作完成后连接自动断开。

步骤:
  1. 列出 Windows 共享资源(可选,确认共享名是否正确):

    smbclient-L//<Windows_IP>/-U<Windows_用户名>

    示例(Windows IP 192.168.1.100,用户名为win_user):

    smbclient-L//192.168.1.100/-Uwin_user

    输入 Windows 密码后,会显示所有共享资源(不带$后缀的为可访问共享文件夹)。

  2. 连接目标共享目录

    smbclient //<Windows_IP>/<共享名>-U<Windows_用户名>

    示例(连接共享名win_share):

    smbclient //192.168.1.100/win_share-Uwin_user
  3. 交互式操作命令

    • ls:查看共享文件夹内文件;
    • get <文件名>:下载文件到 Linux 本地当前目录;
    • put <文件名>:上传 Linux 本地文件到共享目录;
    • exit:退出连接。
适用场景:临时下载/上传单个文件,无需长期访问

方法二:mount 挂载(持久化访问)

通过mount命令将 Windows 共享目录挂载到 Linux 本地目录,实现像访问本地文件夹一样操作共享文件,支持临时挂载(重启失效)和永久挂载(开机自动生效)。

1. 临时挂载
步骤:
  1. 创建本地挂载点(选择一个空目录,如/mnt/win_share):

    sudomkdir-p/mnt/win_share# -p 确保父目录存在
  2. 执行挂载命令

    sudomount-tcifs //<Windows_IP>/<共享名><本地挂载点>-ousername=<Windows_用户名>,password=<Windows_密码>,vers=<协议版本>
    • 协议版本vers适配:Windows 10/11/Server 2016+ 用3.0,Windows 7/Server 2012 用2.1,旧系统用1.0
    • 示例(Windows 10,密码Win@123):
      sudomount-tcifs //192.168.1.100/win_share /mnt/win_share-ousername=win_user,password=Win@123,vers=3.0
    • 匿名访问(共享无需密码):去掉usernamepassword,添加guest参数:
      sudomount-tcifs //192.168.1.100/win_share /mnt/win_share-oguest,vers=3.0
  3. 验证挂载

    df-h# 查看挂载状态,会显示 //192.168.1.100/win_share 挂载到 /mnt/win_sharels/mnt/win_share# 查看共享文件夹内容
2. 永久挂载

通过修改/etc/fstab配置文件实现,需注意密码安全(避免明文存储)。

步骤:
  1. **创建密码文件 **:

    sudovim/etc/smbcredentials# 新建凭据文件

    写入以下内容(替换为实际账号密码):

    username=win_user password=Win@123

    设置权限(仅 root 可读,防止密码泄露):

    sudochmod600/etc/smbcredentials
  2. 编辑 /etc/fstab 文件

    sudovim/etc/fstab

    在文件末尾添加一行(根据访问类型选择格式):

    • 用密码文件(推荐):
      //192.168.1.100/win_share /mnt/win_share cifs credentials=/etc/smbcredentials,vers=3.0,iocharset=utf8 0 0
    • 匿名访问:
      //192.168.1.100/win_share /mnt/win_share cifs guest,vers=3.0,iocharset=utf8 0 0
    • 参数说明:
      • iocharset=utf8:解决中文文件名乱码;
      • 最后两个0:分别表示“是否备份”和“开机磁盘检查”,默认填 0 即可。
  3. 生效并验证

    sudomount-a# 重新加载 fstab 配置,无报错则生效

    重启 Linux 后,执行df -h确认挂载仍存在。

3. 卸载挂载

如需取消挂载(如更换共享目录):

sudoumount/mnt/win_share# 注意是 umount(无 n),需确保当前不在挂载目录内
适用场景:长期频繁访问共享文件,需无缝集成到本地文件系统

方法三:图形界面访问

如果 Linux 安装了桌面环境(如 GNOME、KDE),可通过文件管理器直接访问,无需命令行,操作最简便。

步骤:
  1. 打开文件管理器(如 GNOME 的 Nautilus、KDE 的 Dolphin);
  2. 输入 SMB 路径:在地址栏输入smb://<Windows_IP>/<共享名>,示例:
    smb://192.168.1.100/win_share
  3. 输入凭据:弹出对话框后,填写 Windows 用户名和密码,点击“连接”;
  4. 访问文件:成功后即可像浏览本地文件一样,复制、粘贴共享目录中的内容。
适用场景:桌面用户临时访问,无需记忆命令

三、关键注意事项

  1. 协议版本适配

    • 连接失败提示mount error(95): Operation not supported,需降低vers版本(如从 3.0 改为 2.1 或 1.0),旧 Windows 系统不支持高版本协议
  2. 权限与乱码问题

    • 无法读写文件:挂载时添加uid=<Linux用户ID>,gid=<Linux组ID>,确保 Linux 用户有权限操作,示例:
      sudomount-tcifs //192.168.1.100/win_share /mnt/win_share-ousername=win_user,password=Win@123,vers=3.0,uid=1000,gid=1000
      (Linux 用户 ID 可通过id命令查看,普通用户默认 UID=1000);
    • 中文乱码:添加iocharset=utf8,codepage=cp936参数 。
  3. 网络与防火墙

    • 提示mount error(115): Operation in progress:检查 Windows IP 是否正确、Linux 能否 ping 通 Windows(ping 192.168.1.100)、Windows 防火墙是否放行 SMB 端口(445) 。
  4. 密码安全

    • 避免在mount命令或/etc/fstab中明文写密码,优先使用/etc/smbcredentials凭据文件,并设置 600 权限
http://www.cnnetsun.cn/news/2475426.html

相关文章:

  • 乐鑫ESP-Mesh-Lite无线自组网方案:从原理到大规模物联网部署实战
  • 企业级跨平台媒体资源管理:BiliTools架构设计与微服务实践
  • Sora 2原生渲染引擎如何接管DaVinci Resolve时间线?:4步实现AI生成视频无缝调色与剪辑闭环
  • UVM寄存器模型核心API行为全解析:从主值、镜像值到实战避坑指南
  • AI 进入 ERP 后,企业如何管得住?治理、安全与组织变革(AI+ERP系列-10)
  • 别只盯着S21!用ADS仿真LNA时,这3个容易被忽略的细节(稳定性、实际元件模型、噪声圆)才是成败关键
  • 别再只用匿名登录了!手把手教你为Mosquitto Broker配置用户密码,并用MQTTX安全连接
  • 材料模拟避坑指南:MS中BFDH分析生长面时,Distance参数到底怎么看?
  • LAV Filters终极实战指南:解码器架构深度解析与性能调优
  • 分布式能力在鸿蒙 PC 上到底怎么用?
  • 解锁音乐与文字完美同步的魔法:LRC Maker如何重新定义歌词编辑体验
  • 嵌入式硬件调试全流程:从目视检查到性能测试的实战指南
  • 在FPGA上实现MIPS定时中断:从Count/Compare寄存器到中断服务程序的完整流程
  • YimMenu:你的GTA5终极保护盾与游戏体验增强器
  • 告别Mac NTFS读写限制:免费开源的终极解决方案
  • FreeRTOS-Plus-TCP vs LwIP:在GD32F450上如何选择?附LAN8720A驱动避坑指南
  • 从芯片到模块:拆解乐鑫、安信可、正点原子在ESP8266/ESP32生态链中的角色与产品
  • 内网服务器福音:手把手教你搞定Supervisor 4.0.4离线安装(附Python 2.7.5兼容性避坑)
  • 博德之门3脚本扩展器:无需修改游戏文件,解锁无限创意可能
  • 从零到专业:ComfyUI中文工作流全解析与技术实践
  • Forza Painter终极指南:3分钟将任何图片变身高品质《极限竞速》车辆涂装
  • 将taotoken作为统一api层整合到企业内部多个ai应用场景中
  • 深度学习训练的算力选型指南:如何用最低成本榨干GPU性能
  • 把实验室搬回家,打造高性价比 Radeon AI 创意工坊心得
  • 厂区人员定位管理系统|以智能定位,守护化工厂区每一寸安全(二)
  • SD-PPP:Photoshop终极AI插件完整指南,5分钟实现AI设计革命
  • 终极免费GTA5安全防护增强菜单:YimMenu完整使用指南
  • WzComparerR2终极指南:5个技巧掌握冒险岛游戏数据提取
  • DistroAV完全指南:5步打造专业级OBS网络视频系统
  • git core.quotepath 导致 UE5 UnrealBuildTool 编译崩溃