Building a Home Networking Solution with Mesh Routers

My home has numerous devices that require internet access, such as the Home Assistant system running on my Raspberry Pi. Installing proxy software like Clash directly on these devices proved extremely challenging, so I decided to implement a network-wide proxy solution using a software router approach.

Given the size of my home, a single router wouldn't provide adequate coverage, so I opted for a mesh networking solution. Mesh networking uses a main router connected to satellite nodes to extend network coverage. All proxy processing runs on the main router, which requires substantial performance capabilities.

I chose the Xiaomi BE6500 for its powerful performance and excellent integration with other Xiaomi smart home devices in my setup. Following the tutorial from https://www.youtube.com/watch?v=dlsoMDtmDHA, I enabled SSH access and installed Clash proxy software. After importing the proxy nodes, I set up a web panel accessible via port 9999 on the local network, allowing me to monitor network usage and configure routing rules.

At this point, my entire home network successfully accessed the internet through the proxy. However, after some time, my parents complained that the internet was very slow. Upon investigation, I discovered that all the websites they frequently visited were being routed through the proxy, which explained the performance issues.

Most of these sites were matching a rule called "漏网之鱼" (stray fish), so I configured that rule for direct connection instead of proxy routing. But this created another problem - Google was also included in this "漏网之鱼" rule. If I set this rule to direct connection, I would lose access to Google services.

As a solution, I had to add custom rules to ensure Google traffic still goes through the proxy while allowing other domestic Chinese websites to connect directly for better performance. This fine-tuning process required careful rule management to balance accessibility with speed.

The implementation involved several key steps:

  • Setting up Xiaomi BE6500 as the main mesh router
  • Enabling SSH access for advanced configuration
  • Installing Clash proxy software
  • Configuring proxy nodes and routing rules
  • Setting up the web management panel on port 9999
  • Fine-tuning rules for optimal performance

This setup provides a robust solution for managing internet access across all devices in my home, with the flexibility to customize routing based on specific needs and performance requirements.