Skip to content

Linux 安装 Clash 内核并开启透明代理

下载 Clash

Clash 内核

  1. Clash 内核分为开源版(已删库) / Premium 版(已删库) / Meta 版(mihomo) ,可以根据需求自行选择版本
  2. 在 release 中下载对应系统的内核解压后,重命名为 clash 上传至 /opt/clash
  3. 执行 chmod +x /opt/clash/clash 添加运行权限

Country.mmdb

maxmind-geoip 中下载全球 IP 库 Country.mmdb 文件上传至 /opt/clash

控制面板

metacubexd 中下载面板文件上传至 /opt/clash/ui

config.yaml

  • 将配置文件命名为 config.yml 上传至 /opt/clash
  • 订阅地址可以通过 curl -L -o /opt/clash/config.yaml https://domain.com 进行下载
  • 在配置文件中,除了常规的节点规则配置以外,确保包含外部控制配置
yaml
external-controller: 0.0.0.0:9090
external-ui: /opt/clash/ui
secret: ""

创建 systemd 配置文件

  1. 创建 systemd 配置文件 /etc/systemd/system/clash.service
ini
[Unit]
Description=Clash 守护进程, Go 语言实现的基于规则的代理.
After=network.target NetworkManager.service systemd-networkd.service iwd.service

[Service]
Type=simple
LimitNPROC=500
LimitNOFILE=1000000
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_RAW CAP_NET_BIND_SERVICE CAP_SYS_TIME
Restart=always
ExecStartPre=/usr/bin/sleep 1s
ExecStart=/usr/local/bin/clash -d /opt/clash
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
  1. 重新加载 systemd
sh
systemctl daemon-reload
  1. 接下来就可以通过 systemctl 控制 Clash 启动与停止
sh
systemctl status clash # 运行状态
systemctl start clash # 启动
systemctl stop clash # 停止
systemctl enable clash # 开机自启
systemctl disable clash # 取消开机自启
  1. 查看日志可以通过 journalctl
sh
journalctl -u clash

系统代理

  1. 创建并编辑 .bashrc
sh
vi .bashrc
  1. 将以下代码写入其中
sh
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:7890"
export no_proxy="localhost;127.*;10.*;172.16.*;172.17.*;172.18.*;172.19.*;172.20.*;172.21.*;172.22.*;172.23.*;172.24.*;172.25.*;172.26.*;172.27.*;172.28.*;172.29.*;172.30.*;172.31.*;192.168.*"

TUN 模式

开启流量转发

  1. 编辑 /etc/sysctl.conf 文件
sh
vi /etc/sysctl.conf
  1. 将以下代码取消注释
txt
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
  1. 加载内核参数
sh
sysctl -p

开启 dns

  1. 53 端口可能被占用,关闭默认的系统 dns 端口
sh
systemctl disable systemd-resolved
  1. 在 Clash 配置文件中添加 dns
yaml
dns:
  enable: true
  ipv6: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  fake-ip-range: 198.18.0.1/16
  fake-ip-filter:
    - controlplane.tailscale.com
    - log.tailscale.io
  default-nameserver:
    - 223.5.5.5
    - 223.6.6.6
  nameserver:
    - https://dns.alidns.com/dns-query
    - tls://dns.alidns.com:853
  fallback:
    - https://1.1.1.1/dns-query
    - https://1.0.0.1/dns-query

开启 TUN

在 Clash 配置文件中添加 TUN

yaml
tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
    - tcp://any:53
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0

预览:

评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3