部署局域网内共享代理
翻墙很麻烦,但对于搞开发的来说翻墙又是必修课,本文将探讨如何在家庭局域网中通过docker部署一个公用的代理服务.
如果是单机,我们在找到合适的供应商后安装clash for windows(沉痛哀悼该项目,感谢作者的奉献),然后在profile界面导入供应商提供的url即可
但如果是在家庭局域网范围内,给每台机器配个代理工具显然很麻烦,况且有些设备这样配代理并不方便,因此一个比较经济合理的方法是在家庭局域网中找台常驻的机器(通常是旁路由,nas这种机器)通过docker部署一个公用的代理服务.当需要翻墙时用它做代理即可
部署
我们使用dreamacro/clash(沉痛哀悼该项目,感谢作者的奉献)这个镜像作为代理服务的客户端 要部署我们需要做如下准备
-
写好配置文件,可以参考这个文档,比如我就会写成
# port: 7890 #http # socks-port: 7891 # sock5 mixed-port: 7890 redir-port: 7892 # linux和mac的redir allow-lan: true #允许局域网连接 mode: Rule # 模式 Rule, Global, Direct log-level: silent # 日志级别 silent, info, warning, error, debug external-controller: "0.0.0.0:9090" # RESTfull接口路径 secret: '' # api秘钥
如果你已经在clash_for_windows中配置好了,也可以从其中导出再进行修改
点击edit之后复制其中的内容即可导出.
之后部署到之后要挂栽的位置
-
写compose文件
version: "2.4" x-log: &default-log options: max-size: "10m" max-file: "3" services: # Clash clash: image: dreamacro/clash:v1.18.0 volumes: - "/volume2/docker_deploy/clash/clash/config.yaml:/root/.config/clash/config.yaml" ports: - "7890:7890" - "7891:7891" - "7892:9090" restart: always logging: <<: *default-log clash-dashboard: # dashboard image: haishanh/yacd:v0.3.8 depends_on: - clash ports: - "7893:80" restart: always logging: <<: *default-log
-
找台机器部署
管理代理行为
进入你部署clash-dashboard
的机器的7893
端口就可以设置代理的行为了.由于一些供应商会不定期更新节点,我们也就需要在节点看着有问题后跟着重新导出配置重启clash
iphone使用
iphone使用我们需要在设置->无线局域网->指定的wifi设置->HTTP代理
中设置配置代理
为手动
且将host和port都指向clash
宿主机的7890
端口
浏览器使用
如果你使用的是chrome或firefox,建议安装插件SwitchyOmega,配置其中的proxy
即可
要用的时候点插件切换到proxy
就可以用代理了,我们也可以在其中配置各种规则来指定哪些代理哪些不用代理
环境变量使用
linux或mac下如果是希望在命令行中暂时性的使用环境变量,建议将如下命令加入你的.bash_profile |
.zshrc |
#==============================http_proxy
alias setproxy="export https_proxy=http://clash宿主机ip:7890;export http_proxy=http://clash宿主机ip:7890;export all_proxy=socks5://clash宿主机ip:7890"
alias unsetproxy="unset https_proxy;unset http_proxy;unset all_proxy"
这样要用的时候使用命令setproxy
就可以激活使用代理,不用了就使用命令unsetproxy
即可.