一、下载
进入 docker ui 界面搜索 clash ,选择 dreamacro/clash 点击下载。
二、运行
然后在映像中启动刚刚下载的镜像。
点击下一步
将 启用自动重新启动勾上,再次点击下一步。
相当于 NAS 开机容器也启动,不需要手动重启 clash 容器 几乎不占用资源
点击新增端口,把容器内端口和 NAS(服务器) 内端口添加映射。
按照如图配置端口。
7890
:http
、https
端口;7891
:socks
端口;9090
:下文配置 UI 界面用到端口。不需要 UI 界面可不配置。
添加文件映射,将 NAS 配置文件映射到容器内。
NAS config.yaml 文件目录按需配置。这里仅供参考。
NAS /docker/clash/config.yaml
容器内 /root/.config/clash/config.yaml
然后点击下一步。
点击完成,即可运行 clash 容器。
服务器命令行同理,docker 搜索容器,配置端口、文件映射,docker run 启动即可。
三、增加 clash 配置
在 clash 客户端点击配置,选中一个配置,右击 外部编辑 中打开配置文件。将打开的文件拷贝一份到 NAS 中。(上一步配置文件映射地址 /docker/clash/config.yaml
)
- 修改
external-controller
为0.0.0.0:9090
广播地址 allow-lan
:true
可以代理局域网
最底部给出示例配置文件。
然后重启容器,读取配置文件,这时就可以设置代理然后使用了。
四、配置 UI 界面(可选)
步骤跟上面一样。
-
注册表 中搜索
yacd
,选中haishanh/yacd
下载; -
映像 中启动刚刚下载的镜像;
- 配置端口
9080:80
; - 不需要配置文件映射。
- 配置端口
-
启动镜像后进入
http://192.168.0.101:9080/
ip 地址根据实际修改。端口号为刚刚配置的映射端口。
默认为自动选择路线,每隔一段时间都会自动选择最优路线,有需求也可以选择其他线路。
我这里因为 openai 需要所以选择美国线路。
五、设置代理
5.1 windows
这里以 Windows 电脑为例(因为没有mac /(ㄒoㄒ)/~~)
点击编辑
修改代理 ip 地址和端口,点击保存即可。
现在就可以愉快的访问 GitHub 了。
5.2 安卓
这里手机系统是
Color OS V12.1
,其他大同小异。
进入 wifi 设置中将代理改成手动,然后配置代理 ip 地址即可。 一般都是单个 wifi 设置。
5.3 苹果
这里手机系统是
IOS 17.1.1
,其他大同小异
进入 wifi 设置中将代理改成手动,然后配置代理 ip 地址即可。
点击存储就可以了。
六、自动更新 clash 配置
编写定时任务脚本来每日自动更新 clash 配置。
在 /docker/clash/
中增加 auto-reload-clash.sh
脚本
wget -O /volume1/docker/clash/config.yaml 'https://你的订阅地址' sed -i 's/127.0.0.1:9090/0.0.0.0:9090/g' /volume1/docker/clash/config.yaml sed -i 's/allow-lan: true/allow-lan: true/' /volume1/docker/clash/config.yaml sed -i 's/interval: 86400 }/interval: 3600 }/' /volume1/docker/clash/config.yaml curl --location --request PUT 'http://localhost:9090/configs' --header 'Content-Type: application/json' --data-raw '{"path": "/root/.config/clash/config.yaml"}'wget -O /volume1/docker/clash/config.yaml 'https://你的订阅地址' sed -i 's/127.0.0.1:9090/0.0.0.0:9090/g' /volume1/docker/clash/config.yaml sed -i 's/allow-lan: true/allow-lan: true/' /volume1/docker/clash/config.yaml sed -i 's/interval: 86400 }/interval: 3600 }/' /volume1/docker/clash/config.yaml curl --location --request PUT 'http://localhost:9090/configs' --header 'Content-Type: application/json' --data-raw '{"path": "/root/.config/clash/config.yaml"}'wget -O /volume1/docker/clash/config.yaml 'https://你的订阅地址' sed -i 's/127.0.0.1:9090/0.0.0.0:9090/g' /volume1/docker/clash/config.yaml sed -i 's/allow-lan: true/allow-lan: true/' /volume1/docker/clash/config.yaml sed -i 's/interval: 86400 }/interval: 3600 }/' /volume1/docker/clash/config.yaml curl --location --request PUT 'http://localhost:9090/configs' --header 'Content-Type: application/json' --data-raw '{"path": "/root/.config/clash/config.yaml"}'
在这里找到订阅地址
复制这个订阅链接,在脚本中。
最新订阅链接需要添加查询参数
&flag=clash
— 2024/02/29 更新
然后在 NAS
的 控制面板 -> 任务计划
新增 -> 计划的任务 -> 用户定义的脚本
修改计划执行时间为每天02:00执行
任务设置 -> 运行命令
bash /volume1/docker/clash/auto-reload-clash.sh
点击确定即可。可以右击刚刚创建的任务试运行看看。
至此 NAS 配置 clash 代理已全部完成。😋😋😋
服务器的将这些可视化界面改成命令即可。
clash 配置参考
打个广告个人的邀请链接,这里购买我可以获得一点点返佣🤭
https://xn--4gq62f52gdss.art/#/register?code=9vOcKKO2
mixed-port: 7890 allow-lan: true bind-address: '*' mode: rule log-level: info external-controller: '0.0.0.0:9090' dns: enable: false ipv6: false default-nameserver: [x.x.x.x, x.x.x.x] enhanced-mode: fake-ip fake-ip-range: x.x.x.x/x use-hosts: true nameserver: ['https://xxx', 'https://xxx'] fallback: ['https://xxx', 'https://xxx', 'https://xxx', 'tls://xxx'] fallback-filter: { geoip: true, ipcidr: [x.x.x.x/x, x.x.x.x/xx] } proxies: - { name: (看这里)每月刷新订阅获取新节点, type: trojan, server: xxx, port: 443, password: xxx, network: ws, udp: true, sni: 0.0.0.0, skip-cert-verify: true } rules: - 'xxx,xxx'mixed-port: 7890 allow-lan: true bind-address: '*' mode: rule log-level: info external-controller: '0.0.0.0:9090' dns: enable: false ipv6: false default-nameserver: [x.x.x.x, x.x.x.x] enhanced-mode: fake-ip fake-ip-range: x.x.x.x/x use-hosts: true nameserver: ['https://xxx', 'https://xxx'] fallback: ['https://xxx', 'https://xxx', 'https://xxx', 'tls://xxx'] fallback-filter: { geoip: true, ipcidr: [x.x.x.x/x, x.x.x.x/xx] } proxies: - { name: (看这里)每月刷新订阅获取新节点, type: trojan, server: xxx, port: 443, password: xxx, network: ws, udp: true, sni: 0.0.0.0, skip-cert-verify: true } rules: - 'xxx,xxx'mixed-port: 7890 allow-lan: true bind-address: '*' mode: rule log-level: info external-controller: '0.0.0.0:9090' dns: enable: false ipv6: false default-nameserver: [x.x.x.x, x.x.x.x] enhanced-mode: fake-ip fake-ip-range: x.x.x.x/x use-hosts: true nameserver: ['https://xxx', 'https://xxx'] fallback: ['https://xxx', 'https://xxx', 'https://xxx', 'tls://xxx'] fallback-filter: { geoip: true, ipcidr: [x.x.x.x/x, x.x.x.x/xx] } proxies: - { name: (看这里)每月刷新订阅获取新节点, type: trojan, server: xxx, port: 443, password: xxx, network: ws, udp: true, sni: 0.0.0.0, skip-cert-verify: true } rules: - 'xxx,xxx'
原文链接:https://zhanghongyun.cn/article/detail/7