专线代理服务器部署与使用文档

Clash代理软件部署与使用文档

部署流程

全篇以CentOS为例
1.安装相关依赖
Docker(用于跑Clash代理软件的容器)

1
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

Docker-compose(用于快速启动与维护容器)

1
2
yum install python-pip
pip3 install docker-compose

配置好系统时间,或者与指定NTP服务器同步时间,保证日志文件时间的正确性。

2.创建并配置Clash运行环境
创建Clash文件夹,文件夹中放置两个配置文件docker-compose.yamlconfig.yaml
配置文件在下方给出
以下是创建文件与文件夹相关脚本

Clash/config.yaml
1
2
3
4
5
cd ~
mkdir Clash
cd Clash
vi docker-compose.yml
vi config.yaml
Clash/docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: '3'

services:
clash:
image: dreamacro/clash
#配置文件映射
volumes:
#Clash软件配置文件
- ./config.yaml:/root/.config/clash/config.yaml
#容器与宿主机同步时区
- /etc/localtime:/etc/localtime:ro
ports:
#http代理开放端口
- "7890:7890"
# - "7891:7891" #socks代理端口
# - "7892:7892" #redir端口
# - "9090:9090" #WEB API端口
restart: always
container_name: clash
#使用syslog记录Clash产生的日志
# logging:
# driver: "syslog"
# options:
# syslog-address: "udp://x.x.x.x:514"

config.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
port: 7890                                              #代理端口
socks-port: 7891 #socks代理端口
redir-port: 7892 #redir端口
allow-lan: true
mode: Rule
log-level: debug
external-controller: 0.0.0.0:9090 #WEB API监听地址
secret: "yoursecret" #WEB API密钥

proxy-groups:
- name: 直连
type: select
proxies:
- DIRECT

- name: 拦截
type: select
proxies:
- REJECT

rules:
# - SRC-IP-CIDR,192.168.11.251/32,DIRECT

#Google
- DOMAIN,drive.google.com,拦截
- DOMAIN-SUFFIX,google.com,直连
- DOMAIN-KEYWORD,google,直连
- DOMAIN-SUFFIX,gstatic.com,直连
- DOMAIN-SUFFIX,ggpht.com,直连
#Wikipedia
- DOMAIN-SUFFIX,wikipedia.org,直连
- DOMAIN-KEYWORD,wikipedia,直连
#BBC
- DOMAIN-SUFFIX,bbc.co.uk,直连
#nytimes
- DOMAIN-SUFFIX,nytimes.com,直连
- DOMAIN-SUFFIX,nyt.com,直连
#wsj
- DOMAIN-SUFFIX,wsj.com,直连
#Dropbox
- DOMAIN-SUFFIX,dropbox.com,直连
- IP-CIDR,8.8.8.8/32,直连
- MATCH,拦截

使用方法

Clash软件启动与停止

1
2
3
4
docker-compose up -d     #启动Clash容器
docker-compose down #停止Clash容器
docker-compose logs #查看Clash容器日志
docker-compose restart #重启Clash软件,用以重新加载Clash配置

Clash软件配置config.yaml中修改rules字段,用来对不同域名与IP地址进行分流。
详细配置可查看Clash rules配置文档

参考资料

  1. Install Docker Engine on CentOS
  2. CentOS Docker 安装
  3. Clash rules配置文档

PAC文件的编写与部署

文件编写

PAC文件是用于本地机器辨别出哪些域名或IP地址需要走代理,哪些选择直连。
此处我使用的是AdBlockplus的域名匹配规则,匹配中域名将会走代理。
在本地测试一个网站中存在哪些域名无法加载需要走代理时,推荐使用一款Chrome浏览器插件,SwithyOmega
此插件能够显示出当前页面中加载失败的域名,便于找到域名将其加入PAC文件中。
同时,还需将其加到Clash的config.yaml配置文件中,让代理服务器“后端”放行该域名。
建议”后端”Clash代理服务器规则设置严格,”前端”Clash文件规则宽泛一些。

文件部署

修改过的PAC文件需要放到一个WEB服务器,服务器内网外网均可,只需本地机器能够直接访问此地址下载PAC文件即可
下面是我改的一个PAC文件
pac_test.txt

参考链接

代理 PAC 文件语法简介
Shadowsocks PAC自定义规则介绍

DHCP下发代理PAC文件

在DHCP服务器中设置一项DHCP Options
下发DHCP Options到希望接入专线的机子中
DHCP Options:
Code:252
Value:<PAC文件地址>
在各个操作系统中将自动检测代理功能打开即可。
WIN10:
设置——网络和Internet——代理——自动检测设置
WIN7:
Internet Explorer——Internet选项——连接——局域网设置——自动检测设置