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 口发往台式主机的,因此台式主机必须放行局域网连接。
- 开启 v2rayN 局域网共享
- 打开台式主机的 v2rayN 客户端。
- 进入 设置 -> 参数设置 -> 基础设置。
- 勾选 允许来自局域网的连接。
-
确认并记住底部的混合端口为
10808。 -
确认 Windows 防火墙放行
- 台式机收到来自
192.168.50.253的请求时,容易被 Windows 防火墙拦截。 - 右键点击右下角网络图标,进入网络设置,确保当前连接的网络(192.168.50.x)配置为 专用网络 (Private)。
- 注:若测试不通,可临时关闭专用网络防火墙,或手动新建入站规则放行 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. 载入配置
执行以下命令让刚才写入的脚本立即生效:
(执行后无任何提示说明语法正确,写入成功)。
四、 使用、测试与排障¶
1. 手动开启代理并测试
在终端输入开启命令:
终端将回显:Proxy enabled -> 192.168.50.188:10808。
使用 OpenWrt 内置的 wget 访问 Google 验证外网连通性:
正常情况:终端会输出几行 HTML 网页代码,说明海外网络已打通。此时可以执行 opkg update 或使用 wget 拉取 GitHub 上的第三方插件包。
2. 手动关闭代理
当依赖安装完毕,需要恢复正常的国内直连网络时,输入:
终端将回显:Proxy disabled.。
3. 常见排障点
- 返回
Connection refused(拒绝连接):通常是因为台式机v2rayN没有开启“允许局域网连接”,或者监听端口不是10808。 - 返回
Connection timed out(连接超时):OpenWrt 的请求被台式机 Windows 防火墙拦截,请检查并放行台式机的入站规则。