菜鸟科技网

网络邻居 命令

在 Windows 命令行中,并没有一个叫做 netsh neighbor 的直接命令。“网络邻居”这个概念在现代 Windows 中主要对应 网络发现ARP (地址解析协议) 缓存

网络邻居 命令-图1
(图片来源网络,侵删)

netsh 命令可以通过 netsh interfacenetsh lan 等上下文来管理和配置网络接口、网络位置以及相关的发现功能,这间接控制了“网络邻居”的行为。

下面我将分几个部分来详细说明:


查看“邻居” - ARP 缓存 (最接近“邻居”概念)

ARP (Address Resolution Protocol) 负责将 IP 地址解析为物理 MAC 地址,你的电脑 ARP 缓存里记录的,就是与你处于同一局域网、有过通信的“邻居”设备。

使用 arp 命令 (最直接)

这是查看 ARP 缓存最简单、最常用的命令。

网络邻居 命令-图2
(图片来源网络,侵删)
# 查看当前 ARP 缓存表
arp -a
# 查看特定接口的 ARP 缓存 (例如以太网)
# 你可以通过 ipconfig /all 查看接口描述
arp -a <接口IP地址>

输出示例:

接口: 192.168.1.100 --- 0x3
  Internet 地址      物理地址      类型
  192.168.1.1        00-1a-2b-3c-4d-5e     动态
  192.168.1.101      aa-bb-cc-dd-ee-ff     动态
  • Internet 地址:邻居的 IP 地址。
  • 物理地址:邻居的 MAC 地址。
  • 类型动态 是通过 ARP 协议自动学习和添加的,静态 是手动添加的,接口 是本机地址。

使用 netsh interface show neighbors (较新版本)

在较新的 Windows 版本 (如 Windows 10/11) 中,netsh 增加了一个 show neighbors 命令,功能与 arp -a 类似,但信息更丰富。

# 查看所有接口的邻居信息
netsh interface show neighbors

输出示例:

There are 1 interfaces with neighbors on the system.
Interface name : 以太网
  State        : connected
  Address type : ipv4
  Neighbor address   : 192.168.1.1
  Interface Luid     : 4000000000000001
  Interface Index    : 12
  Neighbor Luid      : 0000000000000002
  Neighbor Address   : 00-1a-2b-3c-4d-5e
  Type               : dynamic
  Reachability state : reachable
  Transitions        : 1

这个命令提供了更详细的接口状态和邻居可达性信息。

网络邻居 命令-图3
(图片来源网络,侵删)

配置“网络邻居”可见性 - 网络发现

“网络邻居”能否被看到,取决于 网络发现文件和打印机共享 这两个核心功能是否开启。netsh 可以用来配置这些功能。

进入 netsh 上下文

你需要进入 netsh 的特定上下文。

# 进入网络接口配置上下文
netsh interface

查看和配置网络发现

netsh interface> 提示符下,可以使用以下命令:

# 查看当前网络配置文件(域、专用、公用)
show interface
# 查看特定接口的发现设置 (例如以太网)
# 你需要先进入接口配置模式
set interface name="以太网" enable=enable
# 进入后,可以查看和配置发现
# show discovery
# set discovery mode=enable|disable

更直接的方法:使用 netsh lan 配置文件

对于有线和无线网络,netsh lan 提供了更精细的控制。

# 进入 LAN 配置上下文
netsh lan
# 显示所有配置文件(域、专用、公用)
show profiles
# 切换到特定配置文件,专用”
set profile name="专用" type=domain|private|public
# 在特定配置文件下,开启或关闭网络发现和文件共享
# 假设我们在“专用”配置文件下
set profile name="专用" networkdiscovery=enable|disable
set profile name="专用" fileandprintersharing=enable|disable

参数说明:

  • networkdiscovery=enable:开启网络发现,开启后,你的设备才可能出现在其他人的“网络邻居”列表中,你才能看到其他设备。
  • fileandprintersharing=enable:开启文件和打印机共享,这是网络发现的基础,通常需要同时开启。

netsh 命令总结与常见场景

目的 命令 说明
查看当前邻居 (ARP) arp -a 最直接、最常用的查看方法,显示 IP 与 MAC 的对应关系。
查看邻居 (详细信息) netsh interface show neighbors 新版 Windows 命令,提供接口状态和邻居可达性等额外信息。
进入网络配置 netsh interface 进入网络接口的配置上下文。
查看网络配置文件 netsh lan show profiles 查看当前的网络位置(域、专用、公用)。
开启网络发现 netsh lan set profile name="专用" networkdiscovery=enable 让你的设备在局域网中被可见。
关闭网络发现 netsh lan set profile name="公用" networkdiscovery=disable 增强安全性,防止设备在公共网络中被发现。
开启文件共享 netsh lan set profile name="专用" fileandprintersharing=enable 网络发现和文件共享通常需要同时开启才能正常工作。

常见问题排查

问题:为什么我的电脑在“网络邻居”里看不到其他设备?

  1. 检查网络发现和文件共享是否开启

    • 打开“控制面板” -> “网络和共享中心” -> 点击你当前连接的网络(如“以太网”)。
    • 点击“属性”,确保勾选了“启用网络发现”和“启用文件和打印机共享”。
    • 或者使用上面的 netsh 命令检查并开启。
  2. 检查网络位置

    • 确保你的网络被识别为“专用”网络,Windows 默认在“公用”网络下会关闭网络发现以增强安全性。
    • 你可以在“网络和共享中心”更改网络位置类型。
  3. 检查防火墙

    Windows Defender 防火墙可能会阻止网络发现,请确保“文件和打印机共享”相关规则在防火墙中是允许的。

  4. 检查工作组

    • 要在“网络邻居”中看到其他计算机,它们通常需要在同一个工作组下,可以在“系统属性”中查看和修改。
  5. 检查服务状态

    • 确保以下服务正在运行:
      • Function Discovery Provider Host
      • Function Discovery Resource Publication
      • SSDP Discovery
      • UPnP Device Host
    • 可以在“服务” (services.msc) 中找到并启动它们。

虽然 netsh 没有一个直接叫 neighbor 的命令,但通过 arp -a 查看邻居列表,以及通过 netsh lannetsh interface 配置网络发现功能,你可以完全控制和管理“网络邻居”相关的所有核心设置,对于日常排查和高级脚本管理,netsh 是一个非常强大的工具。

分享:
扫描分享到社交APP
上一篇
下一篇