Debian 将网络接口配置为网桥/网络交换机
2024年3月29日如何使用命令行选项在 Apple OS X / Linux / *BSD 或类 Unix 操作系统下测试 Proxy PAC 文件语法?
您可以使用用 Perl 编写的名为 pacester 的工具。此工具测试代理自动配置 (PAC) 文件。从项目主页:
教程详情 | |
---|---|
难度级别 | 中间的 |
根权限 | 是/否 |
要求 | 珀尔 |
美东时间。阅读时间 | 3分钟 |
浏览器使用 PAC 文件来确定 URL 的“正确”代理。由于 PAC 文件评估机制是在浏览器内部生成的,无法从外部访问,因此判断浏览器将针对特定 URL 使用哪个代理的唯一方法是手动检查 PAC 文件。但手动检查的规模并不是很好。 Pactester 解决了这个问题。它利用 JavaScript 解释器和 Netscape/Mozilla API 来评估 PAC 文件并自动化整个过程。 Pactester 读取 PAC 文件,在 JavaScript 上下文中对其进行评估,并使用此 PAC 文件的逻辑来确定特定 URL 的代理。
安装
Debian 和 Ubuntu Linux 用户键入以下命令来安装此工具:
$ sudo apt-get install libpacparser1
示例输出:
读取软件包列表...完成 构建依赖关系树 读取状态信息...完成 将安装以下新软件包: libpacparser1 0 个已升级、1 个新安装、0 个要删除、11 个未升级。 需要获取 395 kB 的档案。 此操作后,将使用 1,339 kB 的额外磁盘空间。 Get:1 http://debian.osuosl.org/debian/squeeze/main libpacparser1 amd64 1.2.6-2 [395 kB] 在 2 秒内获取 395 kB (153 kB/s) 选择之前取消选择的软件包 libpacparser1。 (正在读取数据库...当前安装的281091个文件和目录。) 解压libpacparser1(来自.../libpacparser1_1.2.6-2_amd64.deb)... 处理man-db的触发器... 设置libpacparser1(1.2.6- 2)...
关于源码安装的注意事项
键入以下wget 命令来下载源代码:
示例输出:
$ cd /tmp/
$ wget http://pactester.googlecode.com/files/pactester-1.0.8.tar.gz
-- 2012 - 11 - 20 21 : 34 : 17 -- http://pactester.googlecode.com/files/pactester-1.0.8.tar.gz 解析 pactester.googlecode.com... 74.125.128.82, 2404:6800 : 4005 :c00:: 52 连接到 pactester.googlecode.com|74.125.128.82|: 80 ... 已连接。 HTTP 请求已发送,正在等待响应... 200 OK 长度:1214308 ( 1.2M ) [ application/x-gzip ] 保存到: `pactester-1.0.8.tar.gz ' 100%[======== =====================>] 12,14,308 352K/s 在 3.4 秒内 2012-11-20 21:34:21 (352 KB/s) - ` pacester-1.0.8.tar.gz'已保存[ 1214308/1214308 ]
使用 tar 命令解压 tarball
$ tar xvf pactester-1.0.8.tar.gz
:
示例输出:
pactester-1.0.8/ pactester-1.0.8/README pactester-1.0.8/build/ pactester-1.0.8/build/Log-Log4perl-1.08.tar.gz pactester-1.0.8/build/install.sh pactester -1.0.8/build/js-1.5.tar.gz pactester-1.0.8/build/JavaScript-SpiderMonkey-0.17.tar.gz pactester-1.0.8/pactester pactester-1.0.8/安装 pactester-1.0.8 /复制 pacester-1.0.8/pac_utils.js
在 ~/pactester 目录中安装 pactester,输入:
示例输出:
$ mkdir $HOME/pactester
$ cd pactester-1.0.8/build/
$ ./install.sh $HOME/pactester
...... <snip> ... 安装 /home/vivek/pactester/lib/perl/5.10.1/auto/JavaScript/SpiderMonkey/SpiderMonkey.so 安装 /home/vivek/pactester/lib/perl/5.10.1/JavaScript/SpiderMonkey .pm 安装 /home/vivek/pactester/man/man3/JavaScript::SpiderMonkey.3pm 将安装信息附加到 /home/vivek/pactester/lib/perl/5.10.1/perllocal.pod -e -e #### ###################################### >>PERLLIB = -e /home/vivek/ pactester/share/perl/5.10.1:/home/vivek/pactester/lib/perl/5.10.1 -e 我已经在 pacester 脚本中设置了 PERLLIB 路径,因此您不必-e 将其设置为环境多变的 :)
如何使用 pacester 命令测试代理自动配置 (pac) 文件?
语法是:
pactester -p / path / to / proxy.pac.file -u url pactester -p / path / to / proxy.pac.file -u url -c client.ip.address.here
proxy.pac 文件示例:
function FindProxyForURL ( url , host ) { // 您的代理服务器名称和端口 var proxyserver = 'squidproxy1.example.com.home.net.in:3128' ; // // 这是通过代理服务器连接的主机列表 // var proxylist = new Array ( "reddit.com" , "www.example.com" , "mail.google.com" , "www.pandora. com” 、 “www.google.com” 、 “www.hulu.com” 、 “mail.example.com” 、 “mail.example.com” 、 “slashdot.org” ); // 返回匹配域/主机的代理 名称for ( var i = 0 ; i < proxylist.length ; i ++ ) { var value = proxylist [ i ] ; if ( localHostOrDomainIs (主机,值) ) { return "PROXY" + proxyserver ;返回“直接” ;}
要查找 URL http://www.example.com 的 pac 文件 proxy.pac 返回的代理字符串:
$ pactester -p proxy.pac -u http://www.example.com
示例输出:
代理squidproxy1.example.com.home.net.in:3128
要查找 URL http://www.google.com 的 pac 文件 proxy.pac 返回的代理字符串:
$ pactester -p proxy.pac -u http://www.google.com
示例输出:
直接的
IP 地址为 192.168.1.5 的客户端的测试设置:在文件
$ pactester -p wpad.dat -c 192.168.1.5 -u http://www.google.com
中创建 url/主机列表:/tmp/proxy.url.test
http://www.example.com http://example.com https://mail.google.com https://www.google.com http://nas03 http://router1 http://www.潘多拉网站
现在,找出 /tmp/proxy.url.test 文件中指定的 url 列表的代理设置示例
$ pactester -p /var/www/html/proxy.pac -f /tmp/proxy.url.test
输出:
http://www.example.com:代理squidproxy1.example.com.home.net.in:3128 http://example.com:直接 https://mail.google.com:代理squidproxy1.example.com。 home.net.in:3128 https://www.google.com : 代理squidproxy1.example.com.home.net.in:3128 http://nas03 : 直接 http://router1 : 直接 http://www .pandora.com:代理squidproxy1.example.com.home.net.in:3128