V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
la0wei
V2EX  ›  问与答

Firefox 使用 SOCKS v5 代理 DNS,但 VPS 上的 dns 广告过滤不生效。及 vps privoxy 广告过滤后续

  •  
  •   la0wei · 2017-03-22 22:18:09 +08:00 · 2447 次点击
    这是一个创建于 2584 天前的主题,其中的信息可能已经有所发展或是发生改变。

    本贴有两个目的

    一是想求教 dns 的问题。 二是前一段时间发了个帖子, https://www.v2ex.com/t/331170 尝试在 vps 上过滤广告,但是不成功。

    不甘心,断断续续尝试了一段时间,现将经验分享如下。

    按照时间顺序整理如下。


    vps:vultr kvm

    ubuntu:16.04

    apt get install privoxy

    service privoxy start

    privoxy 配置文件 /etc/privoxy/config

    前一帖使用该命令

    iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8118

    但是实践有问题,看起来是 http 请求通过$$后并未将请求正确转到 privoxy,所以怀疑命令有问题。

    google 之,得到

    iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8118

    我的理解因为 http 请求在 vps 上是当作本地请求发出的,所以应该在 OUTPUT 处理,因此前一条命令不适用,其应该是使用在路由器上的,原因是 privoxy 在路由器上是前置(相对$$),在 vps 上是后置(相对$$)。

    在成功出现报错信息之后,继续摸索

    Invalid header received from client.

    修复该错误需要将配置文件中

    accept-intercepted-requests 0 修改为 1

    接着报错

    maximum number of open connections reached.

    根据搜索到的信息,做了如下修改,不记得具体哪一项起了作用,:(

    终端下 ulimit -s 8192 配置文件内 max-client-connections 256 改为 4096

    下面戏肉来了

    500 Internal Privoxy Error

    Privoxy encountered an error while processing your request:

    Could not load template file no-such-domain or one of its included components.

    根据 /var/log/privoxy/下的日志记录, privoxy 无法打开 no-such-domain 是因为打开太多文件(此条根据记忆回忆,具体日志 rebuild os 后丢失)

    google 后,有文章猜测是因为 vps 将 privoxy 发出去的请求又转给了 privoxy ,死循环了。

    想到个解决方案,修改 iptables 命令,因为 privoxy 运行用户是 privoxy,$$用的 root ,所以只将 root 用户发出的请求转发到 privoxy 。

    iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner root -j REDIRECT --to-ports 8118

    这样成功打开网页。但是比较麻烦的是, privoxy 内置规则比较多,需要逐一的梳理并调教,另外不支持 https 过滤,所以想换一个省心点的方案,然后补漏由 adblock 完成。


    https://pi-hole.net

    安装很简单,官方首页提供命令

    curl -sSL https://install.pi-hole.net | bash

    之前的版本 web 界面任何人都可以访问,现在新版加了个口令,比较保护隐私。也可以选择不安装 web ,不过建议熟悉配置文件后再这样做。

    下面问题来了, ssh 在 vps 上 ping 或者 dig ,都可以在 pi-hole 中看到 dns 请求记录( pi-hole 貌似将 dns 指向了本地),而 Firefox 使用 SOCKS v5 代理 DNS 后,能够得到正确的解析,但是 pi-hole 中看不到请求记录,可能哪里有问题?

    4 条回复    2017-03-23 09:32:27 +08:00
    la0wei
        1
    la0wei  
    OP
       2017-03-22 22:53:04 +08:00
    @livid 能移动到 qna 下吗
    Livid
        2
    Livid  
    MOD
       2017-03-23 06:08:28 +08:00
    @la0wei 已经为你移动。

    在发布完成之后的 300 秒内是可以自己移动的。
    la0wei
        3
    la0wei  
    OP
       2017-03-23 08:50:10 +08:00
    @Livid 谢谢。印象中我发布的时候是 qna 分类下,发布后没有回复我才发现是 vps 分类。我尝试新发布主题,默认并没有 vps 分类,点击发布后,后台会根据标题修改分类?
    Livid
        4
    Livid  
    MOD
       2017-03-23 09:32:27 +08:00
    @la0wei “点击发布后,后台会根据标题修改分类” -> Yes
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5043 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:37 · PVG 17:37 · LAX 02:37 · JFK 05:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.