Linux系统结合clash做旁路网关/透明代理
旁路网关起到的作用是可以对咱们客户端请求的数据做一个转发,正常我们请求数据是交由路由器来转发并把数据返回给我们。 然而路由器的功能可能并不强大,做不到对数据进行处理的效果,这时候我们可能需要借助一个旁路由来对数据进行一个处理,一般我们都是选择使用 openwrt
来对数据处理,然而很多朋友没有这个设备。今天介绍一个方法可以不使用软路由,只需要一台闲置电脑甚至是虚拟机都可以,结合 clash
客户端来实现一个科学上网的目的,下面来看下如何操作。
开始操作
先决条件
- 一台闲置/虚拟机 Linux
- clash-core-premium 下载地址
- clash-premium-installer 地址
clash 有2个版本,分别是 clash-core 和 clash-core-premium,前者是开源版本,后者是不开源版本,我们需要用到的是 clash-core-premium 因为这里需要 clash tunnel 模式,这个功能只有clash-core-premium 里有
安装步骤
我们需要借助上面的
clash-premium-installer
帮咱们安装service mode
,里面带了转发规则。 第一步先安装git
,nftables
,iproute2
ubuntu 1
apt-get install -y git nftables iproute2
centos 1
yum install -y git nftables iproute2
下载 clash-premium-installer
1
2git clone https://github.com/Kr328/clash-premium-installer
cd clash-premium-installer下载 clash-core-premium
点击进入下载地址
选择适合自己电脑的版本,下载完成后,用 gunzip xx.gz 进行解压缩, 解压完成后,拷贝到clash-premium-installer
目录,并重命名为clash
赋予可执行权限:chmod +x clash
执行安装
1
./installer.sh install
1
2
3
4
5
6
7
8
9
10root@ubuntu:~/clash-premium-installer# ./installer.sh install
Install successfully
Home directory at /srv/clash
All dns traffic will be redirected to 1.0.0.1:53
Please use clash core's 'tun.dns-hijack' to handle it
Use 'systemctl start clash' to start
Use 'systemctl enable clash' to enable auto-restart on boot
到这里就已经安装完成了~ 通过 systemctl enable clash
设置为开机自动启动, clash 配置文件存放在 /srv/clash
目录
设置 clash 配置文件
在 /srv/clash/config.yaml
配置文件中添加如下内容
1 | dns: |
这样就完成了 clash
的所有配置,下面只需要把客户端的网关地址
和DNS地址
指向当前这台电脑IP便可
客户端设置
- 路由器, 以小米路由器为例
在常用设置 -> 局域网设置 -> DHCP服务
把 DNS1 和 默认网关指向你的 Linux 服务器便可。
所有连上路由器的设备都可以实现科学上网 - iOS & android
在网络链接设置成手动/静态 IP,把网关和DNS 指向 Linux 服务器
打开网络客户端
有时候我们需要查看节点以及连接的状态,如果都是通过命令行来查看未免会显得有点麻烦,好在 clash
是支持 rest
接口,并有成熟的网页客户端 点击打开
打开网页客户端后设置 -> 外部控制设置
点击输入ip 以及端口(一般9090)便可查看clash 信息
总结
使用 Linux & Clash 透明代理只需要简单几步就可以完成设置,让所有把 Linux 服务器设置成网关的设备都可以实现科学上网。如果路由器的网关/DNS 设置成Linux服务器的话,这样所有连接上路由器的设备都可以科学上网,包括手机、电脑、电视等设备
Linux系统结合clash做旁路网关/透明代理