在 linux 环境下可以二级制部署 clash,但是,为了不影响宿主环境,还是选择 Docker。比如 nas 系统,万一把宿主环境搞崩了,得不偿失。
首先创建相关目录文件:
clash ├── docker-compose.yml └── svc-clash └── config.yaml # Clash 配置文件
docker-compose.yml 内容如下:
version: "3" services: # Clash svc-clash: image: dreamacro/clash container_name: svc-clash volumes: - ./svc-clash/config.yaml:/root/.config/clash/config.yaml ports: - "7890:7890/tcp" - "7890:7890/udp" - "9090:9090" restart: always networks: - default # Clash Dashboard svc-clash-dashboard: image: centralx/clash-dashboard container_name: svc-clash-dashboard ports: - "12345:80" restart: always networks: - default # Networks networks: default: driver: bridge name: svc
Clash 部分的 ports 需不需要 socks 的 7891 端口,看自己的需求。
Clash Dashboard 部分的 ports 宿主机端口,我这里是 12345,因为我的 80 端口已经用作其他服务了。自己想要设为什么端口就写啥(非已经占用端口)。
config.yaml 文件的主要内容如下:
port: 7890 socks-port: 7891 allow-lan: false mode: Rule log-level: silent external-controller: 0.0.0.0:9090 secret: "123456"
port 和 socks-port 部分可以合并成 mixed: 7890。这样容器就不要考虑 socks 的问题了。
external-controller 部分可以是:127.0.0.1:9090。如果 ui 访问 127.0.0.1 不通,尝试改成 0.0.0.0:9090。
文件处理完毕之后,到对应的文件夹下运行命令:
doccker-compose up -d
然后,浏览器打开 clash ui。地址为主机 ip + 配置的端口。我这里是 12345。
在打开的时候会有一个弹窗,输入配置的端口密钥之类的。如果点击“确定”没反应,说明什么地方配错了。慢慢尝试吧。
然后,设置里面“允许局域网的连接”打开。
使用代理
一般情况(抄一下我参考的文章):
修改其它服务器的 ~/.bash_profile 文件,添加以下内容。
function proxy_off(){ unset http_proxy unset https_proxy unset all_proxy echo -e "已关闭代理" } function proxy_on() { export no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" # 将 10.10.10.10 改为你的代理节点 export http_proxy="http://10.10.10.10:7890" export https_proxy="http://10.10.10.10:7890" export all_proxy="socks5://10.10.10.10:7890" echo -e "已开启代理" }
# 令配置生效 $ source ~/.bash_profile # 打开代理 $ proxy_on # 关理代理 $ proxy_off
其他情况,比如 jellyfin。如果 jellyfin 是直接在宿主环境安装的,使用上面的操作就可以。如果实在容器,可以添加环境变量 –env ALL_PROXY=”http://10.10.10.10:7890″ 和 –env NO_PROXY=”localhost,127.0.0.1,localaddress,.localdomain.com”。
实际使用后发现,浏览器设置代理到 clash 可以,但 jellyfin 环境变量代理不太行。所以,jellyfin 换成了 –add-host 的方式。
在 portainer 的 network 面板,“add additional entry” 里添加 api.themoviedb.org 的 ip。