documentation: Update descriptions for neighbor rules

This commit is contained in:
世界
2026-03-06 21:43:21 +08:00
parent 44d1c86b1b
commit 9462b1deeb
9 changed files with 133 additions and 16 deletions

View File

@@ -425,7 +425,7 @@ Match default interface address.
!!! quote ""
Only supported on Linux with `route.find_neighbor` enabled.
Only supported on Linux, macOS, or in graphical clients on Android and macOS. See [Neighbor Resolution](/configuration/shared/neighbor/) for setup.
Match source device MAC address.
@@ -435,7 +435,7 @@ Match source device MAC address.
!!! quote ""
Only supported on Linux with `route.find_neighbor` enabled.
Only supported on Linux, macOS, or in graphical clients on Android and macOS. See [Neighbor Resolution](/configuration/shared/neighbor/) for setup.
Match source device hostname from DHCP leases.

View File

@@ -424,7 +424,7 @@ Available values: `wifi`, `cellular`, `ethernet` and `other`.
!!! quote ""
仅支持 Linux,且需要 `route.find_neighbor` 已启用
仅支持 Linux、macOS或在 Android 和 macOS 图形客户端中支持。参阅 [邻居解析](/configuration/shared/neighbor/) 了解设置方法
匹配源设备 MAC 地址。
@@ -434,7 +434,7 @@ Available values: `wifi`, `cellular`, `ethernet` and `other`.
!!! quote ""
仅支持 Linux,且需要 `route.find_neighbor` 已启用
仅支持 Linux、macOS或在 Android 和 macOS 图形客户端中支持。参阅 [邻居解析](/configuration/shared/neighbor/) 了解设置方法
匹配源设备从 DHCP 租约获取的主机名。

View File

@@ -40,6 +40,7 @@ icon: material/alert-decagram
"override_android_vpn": false,
"default_interface": "",
"default_mark": 0,
"find_process": false,
"find_neighbor": false,
"dhcp_lease_files": [],
"default_domain_resolver": "", // or {}
@@ -114,17 +115,25 @@ Set routing mark by default.
Takes no effect if `outbound.routing_mark` is set.
#### find_process
!!! quote ""
Only supported on Linux, Windows, and macOS.
Enable process search for logging when no `process_name`, `process_path`, `package_name`, `user` or `user_id` rules exist.
#### find_neighbor
!!! question "Since sing-box 1.14.0"
!!! quote ""
Only supported on Linux.
Only supported on Linux and macOS.
Enable neighbor resolution for source MAC address and hostname lookup.
Enable neighbor resolution for logging when no `source_mac_address` or `source_hostname` rules exist.
Required for `source_mac_address` and `source_hostname` rule items.
See [Neighbor Resolution](/configuration/shared/neighbor/) for setup.
#### dhcp_lease_files
@@ -132,7 +141,7 @@ Required for `source_mac_address` and `source_hostname` rule items.
!!! quote ""
Only supported on Linux.
Only supported on Linux and macOS.
Custom DHCP lease file paths for hostname and MAC address resolution.

View File

@@ -42,6 +42,7 @@ icon: material/alert-decagram
"override_android_vpn": false,
"default_interface": "",
"default_mark": 0,
"find_process": false,
"find_neighbor": false,
"dhcp_lease_files": [],
"default_network_strategy": "",
@@ -113,17 +114,25 @@ icon: material/alert-decagram
如果设置了 `outbound.routing_mark` 设置,则不生效。
#### find_process
!!! quote ""
仅支持 Linux、Windows 和 macOS。
在没有 `process_name``process_path``package_name``user``user_id` 规则时启用进程搜索以输出日志。
#### find_neighbor
!!! question "自 sing-box 1.14.0 起"
!!! quote ""
仅支持 Linux。
仅支持 Linux 和 macOS
启用邻居解析以查找源 MAC 地址和主机名
在没有 `source_mac_address``source_hostname` 规则时启用邻居解析以输出日志
`source_mac_address``source_hostname` 规则项需要此选项
参阅 [邻居解析](/configuration/shared/neighbor/) 了解设置方法
#### dhcp_lease_files
@@ -131,7 +140,7 @@ icon: material/alert-decagram
!!! quote ""
仅支持 Linux。
仅支持 Linux 和 macOS
用于主机名和 MAC 地址解析的自定义 DHCP 租约文件路径。

View File

@@ -466,7 +466,7 @@ Match specified outbounds' preferred routes.
!!! quote ""
Only supported on Linux with `route.find_neighbor` enabled.
Only supported on Linux, macOS, or in graphical clients on Android and macOS. See [Neighbor Resolution](/configuration/shared/neighbor/) for setup.
Match source device MAC address.
@@ -476,7 +476,7 @@ Match source device MAC address.
!!! quote ""
Only supported on Linux with `route.find_neighbor` enabled.
Only supported on Linux, macOS, or in graphical clients on Android and macOS. See [Neighbor Resolution](/configuration/shared/neighbor/) for setup.
Match source device hostname from DHCP leases.

