(使用VirtualBox)构建Ubuntu下的clash旁路由服务

效果图一张 几个月前写了一篇文章,讲怎么在Windows下面利用HyperV安装OpenWRT软路由。最近发现了几篇旁路由的文章,另外发现其实clash完全可以在ubuntu下面跑,不用再费那么多事情去研究OpenWRT了,于是乎就有了本文。 目标 本文的目标是利用一台Windows主机(或直接使用Linux主机)搭建一个旁路由服务器,这个服务器与我的光纤猫LAN口连接,提供网关服务,并且能够通过网页ui对clash服务进行配置修改。需要使用旁路由服务的终端(或无线AP),可以通过手工设定网关地址与DNS地址来接驳到旁路由上;同时,需要默认路由服务的终端,只需使用默认DHCP服务即可。施工完成后,家里的网络拓扑大致如下: 光纤猫 192.168.1.1 |- 192.168.1.21 旁路由服务器 |- 192.168.1.20 无线路由器(接驳旁路由网关192.168.1.21) | |- 192.168.50.xxx 手机、iPad、笔电等终端 |- 192.168.1.19 电视机(无需旁路由服务,使用DHCP的网关192.168.1.1) |- … 硬件需求 任意主机,直接运行Ubuntu系统或使用Windows系统。服务器需要有一个网口。本人用来跑旁路由服务的主机是一台Intel J1900,4GB内存的主机。 VirtualBox配置 首先需要安装一个Ubuntu,我选择的是20.04LTS Server版本,所以没有图形化界面。 在系统安装好之后,关闭虚拟机,需要在VirtualBox里配置网络接口类型。默认的网络接口类型应该是NAT,这边找到主机连接光猫的那个网络接口,改为桥接。桥接的意思是,把虚拟主机看做一个独立的主机接入光纤猫的LAN网络,于是乎他就有了一个独立于物理机器的一个“平等的”IP地址了。这个IP地址也就是旁路由的网关地址。 如果你的光猫可以配置静态IP地址分配的白名单,建议把这个旁路由的MAC地址对应的IP分配成静态的,避免因为光纤猫DHCP变动导致旁路由的IP地址不是一个静态值。 Ubuntu配置 允许ip转发 sudo vim /etc/sysctl.conf 找到 net.ipv4.ip_forward=1 这一行,取消掉注释。如果没有找到的话直接新增一行也可以的。随后执行 sudo sysctl -p 使修改生效。 配置iptables 依次执行下面的指令,注意注释的部分,修改成自己的网络配置 iptables -t nat -N clash iptables -t nat -N clash_dns # 这个是fake-ip对应的dns地址,一般不用动…