Skip to content

OpenWrt 通过 WAN 口级联调用局域网主机代理连网教程

本教程适用于 OpenWrt 作为二级路由(通过 WAN 口连接上级路由)且自身已具备国内网络访问权限,但需要临时调用处于同一上级局域网内的台式主机代理(v2rayN)以拉取海外软件源或依赖的场景。


一、 网络拓扑与路由逻辑

在开始配置前,明确各设备的 IP 角色及流量走向:

  • 上级主路由:192.168.50.1(负责分配 50.x 网段 IP)。
  • 台式主机:192.168.50.188(运行 v2rayN,监听端口 10808)。
  • OpenWrt 新设备:
  • WAN 口 IP:192.168.50.253(与台式主机处于同一物理局域网)。
  • LAN 口 IP:192.168.5.1(OpenWrt 自身发出的网段及后台登录地址)。

  • 流量逻辑:当在 OpenWrt 终端开启代理后,请求会从其 WAN 口(50.253)发出,通过上级路由的交换机直达台式主机(50.188),由 v2rayN 接管并转发至外网。


二、 台式主机端准备工作 (v2rayN)

OpenWrt 的请求是从其 WAN 口发往台式主机的,因此台式主机必须放行局域网连接。

  1. 开启 v2rayN 局域网共享
  2. 打开台式主机的 v2rayN 客户端。
  3. 进入 设置 -> 参数设置 -> 基础设置。
  4. 勾选 允许来自局域网的连接。
  5. 确认并记住底部的混合端口为 10808。

  6. 确认 Windows 防火墙放行

  7. 台式机收到来自 192.168.50.253 的请求时,容易被 Windows 防火墙拦截。
  8. 右键点击右下角网络图标,进入网络设置,确保当前连接的网络(192.168.50.x)配置为 专用网络 (Private)。
  9. 注:若测试不通,可临时关闭专用网络防火墙,或手动新建入站规则放行 TCP 10808 端口。

三、 OpenWrt 终端代理环境配置

通过 SSH 登录 OpenWrt 终端(通过其 LAN IP 192.168.5.1 登录,或若已放行 WAN 访问则通过 192.168.50.253 登录)。

1. 写入快捷开关脚本

直接在终端整段复制并执行以下代码。该代码会将针对台式机 192.168.50.188:10808 的代理开关写入系统环境变量中。(注意:函数名已使用下划线,避免 ash 终端报错)。

cat << 'EOF' >> /etc/profile

v2ray_on() {
export HOST_IP="192.168.50.188"
export PORT="10808"
export http_proxy="http://$HOST_IP:$PORT"
export https_proxy="http://$HOST_IP:$PORT"
export ALL_PROXY="socks5://$HOST_IP:$PORT"
echo "Proxy enabled -> $HOST_IP:$PORT"
}

v2ray_off() {
unset http_proxy https_proxy ALL_PROXY HOST_IP PORT
echo "Proxy disabled."
}
EOF

2. 载入配置

执行以下命令让刚才写入的脚本立即生效:

source /etc/profile

(执行后无任何提示说明语法正确,写入成功)。


四、 使用、测试与排障

1. 手动开启代理并测试

在终端输入开启命令:

v2ray_on

终端将回显:Proxy enabled -> 192.168.50.188:10808。

使用 OpenWrt 内置的 wget 访问 Google 验证外网连通性:

wget -qO- https://www.google.com | head -n 5

正常情况:终端会输出几行 HTML 网页代码,说明海外网络已打通。此时可以执行 opkg update 或使用 wget 拉取 GitHub 上的第三方插件包。

2. 手动关闭代理

当依赖安装完毕,需要恢复正常的国内直连网络时,输入:

v2ray_off

终端将回显:Proxy disabled.。

3. 常见排障点

  • 返回 Connection refused (拒绝连接):通常是因为台式机 v2rayN 没有开启“允许局域网连接”,或者监听端口不是 10808。
  • 返回 Connection timed out (连接超时):OpenWrt 的请求被台式机 Windows 防火墙拦截,请检查并放行台式机的入站规则。