View File

@@ -463,7 +463,7 @@ icon: material/new-box
!!! quote ""
仅支持 Linux,且需要 `route.find_neighbor` 已启用
仅支持 Linux、macOS或在 Android 和 macOS 图形客户端中支持。参阅 [邻居解析](/configuration/shared/neighbor/) 了解设置方法
匹配源设备 MAC 地址。
@@ -473,7 +473,7 @@ icon: material/new-box
!!! quote ""
仅支持 Linux,且需要 `route.find_neighbor` 已启用
仅支持 Linux、macOS或在 Android 和 macOS 图形客户端中支持。参阅 [邻居解析](/configuration/shared/neighbor/) 了解设置方法
匹配源设备从 DHCP 租约获取的主机名。

View File

@@ -0,0 +1,49 @@
---
icon: material/lan
---
# Neighbor Resolution
Match LAN devices by MAC address and hostname using
[`source_mac_address`](/configuration/route/rule/#source_mac_address) and
[`source_hostname`](/configuration/route/rule/#source_hostname) rule items.
Neighbor resolution is automatically enabled when these rule items exist.
Use [`route.find_neighbor`](/configuration/route/#find_neighbor) to force enable it for logging without rules.
## Linux
Works natively. No special setup required.
Hostname resolution requires DHCP lease files,
automatically detected from common DHCP servers (dnsmasq, odhcpd, ISC dhcpd, Kea).
Custom paths can be set via [`route.dhcp_lease_files`](/configuration/route/#dhcp_lease_files).
## Android
!!! quote ""
Only supported in graphical clients.
Requires Android 11 or above and ROOT.
Must use [VPNHotspot](https://github.com/Mygod/VPNHotspot) to share the VPN connection.
ROM built-in features like "Use VPN for connected devices" can share VPN
but cannot provide MAC address or hostname information.
Set **IP Masquerade Mode** to **None** in VPNHotspot settings.
Only route/DNS rules are supported. TUN include/exclude routes are not supported.
### Hostname Visibility
Hostname is only visible in sing-box if it is visible in VPNHotspot.
For Apple devices, change **Private Wi-Fi Address** from **Rotating** to **Fixed** in the Wi-Fi settings
of the connected network. Non-Apple devices are always visible.
## macOS
Requires the standalone version (macOS system extension).
The App Store version can share the VPN as a hotspot but does not support MAC address or hostname reading.
See [VPN Hotspot](/manual/misc/vpn-hotspot/#macos) for Internet Sharing setup.

View File

@@ -0,0 +1,49 @@
---
icon: material/lan
---
# 邻居解析
通过
[`source_mac_address`](/configuration/route/rule/#source_mac_address) 和
[`source_hostname`](/configuration/route/rule/#source_hostname) 规则项匹配局域网设备的 MAC 地址和主机名。
当这些规则项存在时,邻居解析自动启用。
使用 [`route.find_neighbor`](/configuration/route/#find_neighbor) 可在没有规则时强制启用以输出日志。
## Linux
原生支持,无需特殊设置。
主机名解析需要 DHCP 租约文件,
自动从常见 DHCP 服务器dnsmasq、odhcpd、ISC dhcpd、Kea检测。
可通过 [`route.dhcp_lease_files`](/configuration/route/#dhcp_lease_files) 设置自定义路径。
## Android
!!! quote ""
仅在图形客户端中支持。
需要 Android 11 或以上版本和 ROOT。
必须使用 [VPNHotspot](https://github.com/Mygod/VPNHotspot) 共享 VPN 连接。
ROM 自带的「通过 VPN 共享连接」等功能可以共享 VPN
但无法提供 MAC 地址或主机名信息。
在 VPNHotspot 设置中将 **IP 遮掩模式** 设为 **无**
仅支持路由/DNS 规则。不支持 TUN 的 include/exclude 路由。
### 设备可见性
MAC 地址和主机名仅在 VPNHotspot 中可见时 sing-box 才能读取。
对于 Apple 设备,需要在所连接网络的 Wi-Fi 设置中将**私有无线局域网地址**从**轮替**改为**固定**。
非 Apple 设备始终可见。
## macOS
需要独立版本macOS 系统扩展)。
App Store 版本可以共享 VPN 热点但不支持 MAC 地址或主机名读取。
参阅 [VPN 热点](/manual/misc/vpn-hotspot/#macos) 了解互联网共享设置。

View File

@@ -129,6 +129,7 @@ nav:
- UDP over TCP: configuration/shared/udp-over-tcp.md
- TCP Brutal: configuration/shared/tcp-brutal.md
- Wi-Fi State: configuration/shared/wifi-state.md
- Neighbor Resolution: configuration/shared/neighbor.md
- Endpoint:
- configuration/endpoint/index.md
- WireGuard: configuration/endpoint/wireguard.md