Clash Fake IP 旁路由

以下内容是将局域网内任意一台计算设备,如:计算机,树莓派,虚拟机等搭建成 Clash 网关。

以下内容假设:

  • 主路由器地址 192.168.1.1
  • Clash 设备地址 192.168.1.2
  • Clash 设备系统为 Ubuntu 或 Debian

Clash

前往 Clash 仓库下载最新版本,如果是使用树莓派,注意选择对应的 ARM 版本。下载完成解压后重命名为 clash,上传到需要部署的设备上,然后 SSH 登录部署设备。

chmod +x clash
mv clash /usr/bin
mkdir -p ~/.config/clash

将你的 Clash 配置文件(可以直接使用 Clash for Windows 的配置)重命名为 config.yml 然后拷贝到 ~/.config/clash 目录中,将 config.yml 中相应的部分修改为以下。

port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: true
mode: Rule
log-level: info
external-controller: '192.168.1.2:9090'
secret: ''
dns:
  enable: true
  ipv6: false
  listen: 192.168.1.2:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 223.5.5.5
    - 114.114.114.114
  fallback:
    - https://1.1.1.1/dns-query
  fallback-filter:
    geoip: true
    ipcidr:
      - 240.0.0.0/4

IPtables

编辑 /etc/sysctl.conf 文件,搜索 net.ipv4.ip_forward=1,取消注释,然后执行 sysctl -p 命令应用。然后创建一个 IPtables 规则脚本,以便能将连接与 DNS 解析转发给 Clash 进行处理。

cd ~
touch fakeip.sh
#!/bin/bash
iptables -t nat -N clash
iptables -t nat -N clash_dns

iptables -t nat -A PREROUTING -p tcp --dport 53 -d 198.19.0.0/24 -j clash_dns
iptables -t nat -A PREROUTING -p udp --dport 53 -d 198.19.0.0/24 -j clash_dns
iptables -t nat -A PREROUTING -p tcp -j clash

iptables -t nat -A clash_dns -p udp --dport 53 -d 198.19.0.0/24 -j DNAT --to-destination 192.168.1.2:53
iptables -t nat -A clash_dns -p tcp --dport 53 -d 198.19.0.0/24 -j DNAT --to-destination 192.168.1.2:53

iptables -t nat -A clash -d 1.0.0.0/8 -j ACCEPT
iptables -t nat -A clash -d 10.0.0.0/8 -j ACCEPT
iptables -t nat -A clash -d 100.64.0.0/10 -j ACCEPT
iptables -t nat -A clash -d 127.0.0.0/8 -j ACCEPT
iptables -t nat -A clash -d 169.254.0.0/16 -j ACCEPT
iptables -t nat -A clash -d 172.16.0.0/12 -j ACCEPT
iptables -t nat -A clash -d 192.168.0.0/16 -j ACCEPT
iptables -t nat -A clash -d 224.0.0.0/4 -j ACCEPT
iptables -t nat -A clash -d 240.0.0.0/4 -j ACCEPT
iptables -t nat -A clash -d 192.168.1.2/32 -j ACCEPT

iptables -t nat -A clash -p tcp --dport 22 -d 192.168.1.2/32 -j ACCEPT

iptables -t nat -A clash -p tcp -j REDIRECT --to-ports 7892

赋予脚本执行权限 chmod +x fakeip.sh 执行脚本 bash fakeip.sh 。如果没有任何错误,应该是没有任何返回结果。

Test

将局域网内其他需要通过 Clash 网关上网的设备网关地址修改为 192.168.1.2,DNS 地址修改为 198.19.0.1198.19.0.2 然后保存。打开游览器,输入任意地球上不存在的网站网址访问测试。

如果无法打开地球上不存在的网站,请返回检查 Clash 配置。

Dashboard

首先在部署 Clash 设备上安装 Node.js,不会安装可以看 Install Node.js 。接着在安装 Git 与 Nginx apt install nginx git -y

然后下载 Clash Dashboard 到 Clash 设备上执行。

wget https://github.com/Dreamacro/clash-dashboard/archive/v0.3.0.tar.gz
tar xvzf v0.3.0.tar.gz
cd clash-dashboard
npm install
npm start

修改 Nginx 配置文件 /etc/nginx/site-enabled/default

server {
        listen 80 default_server;

        location / {
                proxy_pass http://localhost:8080/;
        }

}

重启 Nginx systemctl restart nginx ,打开游览器访问 http://192.168.1.2 ,Host 192.168.1.2 ,Port 9090 ,即可访问 Clash 网页控制面板。

FAQ

后台运行

有很多办法可以让 Clash 与 Clash Dashboard 在后台运行,但是我一般都用最简单的 Tmux 。最新版本的 Ubuntu 与 Debian 一般都已经自带了 Tmux ,如果没有可以使用命令 apt install tmux -y 安装。

直接输入 tmux 命令开启 Tmux ,然后输入 clash 命令运行 Clash,接着在使用快捷键 Ctrl + b c (按住 Ctrl 的同时在按 b,然后松开 b 在松开 Ctrl 在按 c)创建一个新窗口进入 Clash Dashboard 目录输入 npm start 命令运行 Clash Dashboard 。此时你可以使用快捷键 Ctrl + b 0Ctrl + b 1 在 Clash 与 Clash Dashboard 窗口之间进行切换。如果想将 Clash 与 Clash Dashboard 保持运行,只需要使用快捷键 Ctrl + b d 即可退出 Tmux,然后即便退出 SSH, Tmux 仍将在后台保持运行。如果需要返回在后台运行的 Tmux 只需要执行 tmux attach 命令即可。


文章作者: REPL\ acgio
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 REPL\ acgio !
 上一篇
macOS 安装 Spacemacs macOS 安装 Spacemacs
安装 Emacs Plus使用 Homebrew 安装 Emacs Plus,如果没用过 Homebrew 可以看这篇文章:。 brew tap d12frosted/emacs-plus brew install emacs-plus
2019-10-30
下一篇 
Install Node.js Install Node.js
Windows下载安装直接前往 Node.js 网站,下载 Windows 安装包安装,简单省事。 https://nodejs.org/en/download/ Chocolatey如果有安装 Chocolatey 就更简单了,只需
2019-10-23
  目录