我了解到不同的程序以不同的方式处理 pac 文件,也许大多数程序甚至不支持 pac 文件。所以我想知道是否有一个设置代理的工具说127.0.0.1:1234。当我将某个程序的代理设置为 127.0.0.1:1234 时,该工具使用 pac 文件来决定是重定向到代理还是直接连接。有没有可以满足上述功能的工具呢?
答案1
支持 JavaScript 的浏览器通常支持 PAC 文件。其他任何东西通常都不会,特别是我不知道有任何现成的代理软件可以。有许多代理支持根据目标 URL 执行不同的操作,但并非通过 JavaScript 程序。看对许多代理透明的本地代理
PAC 文件是 JavaScript 程序,因此对 PAC 文件的支持需要 JavaScript 解释器。虽然有用 JavaScript 编写的代理,但我找不到支持 PAC 文件的代理。 Python 库帕帕解析器实现 PAC 支持(在 Mozilla 的 JavaScript 引擎之上),并且有许多用 Python 编写的代理,但令人惊讶的是似乎没有任何实际的代理程序使用 pacparser。
答案2
呃...最后我使用其他规则而不是 pac 并尝试了隐私它有效。这就是我所做的。
- 安装 Privoxy 并收听
127.0.0.1:1234
. - 得到gfwlist.txt和转变将其放入 Privoxy 操作文件中。
- 在操作文件中,一些 url 将使用代理发送,其他 url 直接连接。
答案3
我和你的情况一样,试图弄清楚如何解析 pac 文件等来获取有效代理的 IP 和端口来填充 proxychains.conf 。
到目前为止,我发现的最简单、最快的方法是编写一个使用 lynx、grep、awk 和 sed 的脚本。这不是最漂亮的代码,但它可以在一分钟或更短的时间内工作并更新我的代理表。编辑如果有人可以告诉我如何简化这个脚本,那就太棒了。
#!/bin/bash
proxylst=proxy.lst
proxynew=proxy.new
lstdir=~/Documents/.proxyupdate
echo "fetching proxy list"
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' > $lstdir/$proxylst
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' >> $lstdir/$proxylst
lynx --dump https://someproxysite/proxy-server-list/port-8080/ | awk 'NR%2==0'| grep -e "8080" | awk {'print $1 " " $2'} | awk -F "[" '{print $1" "substr($2,4)}' >> $lstdir/$proxylst
echo "scan complete. updating /etc/proxychains.conf.."
sed 's/^/http /' $lstdir/$proxylst > $lstdir/$proxynew
grep -v 'http *.*.*.* 8080' /etc/proxychains.conf > $lstdir/proxyconf.new && cat $lstdir/$proxynew >> $lstdir/proxyconf.new
cp $lstdir/proxyconf.new /etc/proxychains.conf
echo
rm -rf $lstdir/proxyconf.new $lstdir/$proxylst $lstdir/$proxynew
echo "update complete."'
将其设置为 cron 条目并每小时更新一次表,然后就可以开始了。由于 proxychains 和 firefox 不能很好地协同工作,我使用 proxynovacom 的 pac 作为我的自动配置文件,并且它运行顺利。