[{"data":1,"prerenderedAt":639},["Reactive",2],{"article-20230506":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":7,"published":9,"tags":10,"slug":8,"body":13,"_type":634,"_id":635,"_source":636,"_file":637,"_extension":638},"/articles/20230506","articles",false,"","docker内的容器走clash代理","2023/05/06",[11,12],"docker","proxy",{"type":14,"children":15,"toc":629},"root",[16,24,47,251,256,264,269,274,279,284,591,596,601,609,614,623],{"type":17,"tag":18,"props":19,"children":21},"element","h2",{"id":20},"容器内搭建clash",[22],{"type":23,"value":20},"text",{"type":17,"tag":25,"props":26,"children":27},"p",{},[28,30,37,39,45],{"type":23,"value":29},"首先使用",{"type":17,"tag":31,"props":32,"children":34},"code",{"className":33},[],[35],{"type":23,"value":36},"docker-compose.yml",{"type":23,"value":38},"在docker内搭建一个",{"type":17,"tag":31,"props":40,"children":42},{"className":41},[],[43],{"type":23,"value":44},"clash",{"type":23,"value":46},"容器：",{"type":17,"tag":48,"props":49,"children":53},"pre",{"code":50,"language":51,"meta":7,"className":52,"style":7},"version: '3.9'\nservices:\n  clash:\n    image: dreamacro/clash\n    container_name: clash\n    restart: always\n    ports:\n      - 7890:7890\n      - 7891:7891\n      - 9090:9090\n    volumes:\n      # 将配置文件挂载到容器中\n      - ./clash:/root/.config/clash\n","yml","language-yml shiki shiki-themes github-dark",[54],{"type":17,"tag":31,"props":55,"children":56},{"__ignoreMap":7},[57,81,95,108,126,144,162,175,189,202,215,228,238],{"type":17,"tag":58,"props":59,"children":62},"span",{"class":60,"line":61},"line",1,[63,69,75],{"type":17,"tag":58,"props":64,"children":66},{"style":65},"--shiki-default:#85E89D",[67],{"type":23,"value":68},"version",{"type":17,"tag":58,"props":70,"children":72},{"style":71},"--shiki-default:#E1E4E8",[73],{"type":23,"value":74},": ",{"type":17,"tag":58,"props":76,"children":78},{"style":77},"--shiki-default:#9ECBFF",[79],{"type":23,"value":80},"'3.9'\n",{"type":17,"tag":58,"props":82,"children":84},{"class":60,"line":83},2,[85,90],{"type":17,"tag":58,"props":86,"children":87},{"style":65},[88],{"type":23,"value":89},"services",{"type":17,"tag":58,"props":91,"children":92},{"style":71},[93],{"type":23,"value":94},":\n",{"type":17,"tag":58,"props":96,"children":98},{"class":60,"line":97},3,[99,104],{"type":17,"tag":58,"props":100,"children":101},{"style":65},[102],{"type":23,"value":103},"  clash",{"type":17,"tag":58,"props":105,"children":106},{"style":71},[107],{"type":23,"value":94},{"type":17,"tag":58,"props":109,"children":111},{"class":60,"line":110},4,[112,117,121],{"type":17,"tag":58,"props":113,"children":114},{"style":65},[115],{"type":23,"value":116},"    image",{"type":17,"tag":58,"props":118,"children":119},{"style":71},[120],{"type":23,"value":74},{"type":17,"tag":58,"props":122,"children":123},{"style":77},[124],{"type":23,"value":125},"dreamacro/clash\n",{"type":17,"tag":58,"props":127,"children":129},{"class":60,"line":128},5,[130,135,139],{"type":17,"tag":58,"props":131,"children":132},{"style":65},[133],{"type":23,"value":134},"    container_name",{"type":17,"tag":58,"props":136,"children":137},{"style":71},[138],{"type":23,"value":74},{"type":17,"tag":58,"props":140,"children":141},{"style":77},[142],{"type":23,"value":143},"clash\n",{"type":17,"tag":58,"props":145,"children":147},{"class":60,"line":146},6,[148,153,157],{"type":17,"tag":58,"props":149,"children":150},{"style":65},[151],{"type":23,"value":152},"    restart",{"type":17,"tag":58,"props":154,"children":155},{"style":71},[156],{"type":23,"value":74},{"type":17,"tag":58,"props":158,"children":159},{"style":77},[160],{"type":23,"value":161},"always\n",{"type":17,"tag":58,"props":163,"children":165},{"class":60,"line":164},7,[166,171],{"type":17,"tag":58,"props":167,"children":168},{"style":65},[169],{"type":23,"value":170},"    ports",{"type":17,"tag":58,"props":172,"children":173},{"style":71},[174],{"type":23,"value":94},{"type":17,"tag":58,"props":176,"children":178},{"class":60,"line":177},8,[179,184],{"type":17,"tag":58,"props":180,"children":181},{"style":71},[182],{"type":23,"value":183},"      - ",{"type":17,"tag":58,"props":185,"children":186},{"style":77},[187],{"type":23,"value":188},"7890:7890\n",{"type":17,"tag":58,"props":190,"children":192},{"class":60,"line":191},9,[193,197],{"type":17,"tag":58,"props":194,"children":195},{"style":71},[196],{"type":23,"value":183},{"type":17,"tag":58,"props":198,"children":199},{"style":77},[200],{"type":23,"value":201},"7891:7891\n",{"type":17,"tag":58,"props":203,"children":205},{"class":60,"line":204},10,[206,210],{"type":17,"tag":58,"props":207,"children":208},{"style":71},[209],{"type":23,"value":183},{"type":17,"tag":58,"props":211,"children":212},{"style":77},[213],{"type":23,"value":214},"9090:9090\n",{"type":17,"tag":58,"props":216,"children":218},{"class":60,"line":217},11,[219,224],{"type":17,"tag":58,"props":220,"children":221},{"style":65},[222],{"type":23,"value":223},"    volumes",{"type":17,"tag":58,"props":225,"children":226},{"style":71},[227],{"type":23,"value":94},{"type":17,"tag":58,"props":229,"children":231},{"class":60,"line":230},12,[232],{"type":17,"tag":58,"props":233,"children":235},{"style":234},"--shiki-default:#6A737D",[236],{"type":23,"value":237},"      # 将配置文件挂载到容器中\n",{"type":17,"tag":58,"props":239,"children":241},{"class":60,"line":240},13,[242,246],{"type":17,"tag":58,"props":243,"children":244},{"style":71},[245],{"type":23,"value":183},{"type":17,"tag":58,"props":247,"children":248},{"style":77},[249],{"type":23,"value":250},"./clash:/root/.config/clash\n",{"type":17,"tag":25,"props":252,"children":253},{},[254],{"type":23,"value":255},"然后在docker-compose.yml文件所在的目录下，执行命令：",{"type":17,"tag":48,"props":257,"children":259},{"code":258},"docker-compose up -d\n",[260],{"type":17,"tag":31,"props":261,"children":262},{"__ignoreMap":7},[263],{"type":23,"value":258},{"type":17,"tag":25,"props":265,"children":266},{},[267],{"type":23,"value":268},"这样就简单搭建起来了一个代理服务器，clash的配置文件从./clash文件夹中读取，clash相关的教程这里就不提供啦。",{"type":17,"tag":18,"props":270,"children":272},{"id":271},"搭建一个测试联通的容器",[273],{"type":23,"value":271},{"type":17,"tag":25,"props":275,"children":276},{},[277],{"type":23,"value":278},"确认clash可以代理本机的http请求之后呢，我们在docker中另外开一个容器，随便开一个，然后我们设置这个容器的http流量代理到clash容器中",{"type":17,"tag":25,"props":280,"children":281},{},[282],{"type":23,"value":283},"改写docker-compose.yml文件，改为以下的内容：",{"type":17,"tag":48,"props":285,"children":287},{"code":286,"language":51,"meta":7,"className":52,"style":7},"version: '3.9'\nservices:\n  clash:\n    image: dreamacro/clash\n    container_name: clash\n    restart: always\n    ports:\n      - 7890:7890\n      - 7891:7891\n      - 9090:9090\n    volumes:\n      # 将配置文件挂载到容器中\n      - ./clash:/root/.config/clash\n  yacd:\n    image: ghcr.io/haishanh/yacd:master\n    container_name: yacd\n    restart: always\n    depends_on:\n      # 依赖于上面的clash服务，在clash启动后，web才启动\n      - clash\n    environment:\n      # 注意这里，这里会代理终端的http流量到clash容器的7890端口\n      - http_proxy=http://clash:7890\n      - https_proxy=http://clash:7890\n",[288],{"type":17,"tag":31,"props":289,"children":290},{"__ignoreMap":7},[291,306,317,328,343,358,373,384,395,406,417,428,435,446,459,476,493,509,522,531,543,556,565,578],{"type":17,"tag":58,"props":292,"children":293},{"class":60,"line":61},[294,298,302],{"type":17,"tag":58,"props":295,"children":296},{"style":65},[297],{"type":23,"value":68},{"type":17,"tag":58,"props":299,"children":300},{"style":71},[301],{"type":23,"value":74},{"type":17,"tag":58,"props":303,"children":304},{"style":77},[305],{"type":23,"value":80},{"type":17,"tag":58,"props":307,"children":308},{"class":60,"line":83},[309,313],{"type":17,"tag":58,"props":310,"children":311},{"style":65},[312],{"type":23,"value":89},{"type":17,"tag":58,"props":314,"children":315},{"style":71},[316],{"type":23,"value":94},{"type":17,"tag":58,"props":318,"children":319},{"class":60,"line":97},[320,324],{"type":17,"tag":58,"props":321,"children":322},{"style":65},[323],{"type":23,"value":103},{"type":17,"tag":58,"props":325,"children":326},{"style":71},[327],{"type":23,"value":94},{"type":17,"tag":58,"props":329,"children":330},{"class":60,"line":110},[331,335,339],{"type":17,"tag":58,"props":332,"children":333},{"style":65},[334],{"type":23,"value":116},{"type":17,"tag":58,"props":336,"children":337},{"style":71},[338],{"type":23,"value":74},{"type":17,"tag":58,"props":340,"children":341},{"style":77},[342],{"type":23,"value":125},{"type":17,"tag":58,"props":344,"children":345},{"class":60,"line":128},[346,350,354],{"type":17,"tag":58,"props":347,"children":348},{"style":65},[349],{"type":23,"value":134},{"type":17,"tag":58,"props":351,"children":352},{"style":71},[353],{"type":23,"value":74},{"type":17,"tag":58,"props":355,"children":356},{"style":77},[357],{"type":23,"value":143},{"type":17,"tag":58,"props":359,"children":360},{"class":60,"line":146},[361,365,369],{"type":17,"tag":58,"props":362,"children":363},{"style":65},[364],{"type":23,"value":152},{"type":17,"tag":58,"props":366,"children":367},{"style":71},[368],{"type":23,"value":74},{"type":17,"tag":58,"props":370,"children":371},{"style":77},[372],{"type":23,"value":161},{"type":17,"tag":58,"props":374,"children":375},{"class":60,"line":164},[376,380],{"type":17,"tag":58,"props":377,"children":378},{"style":65},[379],{"type":23,"value":170},{"type":17,"tag":58,"props":381,"children":382},{"style":71},[383],{"type":23,"value":94},{"type":17,"tag":58,"props":385,"children":386},{"class":60,"line":177},[387,391],{"type":17,"tag":58,"props":388,"children":389},{"style":71},[390],{"type":23,"value":183},{"type":17,"tag":58,"props":392,"children":393},{"style":77},[394],{"type":23,"value":188},{"type":17,"tag":58,"props":396,"children":397},{"class":60,"line":191},[398,402],{"type":17,"tag":58,"props":399,"children":400},{"style":71},[401],{"type":23,"value":183},{"type":17,"tag":58,"props":403,"children":404},{"style":77},[405],{"type":23,"value":201},{"type":17,"tag":58,"props":407,"children":408},{"class":60,"line":204},[409,413],{"type":17,"tag":58,"props":410,"children":411},{"style":71},[412],{"type":23,"value":183},{"type":17,"tag":58,"props":414,"children":415},{"style":77},[416],{"type":23,"value":214},{"type":17,"tag":58,"props":418,"children":419},{"class":60,"line":217},[420,424],{"type":17,"tag":58,"props":421,"children":422},{"style":65},[423],{"type":23,"value":223},{"type":17,"tag":58,"props":425,"children":426},{"style":71},[427],{"type":23,"value":94},{"type":17,"tag":58,"props":429,"children":430},{"class":60,"line":230},[431],{"type":17,"tag":58,"props":432,"children":433},{"style":234},[434],{"type":23,"value":237},{"type":17,"tag":58,"props":436,"children":437},{"class":60,"line":240},[438,442],{"type":17,"tag":58,"props":439,"children":440},{"style":71},[441],{"type":23,"value":183},{"type":17,"tag":58,"props":443,"children":444},{"style":77},[445],{"type":23,"value":250},{"type":17,"tag":58,"props":447,"children":449},{"class":60,"line":448},14,[450,455],{"type":17,"tag":58,"props":451,"children":452},{"style":65},[453],{"type":23,"value":454},"  yacd",{"type":17,"tag":58,"props":456,"children":457},{"style":71},[458],{"type":23,"value":94},{"type":17,"tag":58,"props":460,"children":462},{"class":60,"line":461},15,[463,467,471],{"type":17,"tag":58,"props":464,"children":465},{"style":65},[466],{"type":23,"value":116},{"type":17,"tag":58,"props":468,"children":469},{"style":71},[470],{"type":23,"value":74},{"type":17,"tag":58,"props":472,"children":473},{"style":77},[474],{"type":23,"value":475},"ghcr.io/haishanh/yacd:master\n",{"type":17,"tag":58,"props":477,"children":479},{"class":60,"line":478},16,[480,484,488],{"type":17,"tag":58,"props":481,"children":482},{"style":65},[483],{"type":23,"value":134},{"type":17,"tag":58,"props":485,"children":486},{"style":71},[487],{"type":23,"value":74},{"type":17,"tag":58,"props":489,"children":490},{"style":77},[491],{"type":23,"value":492},"yacd\n",{"type":17,"tag":58,"props":494,"children":496},{"class":60,"line":495},17,[497,501,505],{"type":17,"tag":58,"props":498,"children":499},{"style":65},[500],{"type":23,"value":152},{"type":17,"tag":58,"props":502,"children":503},{"style":71},[504],{"type":23,"value":74},{"type":17,"tag":58,"props":506,"children":507},{"style":77},[508],{"type":23,"value":161},{"type":17,"tag":58,"props":510,"children":512},{"class":60,"line":511},18,[513,518],{"type":17,"tag":58,"props":514,"children":515},{"style":65},[516],{"type":23,"value":517},"    depends_on",{"type":17,"tag":58,"props":519,"children":520},{"style":71},[521],{"type":23,"value":94},{"type":17,"tag":58,"props":523,"children":525},{"class":60,"line":524},19,[526],{"type":17,"tag":58,"props":527,"children":528},{"style":234},[529],{"type":23,"value":530},"      # 依赖于上面的clash服务，在clash启动后，web才启动\n",{"type":17,"tag":58,"props":532,"children":534},{"class":60,"line":533},20,[535,539],{"type":17,"tag":58,"props":536,"children":537},{"style":71},[538],{"type":23,"value":183},{"type":17,"tag":58,"props":540,"children":541},{"style":77},[542],{"type":23,"value":143},{"type":17,"tag":58,"props":544,"children":546},{"class":60,"line":545},21,[547,552],{"type":17,"tag":58,"props":548,"children":549},{"style":65},[550],{"type":23,"value":551},"    environment",{"type":17,"tag":58,"props":553,"children":554},{"style":71},[555],{"type":23,"value":94},{"type":17,"tag":58,"props":557,"children":559},{"class":60,"line":558},22,[560],{"type":17,"tag":58,"props":561,"children":562},{"style":234},[563],{"type":23,"value":564},"      # 注意这里，这里会代理终端的http流量到clash容器的7890端口\n",{"type":17,"tag":58,"props":566,"children":568},{"class":60,"line":567},23,[569,573],{"type":17,"tag":58,"props":570,"children":571},{"style":71},[572],{"type":23,"value":183},{"type":17,"tag":58,"props":574,"children":575},{"style":77},[576],{"type":23,"value":577},"http_proxy=http://clash:7890\n",{"type":17,"tag":58,"props":579,"children":581},{"class":60,"line":580},24,[582,586],{"type":17,"tag":58,"props":583,"children":584},{"style":71},[585],{"type":23,"value":183},{"type":17,"tag":58,"props":587,"children":588},{"style":77},[589],{"type":23,"value":590},"https_proxy=http://clash:7890\n",{"type":17,"tag":18,"props":592,"children":594},{"id":593},"测试",[595],{"type":23,"value":593},{"type":17,"tag":25,"props":597,"children":598},{},[599],{"type":23,"value":600},"之后我们只需要进入yacd容器中，在shell下使用命令测试能否访问google：",{"type":17,"tag":48,"props":602,"children":604},{"code":603},"curl -Iv www.google.com\n",[605],{"type":17,"tag":31,"props":606,"children":607},{"__ignoreMap":7},[608],{"type":23,"value":603},{"type":17,"tag":25,"props":610,"children":611},{},[612],{"type":23,"value":613},"如果显示一下的信息，则说明终端的代理设置成功：",{"type":17,"tag":25,"props":615,"children":616},{},[617],{"type":17,"tag":618,"props":619,"children":622},"img",{"alt":620,"src":621},"image","https://johnhom-img.oss-cn-guangzhou.aliyuncs.com/images/curl_google.jpg",[],{"type":17,"tag":624,"props":625,"children":626},"style",{},[627],{"type":23,"value":628},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":83,"depth":83,"links":630},[631,632,633],{"id":20,"depth":83,"text":20},{"id":271,"depth":83,"text":271},{"id":593,"depth":83,"text":593},"markdown","content:articles:20230506.md","content","articles/20230506.md","md",1772793492652]