文章

在N1的armbian中使用clash搭建透明代理

  编辑于:2020-09-12
文章目录

介绍

前面介绍了斐讯N1刷机并配置SMB,在向N1刷入armbian之后可以使用clash(一个可以定制规则并支持多种代理协议的客户端)搭建透明代理(亦称透明网关,旁路由),实现科学上网。
本次系统采用的armbian是基于debian10的

使用

准备

由于debian10的默认配置占用了53端口,这里修改一下配置vi /etc/systemd/resolved.conf,将其中的DNSStubListener=no#取消注释,把yes改为no

安装arm版本的clash

mkdir clash 
cd clash
wget https://github.com/Dreamacro/clash/releases/download/v1.1.0/clash-linux-armv8-v1.1.0.gz
gzip -d clash-linux-armv8-v1.1.0.gz
chmod +x clash-linux-armv8-v1.1.0
mv clash-linux-armv8-v1.1.0 clash

配置clash

这里实例的是一个简单的配置,更多内容可以参考:clash简易教程 进入clash目录,新建配置文件vi config.yaml

port: 7890
socks-port: 7891
#透明代理需要
redir-port: 7892
#透明代理需要允许来自局域网的访问
allow-lan: true
mode: Rule
log-level: info
#流量出口使用的网络接口
interface-name: eth0

# hosts设置,只有当DNS模式为redir-host时生效
hosts:
  # '*.clash.dev': 127.0.0.1
  # '.dev': 127.0.0.1
  # 'alpha.clash.dev': '::1'
# DNS设置,透明代理需要使用clash提供的DNS服务
dns:
  enable: true
  listen: 0.0.0.0:53
  default-nameserver:
    - 114.114.114.114
    - 8.8.8.8
  enhanced-mode: redir-host # 可选:fake-ip
  fake-ip-range: 198.18.0.1/16
  nameserver:
    - 114.114.114.114 # default value
    - 8.8.8.8 # default value
    - tls://dns.rubyfish.cn:853 # DNS over TLS
    - https://1.1.1.1/dns-query # DNS over HTTPS
  fallback-filter:
    geoip: true
    ipcidr:
      # - 240.0.0.0/4
#节点配置,此处可以参考:https://lancellc.gitbook.io/clash/clash-config-file/an-example-configuration-file
Proxy: 
  #shadowsocks节点示例
  - name: "ss1"
    type: ss
    server: server
    port: 443
    cipher: chacha20-ietf-poly1305
    password: "password"
#节点组配置,可以将多个节点组合成一个组,并且按照一定的规则访问组内节点
Proxy Group:
  #节点组示例,使用该组节点时将会自动选择延迟较低的节点
  - name: "auto"
    type: url-test
    proxies:
      - ss1
    url: 'http://www.gstatic.com/generate_204'
    interval: 300
#路由规则,将指定流量使用何种规则
Rule:
#本地流量需要直接放行
- IP-CIDR,127.0.0.0/8,DIRECT
- IP-CIDR,192.168.0.0/16,DIRECT
- MATCH,auto

设置防火墙

tproxy运行需要iptables的支持

iptables -t nat -N clash
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 -j REDIRECT --to-port 7892
iptables -t nat -A PREROUTING -p tcp -j clash

由于iptables的设置重启会消失,可以将上述内容放到/etc/rc.localexit 0之前即可。

设置开机启动

echo '[Unit]
Description=clash auto run
 
[Service]
Type=simple
 
ExecStart=/root/clash/clash -f /root/clash/config.yaml
 
[Install]
WantedBy=default.target' > /etc/systemd/system/clash.service

运行clash

systemctl enable clash && systemctl start clash

设置网关

只需要将需要科学上网的设备的网关和DNS都设置为N1的IP,即可开始网上冲浪

补充

去广告可以参考:https://github.com/ACL4SSR/ACL4SSR/tree/master
高级设置可以参考:https://github.com/ConnersHua/Profiles/tree/master/Clash
参考链接:
https://lancellc.gitbook.io/clash/clash-config-file/an-example-configuration-file
https://medium.com/@muchenran2/clash-%E5%B8%B8%E7%94%A8%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B-%E7%AE%80%E6%98%93%E7%89%88-c77aeb2a10c
https://breakertt.moe/2019/08/20/clash_gateway/

发表回复