Linux系统结合clash做旁路网关/透明代理

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 里有

安装步骤

以下所有操作都需要在 root/sudo 用户下操作, 因为新建虚拟网卡需要 root 权限。
  1. 我们需要借助上面的 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
  2. 下载 clash-premium-installer

    1
    2
    git clone https://github.com/Kr328/clash-premium-installer
    cd clash-premium-installer
  3. 下载 clash-core-premium
    点击进入下载地址
    选择适合自己电脑的版本,下载完成后,用 gunzip xx.gz 进行解压缩, 解压完成后,拷贝到 clash-premium-installer 目录,并重命名为 clash
    赋予可执行权限:chmod +x clash

  4. 执行安装

    1
    ./installer.sh install
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    root@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 配置文件中添加如下内容

/srv/clash/config.yaml
1
2
3
4
5
6
7
8
9
10
dns:
enable: true
enhanced-mode: fake-ip
nameserver:
- 114.114.114.114 # 真实请求DNS,可多设置几个
tun:
enable: true
stack: system # 或 gvisor
dns-hijack: # DNS劫持设置为系统DNS
- 1.0.0.1:53 # 请勿更改

这样就完成了 clash 的所有配置,下面只需要把客户端的网关地址DNS地址指向当前这台电脑IP便可

客户端设置

  1. 路由器, 以小米路由器为例

    在常用设置 -> 局域网设置 -> DHCP服务
    把 DNS1 和 默认网关指向你的 Linux 服务器便可。
    所有连上路由器的设备都可以实现科学上网
    路由器设置

  2. iOS & android

    在网络链接设置成手动/静态 IP,把网关和DNS 指向 Linux 服务器
    iPhone设置

打开网络客户端

有时候我们需要查看节点以及连接的状态,如果都是通过命令行来查看未免会显得有点麻烦,好在 clash 是支持 rest 接口,并有成熟的网页客户端 点击打开
打开网页客户端后设置 -> 外部控制设置 点击输入ip 以及端口(一般9090)便可查看clash 信息

总结

使用 Linux & Clash 透明代理只需要简单几步就可以完成设置,让所有把 Linux 服务器设置成网关的设备都可以实现科学上网。如果路由器的网关/DNS 设置成Linux服务器的话,这样所有连接上路由器的设备都可以科学上网,包括手机、电脑、电视等设备

如果没有设置成功,请确定是在 root 账户下操作,确定虚拟网卡已经开启,如果还不成功关闭防火墙试试

Linux系统结合clash做旁路网关/透明代理

https://cff.pw/2021/11/17/linux-clash-gateway/

作者

长风

发布于

2021-11-17

更新于

2022-09-16

许可协议

评论