OpenWRT VLESS 客户端配置:通过 Xray 路由所有流量
在路由器级别运行 VLESS 意味着您网络上的每台设备都受益于代理 —— 智能手机、智能电视、IoT 设备 —— 无需在每台设备上安装任何客户端软件。本指南涵盖在 OpenWRT 上安装 xray-core 和 sing-box。
本设置指南会产出一个 OpenWrt 路由器配置,把选定网络流量发送到 VLESS 或 Xray 代理。它适合希望为多台设备、实验室或自动化环境做路由级代理的用户,覆盖前置条件、Xray 安装、配置、DNS 和验证。
本指南为中文技术内容,适合在配置移动代理、HTTP、SOCKS5、OpenVPN、VLESS、DNS、端口、浏览器或自动化工具前阅读。每个步骤都应结合当前控制台配置和实时诊断结果确认。
实际部署时,请记录代理端点、协议、凭据、出口 IP、ASN、运营商、DNS 解析器、延迟、轮换时间、目标网站响应和错误截图。这样排错时能快速判断问题来自本地设置、代理网络还是目标平台。
前提条件
您需要至少有 16MB 闪存和 128MB RAM 的 OpenWRT 路由器。在 openwrt.org 上检查您的路由器型号以确认兼容性。本指南在 OpenWRT 23.05 和 GL.iNet 路由器上测试。
所需软件包:xray-core(或 sing-box 作为替代)、iptables-nft、dnsmasq-full(替换 dnsmasq)。需要对路由器的 SSH 访问。
在 OpenWRT 上安装 xray-core
通过 SSH 连接:ssh root@192.168.1.1。然后安装 xray-core:opkg update && opkg install xray-core。如果 xray-core 不在您构建的 opkg 仓库中,从 GitHub 下载 arm/mipsle 二进制文件并放置在 /usr/bin/xray 中。
创建配置目录:mkdir -p /etc/xray。主配置文件将是 /etc/xray/config.json。
VLESS 客户端配置
使用您的 VLESS 入站和出站配置创建 /etc/xray/config.json。入站处理本地流量(端口 1080 上的 SOCKS5 + 端口 1081 上的透明代理),出站连接到您的 VLESS 服务器。
config.json 结构
{ "inbounds": [{"port": 1080, "protocol": "socks"}, {"port": 1081, "protocol": "dokodemo-door", "settings": {"followRedirect": true}'}], "outbounds": [{"protocol": "vless", "settings": {"vnext": [{"address": "YOUR_SERVER", "port": 443, "users": [{"id": "YOUR_UUID", "encryption": "none", "flow": "xtls-rprx-vision"}]}]}, "streamSettings": {"network": "tcp", "security": "reality", "realitySettings": {"fingerprint": "chrome", "serverName": "YOUR_SNI", "publicKey": "YOUR_PUBKEY"}'}'}] }使用 iptables 的路由规则
要拦截所有 TCP/UDP 流量并通过 xray 路由,添加 iptables 规则。创建带有 PREROUTING 规则的 /etc/firewall.user,将流量重定向到端口 1081(dokodemo-door),本地和保留 IP 除外。
将 xray 添加到启动项:/etc/init.d/xray enable。启动服务:/etc/init.d/xray start。查看日志:logread | grep xray。
DNS 泄漏预防
没有 DNS 泄漏预防,DNS 查询会绕过代理并泄露您的真实位置。配置 dnsmasq 通过 xray 的 DNS 转发所有查询:在 /etc/dnsmasq.conf 中,设置 server=127.0.0.1#5300 并禁用 systemd-resolved。
向 xray 配置添加端口 5300 上的 DNS 入站,通过 VLESS 出站转发查询。在 proxypoland.com/tools/dns-leak-test 测试 —— 所有 DNS 服务器应显示为波兰 IP。
验证
从您网络上的任何设备,访问 proxypoland.com/tools/proxy-checker。您的 IP 应该是波兰移动运营商 IP。运行速度测试 —— 在功能强大的路由器上通过 VLESS Reality 通常可看到 20-40 Mbps。
官方来源
常见问题
OpenWRT 上哪种更好 —— xray-core 还是 sing-box?+
两者都支持 VLESS Reality。xray-core 更成熟,文档更丰富。sing-box 具有更简单的 JSON 配置格式和更好的 UDP 性能。对于大多数刚入门的用户来说,xray-core 更容易找到帮助。
OpenWRT 上的 VLESS 会降低我的网络速度吗?+
加密有 CPU 成本。在旧版 MIPS 路由器上,您可能会看到 10-20% 的吞吐量降低。现代 ARM 路由器(GL.iNet Beryl AX、Banana Pi R4)以全线速处理 VLESS Reality。如果速度至关重要,使用 XTLS-Vision 流,它会卸载一些处理。
我的 OpenWRT 路由器在 opkg 中没有 xray-core。我该怎么做?+
从 github.com/XTLS/Xray-core/releases 下载适用于您 CPU 架构的预编译 xray 二进制文件。匹配架构:大多数旧版路由器为 MIPS24kc,现代路由器为 ARM v7/v8。放置在 /usr/bin/xray 并执行 chmod +x。
我可以在 OpenWRT 上只路由某些设备通过 VLESS 吗?+
是的。在 iptables PREROUTING 规则中,按源 IP 或 MAC 地址匹配,而不是路由所有流量。示例:添加 -s 192.168.1.50 仅路由一台设备通过 VLESS,而其他设备使用普通互联网。
Proxy Poland 支持 VLESS 协议吗?+
是的。每个 Proxy Poland 套餐都包含 VLESS/Xray 协议访问。您在订阅时会收到 VLESS Reality 连接字符串。该协议在端口 443 上以 Reality 伪装运行,使其具有抗深度包检测能力。
如何通过opkg在OpenWRT上安装xray-core?+
SSH进入路由器,运行opkg update,然后opkg install xray-core。在旧版OpenWRT(19.07及以下),xray-core可能不在官方feeds中——添加社区feeds后再次运行opkg update。安装后,xray可执行文件位于/usr/bin/xray。通过xray version验证版本。
OpenWRT运行VLESS全速需要多少RAM?+
xray-core空闲状态最少需要64 MB空闲RAM,持续吞吐建议128 MB以上。总RAM为32 MB的路由器(早期TP-Link、Netgear型号)在流量峰值期会出现OOM崩溃。对于家庭路由使用,64-128 MB总RAM的路由器(GL.iNet Flint 2、ASUS RT-AX88U)可以胜任VLESS工作负载。如果RAM不足,考虑将xray-core运行在局域网内的小型x86主机(树莓派4、mini PC)上,并通过iptables将流量从路由器重定向至该主机。
如何在OpenWRT上让特定设备通过VLESS路由?+
使用策略路由,通过将特定MAC地址或LAN IP的数据包标记到单独路由表的iptables/nftables规则实现。基本步骤:1)在route table 100中添加via xray TUN接口的默认路由;2)用iptables将目标设备的流量打标;3)添加ip rule把标记流量导入table 100。xray透明代理模式(REDIRECT或TPROXY)在xray的inbound配置中处理这部分。
OpenWRT上的VLESS在路由器重启后还能工作吗?+
如果您启用了服务,则可以:/etc/init.d/xray enable和/etc/init.d/xray start。init脚本在启动时重新启动xray-core。对于Passwall或ShadowSocksR-Plus+等插件管理器,在LuCI UI中启用开机自启选项。验证方法:reboot后运行ps | grep xray,确认进程正在运行。如果重启后失败,检查init脚本的文件权限:chmod +x /etc/init.d/xray。
4G上游路由器的VLESS应设置什么MTU?+
LTE链路通常使用MTU 1428-1500,取决于运营商;加上VLESS封装开销,在xray的虚拟接口或上游WAN上设置MTU 1380-1400。过高的MTU导致IP碎片化,引起随机丢包和吞吐量下降。测试方法:ping -M do -s 1350 8.8.8.8——如果成功则逐步增加到不再出现碎片的最大值。在支持LTE的OpenWRT上,在Network > Interfaces > WAN中设置MTU,以传递到所有出站隧道。
OpenWRT能否在使用默认WAN的同时使用Proxy Poland的VLESS配置文件?+
可以——这是标准配置。WAN为普通设备处理直接互联网访问;xray-core服务在局域网上的某个端口监听,并将流量通过VLESS隧道转发到Proxy Poland的Polish carrier IP。使用策略路由:特定设备或域名通过xray路由,其余流量走默认WAN。这样可以将波兰代理IP专门用于特定应用,而不影响其他设备。
如何在OpenWRT上监控VLESS流量和带宽?+
安装vnstat(opkg install vnstat)并将其绑定到xray虚拟接口或上游WAN——vnstat -d显示每日历史记录,vnstat -m显示月度汇总。对于实时监控,使用bmon或ifstat,与xray TUN接口绑定。xray-core内置流量统计API——在xray config的api部分启用StatsService,然后通过HTTP JSON API查询流量数据。
获取 VLESS 访问权限
需要连接的 VLESS 代理服务器?
Proxy Poland 提供支持 VLESS/Xray 的专属波兰 4G/5G 手机代理。真实 SIM 卡和真实 Android 手机,1.8 秒 IP 轮换,99.6% 在线时间。
博客相关文章
中文技术补充
OpenWRT + VLESS:配置、验证与风险边界
适用场景
用于把路由器流量通过 Xray/VLESS 出口,而不是只配置单台电脑。
在 Proxy Poland 中,核心判断不是能否连上代理,而是目标网站是否看到一致的移动网络信号。配置完成后,应把代理出口、账号、浏览器资料、地区、语言、DNS 和任务节奏作为同一套 workflow 管理。
配置顺序
先在单客户端证明配置可用,再迁移到 OpenWRT,逐项设置防火墙、DNS、策略路由和旁路规则。
如果页面涉及 VLESS、Xray、OpenVPN、SOCKS5 或 HTTP,请先在单个浏览器会话中测试,再接入脚本、路由器或自动化集群。这样可以把代理问题、客户端问题和目标网站风控分开排查。
| 检查项 | 应该确认什么 | 推荐入口 |
|---|---|---|
| 出口 IP | 检查路由器日志、xray 进程、DNS、IPv6、MTU、目标设备出口 IP 和局域网分流。 | What Is My IP |
| DNS | 确认 DNS resolver 没有泄漏到本机网络或错误国家。 | DNS Leak Test |
| 速度 | 记录延迟、失败率和目标网站响应时间,避免只看一次测速。 | Proxy Speed Test |
| 价格 | 按端口、流量、协议、支持和轮换方式比较真实成本。 | Pricing |
排错优先级
先检查认证、协议和端口,再检查 DNS、IPv6、本机 VPN、浏览器代理设置和客户端日志。最后再判断目标网站是否因为账号历史、请求频率或指纹不一致而拒绝访问。
风险边界
路由器级代理的故障面更大;DNS、IPv6 或 firewall 任何一项错误都可能让部分流量绕过代理。 如需 VLESS 或 Xray 入口,请从VLESS/Xray 指南开始,再按本页场景接入具体工具。
OpenWRT + VLESS 生产验证清单
下列字段用于记录一次完整的 OpenWRT + VLESS 测试。它们让 support、SEO 审核、自动化工程师和客户能够复现同一条代理链路,而不是只依赖“能打开页面”这种模糊判断。
- OpenWRT + VLESS check 01: proxy host, proxy port, username, password, whitelist IP, HTTP proxy, SOCKS5 proxy. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 02: OpenVPN profile, VLESS link, Xray core, UUID, SNI, pbk, sid, flow, TLS, Reality. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 03: visible IP, ISP, ASN, country, city, timezone, browser locale, Accept-Language. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 04: DNS resolver, DNS leak, WebRTC leak, IPv6 route, MTU, TCP timeout, status code. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 05: latency, download speed, upload speed, packet loss, retry rate, target response time. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 06: rotation timestamp, rotation API, sticky session, session length, modem reboot, SIM status. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 07: browser profile, cookies, localStorage, fingerprint, user agent, viewport, device memory. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 08: Playwright job, Selenium script, Python requests, Puppeteer task, curl test, httpx client. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 09: account login, verification loop, captcha rate, block rate, redirect chain, final URL. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 10: pricing plan, bandwidth model, support path, dashboard state, error log, evidence screenshot. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 11: carrier signal, mobile ASN, CGNAT behavior, SIM operator, modem identifier, connection uptime. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 12: target domain, target path, request method, request headers, response headers, cache status. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 13: proxy protocol, authentication scheme, endpoint region, exit country, exit city, network type. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 14: session policy, rotation trigger, manual rotate, scheduled rotate, IP cooldown, task isolation. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 15: automation profile, anti-detect browser, timezone match, language match, cookie persistence, login age. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 16: SERP tracking, ad verification, ecommerce monitoring, price scraping, inventory checking, QA workflow. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 17: error category, timeout error, authentication error, protocol error, DNS error, target block. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 18: support ticket, reproduction steps, test account, test device, test script, observed result. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 19: risk signal, request velocity, concurrency limit, retry budget, backoff interval, queue depth. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 20: proxy checker, IP checker, DNS leak test, speed test, headers checker, port checker. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 21: OpenWRT router, V2rayN client, Shadowrocket client, mobile browser, desktop browser, server logs. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 22: benchmark sample, median latency, p95 latency, success ratio, failure reason, monitoring window. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 23: account group, browser profile group, proxy pool group, market segment, country segment, platform segment. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 24: documentation owner, review date, production evidence, configuration source, dashboard screenshot, changelog note. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 25: canonical URL, internal link, anchor text, hreflang URL, sitemap entry, structured data. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 26: commercial page, guide page, tool page, comparison page, use case page, methodology page. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 27: traffic source, conversion path, trial signup, pricing click, support escalation, customer workflow. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 28: security boundary, credential storage, whitelist policy, access control, audit log, incident note. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 29: data collection, rate limiting, compliance review, robots policy, terms review, consent boundary. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 30: quality gate, regression check, crawl sample, rendered HTML, visible text, text freshness. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 31: mobile proxy, dedicated modem, physical device, real SIM card, Polish carrier, customer session. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 32: routing rule, firewall rule, local VPN, system proxy, application proxy, tunnel mode. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 33: client version, configuration expiry, certificate setting, Reality public key, short ID, transport layer. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
- OpenWRT + VLESS check 34: fallback plan, rollback path, disabled account, blocked endpoint, temporary error, permanent error. 记录这些字段后,再说明目标网站、账号、请求频率、连接协议、失败原因和下一步处理方式。
如果同一任务在 HTTP、SOCKS5、OpenVPN 和 VLESS 中结果不同,优先保留每次测试的 raw status code、response header、DNS resolver、visible IP、target URL、client log 和 timestamp。这样可以判断问题来自代理、客户端、DNS、目标平台风控还是账号历史。