惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
DataBreaches.Net
罗磊的独立博客
M
MIT News - Artificial intelligence
G
Google Developers Blog
V
V2EX
D
Docker
博客园_首页
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
Y
Y Combinator Blog
WordPress大学
WordPress大学
T
Tailwind CSS Blog
博客园 - 司徒正美
J
Java Code Geeks
L
LangChain Blog
博客园 - 三生石上(FineUI控件)
B
Blog RSS Feed
博客园 - 【当耐特】
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - Franky

Stonecharioteer on Tech

I Traced My Traffic Through a Home Tailscale Exit Node What Was I Reading Last? In Three Not-So-Easy Pieces Dogfooding Is Hard Code blocks in your books, finally GoForGo v0.9.0 Merrilin - We built an app to read books I use a Macbook now Data Structures & Algorithms - Preparing for Interviews Using a local DNS namespace for local service discovery Direction KOllector - Publishing KOReader Highlights gbt: branches touched in the last 24 hours A Soiree into Symbols in Ruby Some Smalltalk about Ruby Loops Ruby Blocks Returning from Ruby Blocks, Procs and Lambdas My Linux Laptop Finally Works: How Claude Helped Me Fix Years of Annoyances TIL: Watchexec - Modern File Watching for Development Workflows A Less Busy Mind GoForGo - Learn Go through live examples Migrating My Old Blog to Hugo with Claude The Qtile Window Manager: A Python-Powered Tiling Experience Read the RFCs that Built the Internet Py-x-Protobuf - Or How I Learned to Stop Worrying and Love Protocol Buffers Python Reverse a List New Beginnings Leaving ChainSafe Systems Screen Lock for Cinnamon Desktop using Zenity and Terminal Commands Crews Not Teams A System for Getting Better at LeetCode
OpenWRT
2025-08-22 · via Stonecharioteer on Tech

I got a Beelink EQI12 two weeks ago, thanks to a friend flying in from Dubai. This MiniPC has been my plan to replace the weak Linkstar H68K OpenWrt router I had for about 2 years now. While the Linkstar has worked just fine, I wanted to upgrade to something more powerful so I could install other services on it as well. I didn’t want to install PiHole on a Raspberry Pi anymore. I’m a little tired of Pis and their problems.

So I setup Proxmox on this server, and then installed OpenWrt on a VM on it. At first I assumed it would be easy. I was very wrong.

I used ChatGPT to constantly debug this. What made my life easier at first was:

  1. Getting a USB HDMI Capture Card. I picked something cheap, and I used it with my laptop. I needed to be able to take screenshots to paste over to ChatGPT. When I tried using a phone to take photos of a monitor running this, that didn’t end well. GPT5 hallucinated network cards, and didn’t manage to differentiate between 0 and 8. I couldn’t ssh into the server to take photos from other computers because well, the damned network was down, wasn’t it? Funnily enough, ChatGPT recommended getting a cheap capture card and that’s what I did.
  2. I tested out the network with a spare router I had lying around. I connected my existing network to the EQI12, and then connected the spare NIC to the router and things worked quite well that way. I didn’t know that I was adding a layer of “easy mode” by doing that because I was letting the Linkstar do all the heavy lifting. But having that travel router was very helpful.
  3. Having a second ISP, to debug the primary one. I’ve had 2 ISPs for 4 years now, and everyone should, if you’re working remotely.

I’m enjoying having AI summarize what I did, just so that I can wave away the details, but here I’m asking it to give the details

🔧 Debugging OpenWRT For Dual WAN Failover with ChatGPT

I set up a reliable failover system using OpenWrt and mwan3 on a mini PC router.

✅ Goals:

  • Primary WAN: PPPoE (wired)
  • Backup WAN: WWAN (wireless client to mobile hotspot)
  • Automatically switch between them based on connectivity
  • Use real HTTP checks (not just ping) for reliability

⚙️ Key Components:

  • OpenWrt running in a Proxmox VM on an EQI12 mini PC
  • mwan3 for multi-WAN tracking and routing policies
  • httping to test actual HTTP response from:
    • https://github.com
    • https://amazon.com
    • https://google.com

🧠 How it works:

  • Both interfaces (wan and wwan) use httping for tracking

  • Custom interface configs:

    1
    2
    3
    4
    
    option track_method 'httping'
    list track_ip 'https://github.com'
    list track_ip 'https://amazon.com'
    list track_ip 'https://google.com'
    
  • Policy:

    config policy 'wan_first'
        list use_member 'wan_m1_w3'
        list use_member 'wwan_m2_w2'
    
  • Rule:

    config rule 'default_rule'
        option dest_ip '0.0.0.0/0'
        option use_policy 'wan_first'
        option family 'ipv4'
    

🔄 Behavior:

  • If WAN is online, all traffic uses wan
  • If WAN fails, traffic fails over to wwan
  • If WAN recovers, it automatically switches back

📊 Debugging & Monitoring:

  • Run mwan3 status to view current WAN state and policy usage
  • Use logread -t mwan3 to see interface events and failover activity

Problems I Faced

  • ChatGPT really likes to convince me that mwan3 has a script feature. No. It does not. Thanks Claude.
  • GPT5 SUCKS. It is so damned slow. I’ve gotten used to being productive with Claude. Using GPT5 and the Web App for ChatGPT is so damned horrible. I’m happier with Claude thank you very much.
  • ACT is better with PPPoE connections, not DHCP. I am glad I have my account password saved for such an occasion. I wish people didn’t pivot to the OTP login, that’s such a travesty.
  • Airtel is surprisingly easier, albeit because it comes with its own router. I’m not a big fan of that. I had to use Airtel over WiFi and ACT over Ethernet, since the EQI12 only has 2 NICs.
  • The silliest error I faced was that I’d put in 1.1.1.1 8.8.8.8 as the entry in DNS config. These had to be one per line. This happened because ChatGPT kept telling me to add both nameservers in one command using uci.
  • dnsmasq errors! So many dnsmasq errors. I wish I had the time to read the docs, but honestly I don’t.

All in all, it works now, and that was 2 days of my life spent. I am not sure if I’d say it was “well-spent” though. If you’re choosing to be your family’s sysadmin, YMMV.