
pac.js文件部署及简单功能教学
文件作用
- 高自由度选择性配置哪些域名需要代理,哪些域名直接连接
- 一个文件配置所有设备代理连接
- 配合无软路由实现局域网设备连接同一个VPN可实现一个文件管理所有局域网设备
- 需要注意的是:pac.js无法代理
udp
连接,所以一些特殊软件就需要手动设置socks5
模式
代码示例
// 代理地址 + 端口
const proxy = '10.10.1.10:20171';
// 需要代理的域名
// 只需要填写二级域名, 多级前缀会自动判断
// * 号代表通配符
const rules = [
// wordpress
'wordpress.org',
// 头像
'gravatar.com',
// MC
'minecraft*.*',
// 谷歌
'google*.com',
'gstatic.com',
'gmail.com',
// github
'github*.*',
'githubusercontent.com',
// steam
'steam*.com',
];
/*
* 检查是否代理方法
*/
function FindProxyForURL(url, host) {
// 依次判断域名列表是否命中, 命中则使用代理, 否则直连
for(let item of rules){
// 客户端自带函数, 用于判断请求域
if(shExpMatch(host, item) || shExpMatch(host, '*.' + item)){
// 使用第一行的代理连接
return 'PROXY ' + proxy;
}
}
// 直连
return 'DIRECT';
}
部署pac.js
- 新建一个
.js
文件并将以上代码存入其中- 放入一个局域网内所有设备都能访问到的设备内
- 创建一个
http
服务, 确保通过http
连接能访问到该pac.js
- 建议直接使用
http://ip:端口/pac.js
访问, 使用自定义hosts
可能会导致延迟或其他意外
windows
连接示例
ios
连接示例
本文是原创文章,完整转载请注明来自 周明博客