win10跨网段文件共享

  • 问题描述
  • 问题分析
  • 网络可达性
  • 防火墙
  • 权限问题
  • 操作
  • 网络拓扑示意图
  • 操作步骤


问题描述

平常,我们经常用的是同一局域网下的网络共享,这在windows上很容易操作。现在,两台PC主机不在同一子网,该如何共享?

问题分析

要实现文件共享,主要解决3个子问题:

  • 网络可达性
  • 防火墙
  • 权限问题

网络可达性

一般情况下,家庭网络中可能使用了二级路由,导致局域网划分成了2个子网,由于二级路由的NAT,导致一级路由的网络不能主动访问二级路由下的子网。当然,还有其他情况导致只能是不同的子网。
因此,首先得解决这个问题,最推荐的方案是关闭二级路由的NAT,然后在一级路由下添加静态路由。但是,好多家用路由没有关闭NAT选项以及添加静态路由功能。这样只能被迫使用端口映射功能,开启二级路由的端口映射,主要是开放445端口,这样在使用时还需要变换一下IP,非常别扭。

防火墙

windows好多防火墙默认策略,都是仅允许本地子网 通过,所以,需要在windows高级防火墙中,本地计算机 -> 入站策略,找到“打印机和文件共享” 相关的项目,在作用域中把 远程IP 改为任意。

权限问题

windows的文件共享,推荐开启密码访问,如果你的电脑本来就没有开机密码,那密码就为空。共享某文件夹时,需要注意权限问题。还有windows登陆凭证建议提前设置好。

操作

网络拓扑示意图

局域网跨vlan共享 局域网跨网段共享文件_网络

操作步骤

  1. 现在,我演示关闭路由器B的NAT的操作,我这里的路由器B刷了openwrt,因此很容易操作:登陆luci web界面,系统-防火墙-常规设置-Zones,把关于wan口的 Masquerading 的勾取消掉,并把 wan -> lan 的 Input、Output、Forward 全部设为 accept, 保存并应用。
  2. 局域网跨vlan共享 局域网跨网段共享文件_子网_02

  3. 接下来,为主路由添加静态路由,这里我的是TP-Link路由器:
    目的地址填二级路由的子网,下一跳(或者叫网关)填路由器B的wan口地址(强烈建议路由器B的wan口地址设为静态地址),出接口选 LAN
  4. 局域网跨vlan共享 局域网跨网段共享文件_子网_03

  5. 设置windows防火墙
    开始菜单 -> windows 管理工具 -> 高级安全 windows defender 防火墙 -> 本地计算机上的 高级安全 windows defender 防火墙 -> 入站规则
    找到 文件和打印机共享(SMB-In), 双击 -> 作用域 -> 远程IP地址,改为任何IP。
  6. 局域网跨vlan共享 局域网跨网段共享文件_局域网跨vlan共享_04

  7. 建议把 其他的诸如 文件和打印机共享(回显请求-ICMPv4-in)的规则也同样设置一遍。
  8. 设置高级共享
    打开 控制面板\所有控制面板项\网络和共享中心\高级共享设置
  9. 局域网跨vlan共享 局域网跨网段共享文件_局域网跨vlan共享_05


  10. 局域网跨vlan共享 局域网跨网段共享文件_网络_06


  11. 局域网跨vlan共享 局域网跨网段共享文件_局域网跨vlan共享_07

  12. 注意,这里选择有密码保护的共享。
  13. 设置文件共享权限
    对需要共享的文件夹或者磁盘,右键->属性->共享->高级共享
    勾选共享此文件夹,设置共享名。
  14. 局域网跨vlan共享 局域网跨网段共享文件_子网_08

  15. 然后点击下方权限,在“组和用户名”中 删除everyone(如果有的话),然后添加自己电脑本地用户名,点击添加,直接输入用户名,确定。注意:用户名是指 C:\Users 文件夹下的用户名
    下方的权限 读写 、写入 全部勾选。确定。
  16. 局域网跨vlan共享 局域网跨网段共享文件_文件共享_09

  17. 设置windows登陆凭据
    在其他需要访问此文件夹的电脑上,控制面板-用户账户-管理windows凭据-添加windows凭据:
    输入另一台电脑IP、用户名、登录密码(不是PIN码)
  18. 局域网跨vlan共享 局域网跨网段共享文件_网络_10

  19. 访问测试
    打开资源管理器,在地址栏输入 \\192.168.1.10 回车,就能访问了。
  20. 附加补充:
    如果使用无密码文件共享,也就是说电脑之间文件访问使用Guest账户访问,那么开启共享的电脑必须启用Guest来宾账户。
    然后,访问电脑的注册表AllowInsecureGuestAuth键值设为1。
    打开注册表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters”,
    找到“AllowInsecureGuestAuth”,将数值数据改为“1”;
    如果没有,在右侧空白位置,右键,新建一个DWORD(32)项重命名为“AllowInsecureGuestAuth”,设为“1”,确定。