linux自动代理设置

如何写PAC自动代理配置文件

我们在使用代理上网时,经常要去手动的配置浏览器或者系统的代理设置,但是也可以通过自动代理配置文件来自动配置。在这里教下大家如何自己写PAC自动代理配置文件,你看完后就会知道,原来写PAC自动代理配置文件其实很简单。

PAC自动代理配置文件

首先PAC文件是纯文本格式的,实际上就是JavaScript文件。一个最简单的PAC文件的内容如下:

function FindProxyForURL(url, host) {
return "DIRECT";
}

在PAC自动代理配置文件中必须包含 FindProxyForURL(url, host)这个函数。在上面的例子中,FindProxyForURL(url, host)函数返回值为 "DIRECT" ,即什么也不做,直接DIRECT(直接联网)。

FindProxyForURL(url, host)的返回值

FindProxyForURL(url, host)函数返回值类型有以下几种:

  1. DIRECT
  2. PROXY proxysample.com:8080  或者 PROXY 10.12.8.196:8080
  3. SOCKS5 socks5sample.com:8080  或者SOCKS5 10.12.8.196:8080

返回值DIRECT为直接联网,即不使用代理设置联网。PROXY proxysample.com:8080即表示http代理的主机和端口,当然主机也可以用IP表示。SOCKS5 socks5sample.com:8080  即表示socks5代理的主机和端口,同样主机也可以用IP表示。

PAC自动代理配置文件示例

1.用PAC指定一个http代理时,pac 文件可以这么写:

function FindProxyForURL(url, host) {
return "PROXY 192.168.1.1:808";
}

表示通过http代理上网,代理服务器的地址和端口分别为192.168.1.1和808。

2.多个代理的pac 文件这么写:

function FindProxyForURL(url, host) {
return "DIRECT; PROXY 192.168.1.1:808; SOCKS5 proxy.lxx1.com:808";
}

表示首先不通过代理联网,如果无法连接则使用http代理,其次使用SOCKS5代理连接

3.特定网站使用代理

function FindProxyForURL(url, host) {
if (shExpMatch(url,"*.google.com/*")) {
return "PROXY 192.168.1.1:808";
}
if (shExpMatch(url, "*.wikipedia.com:*/*")) {
return "SOCKS5 proxy.lxx1.com:808";
}
if (isInNet(host, "10.0.0.0",  "255.0.0.0")){
return "DIRECT";
}
return "DIRECT; PROXY 192.168.1.1:808; SOCKS5 proxy.lxx1.com:808";
}

上面的PAC文件表示:

  1. 当url是*.google.com/* 时,自动使用PROXY代理;
  2. 当url是*.wikipedia.cm/*时,自动使用SOCKS5代理;
  3. 当host是10.0.0.0 /255.0.0.0的子网内时,自动直连;
  4. 如果都不匹配,则依次按DIRECT、PROXY、SOCKS5的次序尝试。

自动代理设置

你可以将PAC文件上传到服务器,这样会得到一个url,以后在配置代理时可以直接通过PAC自动代理配置文件来配置。在配置代理时,只需要填写PAC文件的url即可。

1.在浏览器中设置:

火狐浏览器代理设置
火狐浏览器代理设置

2.linux自动代理设置:

linux自动代理设置

这是一个PAC文件示例:proxy.pac

原创文章,转载请注明: 转载自科技爱好者博客

本文链接地址: 如何写PAC自动代理配置文件 (http://blog.lxx1.com/439)

如果博客对您有帮助,请给我 打赏


科技爱好者

工科学生大四在读,专业嵌入式开发,喜欢计算机,喜欢单片机,喜欢各种各样美好的东西,相信科技正在改变世界! 这是我的 个人博客

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据