Update README

This commit is contained in:
Chai Feng 2024-10-07 11:05:46 +08:00
parent dd126b5172
commit 54e328534a
No known key found for this signature in database
GPG Key ID: 2DCD9A24E523FFD2

View File

@ -1,68 +1,68 @@
# proxy.pac # proxy.pac
This project is designed to help you generate a `proxy.pac` file that can be used for configuring browser or system-wide proxy settings. You can define custom rules to route traffic based on the domains specified in your configuration files. 这个项目用来生成代理自动配置 `proxy.pac` 文件,可以用于配置浏览器或系统级的代理设置。你可以自定义规则,根据配置文件中指定的域名来路由流量。
## Usage ## 使用方法
1. **Domain Rules Configuration** 1. **域名规则配置**
The project includes several example configuration files: 项目包含一些示例配置文件:
- `domain-rules-blocked.txt.example` - `domain-rules-blocked.txt.example`
- `domain-rules-direct.txt.example` - `domain-rules-direct.txt.example`
- `domain-rules-proxy.txt.example` - `domain-rules-proxy.txt.example`
To use these, create your own versions of these files without the `.example` extension. Each file represents a different proxy behavior: 要使用这些文件,去掉 `.example` 扩展名。每个文件代表不同的代理行为:
- **Blocked**: Domains added to `domain-rules-blocked.txt` will be blocked. - **Blocked**:添加到 `domain-rules-blocked.txt` 中的域名将被阻止访问。
- **Direct**: Domains added to `domain-rules-direct.txt` will bypass the proxy and connect directly. - **Direct**:添加到 `domain-rules-direct.txt` 中的域名将绕过代理,直接连接。
- **Proxy**: Domains added to `domain-rules-proxy.txt` will use the default proxy. - **Proxy**:添加到 `domain-rules-proxy.txt` 中的域名将使用默认代理。
Add your domains to the appropriate files, with each domain on a new line. Lines starting with `#` are treated as comments. For example: 将你的域名添加到合适的文件中,每个域名一行。以 `#` 开头的行被视为注释。例如:
``` ```
# Direct connection domains # 直连域名
google.com google.com
example.org example.org
``` ```
You can also create your own custom rule files. The file name should follow the format `domain-rules-<rule_name>.txt`. For example, `domain-rules-companyProxy.txt` will make all domains in that file use the `companyProxy` setting defined in the `proxy.pac`. 你也可以创建自己的自定义规则文件,文件名应遵循 `domain-rules-<rule_name>.txt` 的格式。例如,`domain-rules-companyProxy.txt` 将使该文件中的所有域名使用 `proxy.pac` 中定义的 `companyProxy` 设置。
2. **Build the `proxy.pac` File** 2. **生成 `proxy.pac` 文件**
Run the build script to generate the `proxy.pac` file: 运行脚本生成 `proxy.pac` 文件:
```sh ```sh
./build.sh ./build.sh
``` ```
This will create the `proxy.pac` file in the project root directory. 在项目根目录中会自动生成 `proxy.pac` 文件。
3. **Proxy Configuration** 3. **代理配置**
The generated `proxy.pac` file uses the following default proxy configurations (note that the default proxy server is `SOCKS5 127.0.0.1:1080`): 生成的 `proxy.pac` 文件使用以下默认的代理配置(注意默认代理服务器是 `SOCKS5 127.0.0.1:1080`
```javascript ```javascript
var proxyBehaviors = { var proxyBehaviors = {
proxy: "SOCKS5 127.0.0.1:1080", // the default proxy proxy: "SOCKS5 127.0.0.1:1080", // 默认代理
direct: DIRECT, direct: DIRECT,
blocked: "PROXY 0.0.0.0:0", blocked: "PROXY 0.0.0.0:0",
"http_proxy": "PROXY 127.0.0.1:3128", "http_proxy": "PROXY 127.0.0.1:3128",
"companyProxy": "PROXY 192.168.1.1:8080", // domains list in `domain-rules-companyProxy.txt` will use this proxy setting "companyProxy": "PROXY 192.168.1.1:8080", // `domain-rules-companyProxy.txt` 中的域名将使用此代理设置
}; };
``` ```
You can modify these values in the `proxy.pac` file after it's generated, or customize them directly in the script if you need different default settings. Please adjust these proxy settings to match your actual environment and requirements. 你可以在生成 `proxy.pac` 后修改这些值,或者直接在原始脚本 `proxy.js` 中进行自定义,以便使用不同的默认设置。请根据实际环境和需求调整这些代理设置。
4. **Test** 4. **测试**
If you have Node.js installed, you can run a test to verify your configuration by using the following command: 如果安装了 Node.js可以使用以下命令运行测试以验证配置
```sh ```sh
node proxy.pac test node proxy.pac test
``` ```
The test code is located at the end of the `proxy.pac` file, for example: 测试代码位于 `proxy.pac` 文件的末尾,例如:
```javascript ```javascript
assertVisitHostWithProxy("com.google"); assertVisitHostWithProxy("com.google");
@ -73,17 +73,17 @@ This project is designed to help you generate a `proxy.pac` file that can be use
assertBlockedHost("www.whitehouse.com"); assertBlockedHost("www.whitehouse.com");
``` ```
## Example ## 示例
To add a domain to be blocked, simply edit `domain-rules-blocked.txt`: 要添加一个需要被阻止的域名,只需编辑 `domain-rules-blocked.txt` 文件:
``` ```
# Blocked domains # 被阻止的域名
example.com example.com
ads.example.net ads.example.net
``` ```
After running `./build.sh`, the generated `proxy.pac` will block access to `example.com` and `ads.example.net`. 运行 `./build.sh` 重新生成的 `proxy.pac` 将阻止访问 `example.com``ads.example.net`
## License ## License