Centos7下使用clash做透明代理

资源准备

下载,clash主程序: https://github.com/Dreamacro/clash/releases

下载,dashboard: https://codeload.github.com/Dreamacro/clash-dashboard/zip/gh-pages

centos7系统

设定静态IP地址,本例设置系统ip为 10.255.100.12

关闭selinux

iptables安装

systemctl disable firewalld
systemctl stop firewalld
yum install -y iptables iptables-services
systemctl enable iptables

配置防火墙

iptables -t nat -N clash
iptables -t nat -N clash_dns

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

# 这里需要注意的是,下面两行最后的 10.255.0.0 是当前服务器的 IP 地址网段,请根据你自己的实际情况修改
# 如果你自己的服务器 IP 跟下面的 IP 地址不对的话会造成无法
iptables -t nat -A clash_dns -p udp --dport 53 -d 10.255.0.0/24 -j DNAT --to-destination 10.255.100.12:53
iptables -t nat -A clash_dns -p tcp --dport 53 -d 10.255.0.0/24 -j DNAT --to-destination 10.255.100.12:53

iptables -t nat -A clash -d 0.0.0.0/8 -j RETURN
iptables -t nat -A clash -d 10.0.0.0/8 -j RETURN
iptables -t nat -A clash -d 127.0.0.0/8 -j RETURN
iptables -t nat -A clash -d 169.254.0.0/16 -j RETURN
iptables -t nat -A clash -d 172.16.0.0/12 -j RETURN
iptables -t nat -A clash -d 192.168.0.0/16 -j RETURN
iptables -t nat -A clash -d 224.0.0.0/4 -j RETURN
iptables -t nat -A clash -d 240.0.0.0/4 -j RETURN

iptables -t nat -A clash -p tcp ! --dport 22 -j REDIRECT --to-ports 7892
iptables -t nat -A OUTPUT -p tcp -m owner ! --uid-owner root -j REDIRECT --to-port 7892

# iptables存档
service iptables save

设置流量转发

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf && sysctl -p
echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf && sysctl -p

安装

wget https://github.com/Dreamacro/clash/releases/download/v1.2.0/clash-linux-amd64-v1.2.0.gz
wget https://codeload.github.com/Dreamacro/clash-dashboard/zip/gh-pages

得到主程序:clash-linux-amd64-v1.2.0.gz,dashboard程序:clash-dashboard-gh-pages.zip

解压缩,安装

gunzip clash-linux-amd64-v1.2.0.gz
unzip clash-dashboard-gh-pages.zip

chmod a+x clash-linux-amd64-v1.2.0
mv clash-linux-amd64-v1.2.0 /usr/local/bin/clash

创建 clash配置文件

默认启动一次程序会自动帮你创建个空的配置

/usr/local/bin/clash

编辑配置

vi ~/.config/clash/config.yaml

# 以下部分不要修改!
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: true

mode: Rule

log-level: debug
# external-controller 主要是用于 web 端管理页面,必须监听在 0.0.0.0
external-controller: 0.0.0.0:9090

# secret 是进入管理面板所需要的密码,可填可不填,建议填上
secret: "123456"

# external-ui 表示管理面板的路径,这个路径就是你前面解压缩的dashboard的路径,根据你实际的改
external-ui: /opt/clash-dashboard-gh-pages
dns:
 enable: true
 listen: 0.0.0.0:53
 enhanced-mode: redir-host
 nameserver:
   - 8.8.8.8
   - 223.5.5.5
   - 'tls://dns.rubyfish.cn:853'
 fallback:
   - 'tls://1.1.1.1:853'
   - 'tcp://1.1.1.1:53'
   - 'tcp://208.67.222.222:443'
   - 'tls://dns.google'
   - 'tls://dns.rubyfish.cn:853'
# 下面部分则是代理的设置跟规则的设置,这里忽略不写。
proxies:
  - name: "vmess"
    type: vmess
    server: 你服务器的地址
    port: v2ray开放的端口
    uuid: 你服务器的uuid
    alterId: 64
    cipher: auto
# 根据需要配置你的规则
rules:
  - DOMAIN-SUFFIX,google.com,vmess
  - DOMAIN-KEYWORD,google,vmess
  - MATCH,vmess

将clash设置为开机自启

vi /etc/systemd/system/clash.service
[Unit]
Description=clash daemon

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/clash -d /root/.config/clash/
Restart=on-failure

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable clash
reboot

验证是否可用

管理界面:

http://10.255.100.12:9090/ui/

参考资料:

https://www.cnblogs.com/sueyyyy/p/12424178.html

https://github.com/Dreamacro/clash/wiki/configuration

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll to Top