# OpenWrt 旁路由 + FRP 内网穿透 完整安装教程 ## 网络架构 ``` 互联网 │ [光猫] │ [主路由] ← 192.168.1.1 │ ├─ [电脑/手机] ├─ [其他设备] └─ [fnOS 服务器] │ [Intel 网卡] │ [OpenWrt 旁路由] ← 192.168.1.2 │ [科学上网插件] │ [FRP 客户端] │ ▼ [云服务器 FRP服务端] │ ▼ [远程访问] ``` ## 硬件准备 | 设备 | 要求 | |------|------| | fnOS 服务器 | 带双网卡或额外 PCIe 网卡 | | Intel 千兆网卡 | 用于 OpenWrt 旁路由 | | 国内云服务器 | 1核1G,用于 FRP 中转 | | U盘 | 8G+,用于 OpenWrt 启动盘(可选)| ## 一、安装 OpenWrt ### 1. 下载镜像 ```bash wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz gunzip openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz ``` ### 2. 制作启动盘 **方案 A:USB 启动盘** ```bash sudo dd if=openwrt-23.05.3-x86-64-generic-ext4-combined.img of=/dev/sdX bs=4M status=progress ``` **方案 B:fnOS 虚拟机(推荐)** ``` 1. fnOS 控制面板 → 虚拟机 2. 创建虚拟机 → Linux 3. 分配 1-2 核 CPU,512M-1G 内存 4. 硬盘 1-2G 5. 网络:桥接模式,直通 Intel 网卡 6. 启动 ISO 选择 OpenWrt 镜像 ``` ## 二、配置旁路由 ### 1. 首次登录 ```bash ssh root@192.168.1.1 # 默认无密码 passwd # 设置密码 ``` ### 2. 网络配置(关键!) ```bash uci set network.lan.ipaddr='192.168.1.2' uci set network.lan.gateway='192.168.1.1' uci set network.lan.dns='192.168.1.1' uci commit network /etc/init.d/network restart ``` ### 3. 关闭 DHCP(必须!) ```bash uci set dhcp.lan.ignore='1' uci commit dhcp /etc/init.d/dnsmasq restart ``` ### 4. 关闭防火墙 NAT ```bash uci set firewall.@zone[1].masq='0' uci commit firewall /etc/init.d/firewall restart ``` ## 三、科学上网配置 ### 1. 更换软件源 ```bash sed -i 's/downloads.openwrt.org/mirrors.tuna.tsinghua.edu.cn\/openwrt/g' /etc/opkg/distfeeds.conf opkg update ``` ### 2. 安装 Passwall ```bash opkg install luci-app-passwall ``` ### 3. 配置 1. 浏览器访问 `http://192.168.1.2` 2. 服务 → Passwall 3. 添加节点订阅或手动添加节点 4. 运行模式:GFW列表 5. 保存并应用 ## 四、FRP 内网穿透 ### 1. 云服务器端(frps) ```bash wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz tar xzf frp_0.52.3_linux_amd64.tar.gz cd frp_0.52.3_linux_amd64 cat > frps.toml << 'EOF' bindPort = 7000 auth.token = "your_secure_token" webServer.addr = "0.0.0.0" webServer.port = 7500 webServer.user = "admin" webServer.password = "admin_password" EOF ./frps -c frps.toml ``` ### 2. OpenWrt 端(frpc) ```bash opkg update opkg install frpc cat > /etc/frp/frpc.toml << 'EOF' serverAddr = "你的云服务器IP" serverPort = 7000 auth.token = "your_secure_token" [[proxies]] name = "openwrt-web" type = "tcp" localIP = "192.168.1.2" localPort = 80 remotePort = 8080 [[proxies]] name = "openwrt-ssh" type = "tcp" localIP = "192.168.1.2" localPort = 22 remotePort = 8022 EOF frpc -c /etc/frp/frpc.toml ``` ## 五、开机自启 ```bash cat > /etc/init.d/frpc << 'EOF' #!/bin/sh /etc/rc.common START=99 STOP=10 start() { /usr/bin/frpc -c /etc/frp/frpc.toml > /var/log/frpc.log 2>&1 & } stop() { killall frpc } EOF chmod +x /etc/init.d/frpc /etc/init.d/frpc enable /etc/init.d/frpc start ``` ## 六、客户端配置 ### 方案 A:单设备指定网关 | 设置 | 值 | |------|-----| | 网关 | 192.168.1.2 | | DNS | 192.168.1.2 | ### 方案 B:主路由 DHCP 下发(全局) 主路由 DHCP 设置 → 默认网关:192.168.1.2 ## 故障排查 ### 旁路由无法上网 ```bash route -n # 检查网关 nslookup baidu.com # 检查 DNS ``` ### FRP 连接失败 ```bash nc -zv 云服务器IP 7000 # 检查端口 tail -f /var/log/frpc.log # 查看日志 ``` ### 科学上网不生效 ```bash /etc/init.d/passwall status # 检查状态 iptables -t nat -L -n | grep 1080 # 检查规则 ``` ## 参考资源 - OpenWrt 官方文档:https://openwrt.org/docs/start - Passwall:https://github.com/xiaorouji/openwrt-passwall - FRP 文档:https://gofrp.org/ --- 版本: v1.0 | 更新日期: 2026-04-03