把运行 v2rayN 的 Mac 作为局域网代理入口,需要同时满足三个条件:代理端口监听局域网接口、防火墙允许入站、其他设备填写正确的主机地址与端口。本文用示例地址 192.168.1.20、HTTP 端口 10809 和 SOCKS5 端口 10808 说明操作与排错;这些都是说明用数值,实际填写前必须核对客户端设置。
局域网共享与系统代理的区别
开启 Mac 的系统代理,只是让遵循系统代理设置的本机应用把请求交给 v2rayN。其他设备不会因此自动获得代理。局域网共享则是在 Mac 上开放一个可被同网设备访问的 HTTP 或 SOCKS 入站,其他设备主动连接这个入口。
请求的路径是“其他设备 → Mac 的本地入站 → v2rayN 当前路由与出站 → 目标站点”。远端节点地址、UUID 等认证信息留在 Mac 的客户端配置里;接入设备通常只需知道 Mac 的局域网地址、入站协议和端口。使用前仍应确认订阅服务允许这种使用方式及相应的并发连接数。
- Mac 必须保持运行:退出 v2rayN、核心停止或电脑睡眠后,共享入口就不可用。
- 同名 Wi-Fi 不等于互通:访客网络、无线客户端隔离、不同 VLAN 都可能阻止设备之间建立连接。
- 代理不等于全流量接管:只有使用该代理的应用请求会进入 Mac,不遵循代理设置的应用仍可能直连。
- 共享会沿用路由:进入同一入站的请求通常按 Mac 当前规则分流,并非所有请求都会发往远端代理节点。
监听地址、局域网 IP 与端口怎么对应
最常见的错误,是在其他设备上填写 127.0.0.1。回环地址始终指向填写它的那台设备,而不是运行 v2rayN 的 Mac。另一个错误是把 0.0.0.0 当作代理服务器地址:它用于服务端监听,不能作为客户端连接的目标。
| 配置值 | 含义 | 其他设备如何填写 |
|---|---|---|
127.0.0.1 | 只监听本机回环接口 | 不能通过这个监听供其他设备接入 |
0.0.0.0 | 监听全部 IPv4 本地接口 | 填写 Mac 的实际局域网 IPv4 地址 |
192.168.1.20 | 本文示例中的 Mac 局域网地址 | 替换为当前 Mac 的真实地址 |
10809 | 本文示例 HTTP 入站端口 | 仅在确认它提供 HTTP 代理后使用 |
10808 | 本文示例 SOCKS5 入站端口 | 仅在确认它提供 SOCKS5 后使用 |
不同版本、核心与既有设置可能使用不同端口,也可能提供混合入站。不要根据端口数字猜协议。应先看参数设置或生成配置中的入站定义,再决定填写 HTTP 还是 SOCKS5。配置中若出现 IPv6 通配监听 ::,也不能仅凭这一项推断 IPv4 一定可接入,需要实际测试。
结论:先核对协议,再抄地址
先确定一个可用的 HTTP 入站,再让第二台设备连接 Mac 的真实局域网 IP。第一次验证只处理这一条链路,暂时不要同时改端口、路由和 DNS。
v2rayN 开启允许局域网连接
先在 Mac 本机确认当前节点能用,再开放局域网入口。下面按常见桌面界面说明;不同版本的子页和开关文字可能略有差别,但应查找的是本地入站的监听范围,不是远端服务器地址,也不是远端服务端口。
-
确认本机可用
启动 v2rayN,选中可用服务器,用本机代理访问目标站点。若本机已经失败,先处理节点、订阅或核心启动问题,不要直接排查局域网。
-
开启局域网
进入「设置」→「参数设置」,在核心基础设置或入站相关页面查找「允许来自局域网的连接」一类开关并启用。若当前界面没有该项,先核对该版本的入站设置说明,不要改动名称相近的远端参数。
-
记录入站端口
在同一设置区域记录 HTTP、SOCKS 或混合入站的实际端口。本文后续以 HTTP 10809 为例;若只提供混合端口,应确认该端口接受 HTTP 代理请求。
-
保存并重载
保存设置,让客户端重新加载核心配置;若界面提示需要重启核心,按提示操作。随后检查日志中是否有端口占用、配置加载失败或监听失败的信息。
-
读取主机地址
打开 macOS「系统设置」→「网络」→ 当前已连接的网络服务 →「详细信息」→「TCP/IP」,记录 IPv4 地址。Mac 同时连接有线与无线网络时,选择与接入设备处于可互通网络中的那个地址。
可以在 Mac 的「终端」中运行下面的只读命令,检查示例端口是否存在 TCP 监听。使用其他端口时替换命令中的数字;若权限限制导致结果不完整,应结合核心日志判断。
lsof -nP -iTCP:10809 -sTCP:LISTEN
结果中若只有 127.0.0.1:10809,说明仍只对本机开放;若显示 *:10809,还应结合输出中的 IPv4、IPv6 类型确认监听范围,并从另一台设备验证。客户端生成的 config.json 可以用来观察 inbounds 中的 listen、port 与 protocol,但不要把直接编辑生成文件当作长期设置方法,下一次保存或切换节点可能覆盖它。
macOS 防火墙与路由器隔离检查
监听成功不代表局域网请求一定能到达进程。macOS 防火墙、其他网络过滤工具和路由器隔离设置都可能阻断连接。排查时保留防火墙,只放行必要的程序,不要把长期关闭防火墙当成共享步骤。
- 进入 macOS「系统设置」→「网络」→「防火墙」→「选项」。系统版本不同,入口名称可能略有变化。
- 检查是否启用了「阻止所有传入连接」。如果该策略必须保留,普通应用入站共享可能无法按本文方式工作;受管理设备应先遵循管理员策略。
- 在应用列表中检查 v2rayN 的入站权限,按需设置为允许传入连接。系统弹出网络入站请求时,应确认请求程序与当前客户端一致。
- 若仍被拦截,结合
lsof的进程信息核对实际监听者。某些打包方式由核心进程承担监听,需要核对该进程的权限,而不是随意放行不明程序。 - 检查路由器中的「访客网络」「AP 隔离」或「客户端隔离」。优先把两台设备接入可信、允许互通的主网络,不为此建立公网端口映射。
其他设备填写 HTTP 还是 SOCKS5
先根据应用支持的代理类型选择入口。HTTP 代理也能通过 CONNECT 承载常见 HTTPS 请求,名称里的 HTTP 不表示只能访问普通 HTTP 网页。SOCKS5 则需要应用或系统明确支持,不能把 SOCKS 端口直接填进 HTTP 代理栏。
HTTP 手动代理
推荐以主机 192.168.1.20、端口 10809 为例,分别填写服务器和端口字段。首次验证只需检查浏览器能否通过该入口加载网页。
适合:Android Wi-Fi、Windows 系统代理,以及提供 HTTP 代理设置的应用。
SOCKS5 应用代理
应用中选择 SOCKS5,填写主机 192.168.1.20 与示例端口 10808。域名由本机还是代理侧解析,应另看应用的远程 DNS 选项。
适合:明确支持 SOCKS5 的桌面应用、命令行工具与 Linux 工作环境。
- Android:常见入口是「设置」→「网络和互联网」→「互联网」→ 当前 Wi-Fi 的设置 → 编辑网络 →「高级选项」→「代理」→「手动」。厂商菜单可能不同,填写代理主机名和端口后保存。此设置不是所有应用都会遵循。
- Windows:进入「设置」→「网络和 Internet」→「代理」→「手动设置代理」→「设置」,启用代理服务器并填写地址、端口。独立代理配置的应用仍需单独设置。
- 另一台 Mac:进入「系统设置」→「网络」→ 当前网络服务 →「详细信息」→「代理」。使用 HTTP 入站时,按需配置「网页代理(HTTP)」及「安全网页代理(HTTPS)」为相同主机和端口。
- Linux:桌面网络代理面板的名称因环境而异。第一次验证可先使用下面的命令,不必立即修改整个桌面的代理设置。
服务器字段通常只填写 192.168.1.20,不要加入 http://,端口放到独立端口栏。只有明确要求“代理 URL”的工具才使用完整 URL。若入站配置了认证,还需填写该入站要求的用户名和密码,而不是远端节点的 UUID。
用命令区分端口不通与代理失败
以下测试应在另一台设备执行,而不是只在提供共享的 Mac 上执行。macOS 和常见 Linux 环境可使用 curl;Windows 可调用 curl.exe,避免终端环境中的同名命令别名影响判断。测试地址使用示例域名,仅用于观察请求过程,不代表所有目标站点都已验证。
# HTTP 入站:替换成 Mac 的真实地址和实际端口
curl --noproxy "" -I -v --connect-timeout 5 --max-time 15 \
--proxy http://192.168.1.20:10809 https://example.com/
# SOCKS5 入站:socks5h 表示把域名交给代理侧处理
curl --noproxy "" -I -v --connect-timeout 5 --max-time 15 \
--proxy socks5h://192.168.1.20:10808 https://example.com/
| 观察结果 | 优先检查 | 下一步动作 |
|---|---|---|
| 连接被拒绝 | 端口填错、核心未运行、仅监听回环地址 | 回到 Mac 检查监听与启动日志;也留意显式拒绝连接的过滤规则 |
| 建立连接超时 | 地址不可达、防火墙丢弃、无线隔离 | 核对当前 IP 与网络服务,检查入站权限和访客网络 |
| 返回 407 | HTTP 入站要求代理认证 | 填写入站认证信息,不要使用节点认证字段代替 |
| 连接后请求失败 | 协议不匹配、出站不可用、DNS 或路由问题 | 对照请求时间查看核心日志,确认是否命中预期出站 |
| 收到目标响应 | 该次代理请求链路已建立 | 再验证日常应用及其独立代理设置 |
上面的 5 秒连接超时和 15 秒总超时只是排错参数,不是速度或延迟测量结果。成功加载一个网页也不意味着 UDP、游戏或实时通话已经被代理。HTTP 代理通常不能承载任意 UDP;SOCKS5 的 UDP 转发也取决于接入应用、入站和后续链路支持,不能仅凭开启共享作出保证。
局域网共享常见问题
Mac 自己能上网,其他设备为什么超时?
先用 lsof 检查端口是否只监听 127.0.0.1,再确认其他设备填写的是 Mac 当前局域网 IP。接着检查防火墙和访客网络隔离,不要先重置订阅或更换远端节点。
手机网页能打开,某个应用却不走代理?
Android 的 Wi-Fi 手动代理并不强制所有应用使用。先检查该应用是否提供独立 HTTP 或 SOCKS5 设置;需要设备端独立接管时,可按实际需求配置 v2rayNG 或 v2flyNG,而不是反复修改 Mac 端口。
昨天可用,今天为什么连不上同一个地址?
进入 Mac 的网络详细信息重新确认 IPv4 地址。DHCP 租约或切换网络可能改变地址;长期使用可在自有路由器中配置 DHCP 地址保留,避免自行填写可能与其他设备冲突的静态地址。
共享结束后要关闭哪些设置?
先在接入设备撤销手动代理,再关闭 v2rayN 的局域网连接开关并重载核心。用监听命令确认端口已回到回环地址或停止监听;否则设备下次接入其他网络时,可能仍尝试连接旧地址。
稳定共享的关键是保持地址、监听和访问范围可控。首次配置完成后,记录入站协议、端口与路由模式即可,不必把生成的整份配置分发给每台设备。更新客户端或更换核心后,再从第二台设备执行一次连接测试,确认共享设置仍然生效。