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

如何把 Windows 双网卡设备当作交换机,以实现流量过滤处理?

  •  
  •   ilolita · 2019-12-09 03:02:44 +08:00 · 5836 次点击
    这是一个创建于 1811 天前的主题,其中的信息可能已经有所发展或是发生改变。

    点击查看网络拓扑图


    如上图,以上是要实施的网络拓扑图,想请教下大佬们,求个指导。 当然,问问题之前我先回答一些问题,以免歪楼,譬如劝楼主另选方案之类的,吐槽楼主要求高什么的😂咱们只讨论如何实施?


    为什么我要用独立的双网卡设备来做广告过滤?

    1. DNS 过滤方案效果最差,简单粗暴,高级语法不支持,比如文本替换语法、重定向语法、元素隐藏语法、正则表达式。
    2. 浏览器扩展过滤方案无法支持移动设备,即便支持也不支持手机自带浏览器,再者高级语法不支持,比如文本替换语法、重定向语法。
    3. 国内路由器上的广告过滤插件基本死完,活着的也不会活太久,毕竟国情在这里,随时可能吃官司,存在猝死的可能性,为长久计放弃。
    4. 桌面版的广告过滤软件有国外比较成熟的方案,有很强的可持续性,不用担心被国内的广告主提起诉讼,适合长久使用,比如我现在方案里提到的 Adguard 桌面版,语法支持完善,即便有过滤不掉的规则,自己写就行了。
    5. 为了照顾 iOS 设备,毕竟 iOS 设备过滤广告的语法支持受限于 iOS 自身,只能做简单的元素隐藏和域名拦截,高级语法不支持,比如文本替换语法、重定向语法、正则表达式,需要借助其他方案来实现。
    6. 不满足于简单的 DNS 过滤和元素隐藏,需要高级语法支持。
    7. 有多余的空闲双网卡设备闲置,正好可以利用,独立设备即便出了问题也不至于导致全网断网,放弃虚拟化方案,不考虑电费问题。
    8. http 代理过滤的方式不能过滤 https 广告,iOS 又没有原生 Socket5 代理设置入口,且这种方案多有不便,每台客户端设备都要设置一遍,放弃。
    9. 不仅要能给网页过滤广告,还要能给各个平台的软件过滤广告。

    这是我要实现的网络效果

    1. Adguard Server 服务器采用 Windows 10 系统,安装 Adguard 广告过滤软件,使用双网口一进一出方案将 Adguard Server 服务器安装在光猫和路由器之间,也就是安装在路由器前端,所有流量都需要经过 Adguard 的处理。
    2. 无论 Adguard Server 服务器安装在哪种网络内,只要安装在路由器的前端,都能在不修改路由器和客户端设备配置的情况下给下面的全部设备过滤广告,做到即插即用,类似于流量转发方式,不同的是流量全部要经过 Adguard 软件的过滤处理。
    3. 即便有新设备加入也无需配置即可使用 Adguard Server 服务器提供的广告过滤服务。
    4. Adguard Server 服务器要支持随时拆装,以便应对将来的网络架构的变化,拆装 Adguard Server 服务器的时候无需更改路由器及其余客户端设备的配置,做到即插即用。
    5. 网关是路由器。

    所以问题来了,如何设置 Windows 10 来实现这种双网卡一进一出过滤广告的方案?

    第 1 条附言  ·  2019-12-09 09:33:52 +08:00
    妥协:可以接受所有客户端设备安装证书🤣🤣🤣
    17 条回复    2019-12-09 18:31:01 +08:00
    Buges
        1
    Buges  
       2019-12-09 05:34:22 +08:00 via Android
    你说的是 adguard home 还是它的桌面版?
    桌面版好像是监控篡改网卡流量,把一进一出的两张网卡桥接应该就可以。
    adguard home 也就是个一键版的 DNS 过滤啊,用桌面版解密 HTTPS 的话得加证书,也没法即插即用。

    而且不建议放路由后面吧,你路由不挂透明代理吗?应该在流量包装之前进行处理。
    ilolita
        2
    ilolita  
    OP
       2019-12-09 07:33:22 +08:00 via iPhone
    @Buges 老哥,你整篇文章和图全看错了吧。🤣🤣🤣你仔细看完这个文章和图就不会这么回复了。
    ColinZeb
        3
    ColinZeb  
       2019-12-09 08:20:29 +08:00 via iPhone
    @ilolita 哪里错了你不会指出来吗,我看完之后觉得他说的非常对,别人这么认真的回复,你就让指责别人不认真审题,请再看一遍吗?
    ilolita
        4
    ilolita  
    OP
       2019-12-09 08:56:47 +08:00 via iPhone
    @ColinZeb 行吧,那我就指出来吧。

    > 1. DNS 过滤方案效果最差,简单粗暴,高级语法不支持,比如文本替换语法、重定向语法、元素隐藏语法、正则表达式。
    >
    > 4. 桌面版的广告过滤软件有国外比较成熟的方案,有很强的可持续性,不用担心被国内的广告主提起诉讼,适合长久使用,比如我现在方案里提到的 Adguard 桌面版,语法支持完善,即便有过滤不掉的规则,自己写就行了。
    >
    我说的是桌面版,不是 Adguard Home,而且我也说了 DNS 过滤效果很差,不可能去使用 Adguard Home 的方案。


    另外,我的网络拓扑图里,Adguard Server 并没有放在路由器后面。
    7654
        5
    7654  
       2019-12-09 09:08:20 +08:00
    我的是 DNS+浏览器插件
    DNS 主要过滤大数据收集和一小部分广告域名
    浏览器上有插件
    广告基本上百发百中了
    ilolita
        6
    ilolita  
    OP
       2019-12-09 09:09:43 +08:00 via iPhone
    @7654 我的要求比较高🤣
    MonoLogueChi
        7
    MonoLogueChi  
       2019-12-09 09:28:25 +08:00 via Android
    问一下,不使用 DNS 过滤,还要过滤 https 流量,而且要新加入设备直接使用,这是怎么实现的?这是典型的中间人,要过滤 https 流量就要信任证书啊。
    我以前用 adguard home 搭过一个 DNS 服务器,只要在路由器上设置好,新加入设备就会使用我自己搭建的 DNS 服务器,用的 DNS 过滤。
    ilolita
        8
    ilolita  
    OP
       2019-12-09 09:29:02 +08:00 via iPhone
    @MonoLogueChi 如果一定要添加证书的话可以接受
    MonoLogueChi
        9
    MonoLogueChi  
       2019-12-09 09:52:11 +08:00 via Android
    @ilolita Windows 当交换机不知道怎么搞,但是知道怎么设置成路由器,在网络连接面板上,右键你连接外网的网卡,然后在属性里共享给你连接内网的网卡。你这种结构我也不知道要在哪里拨号,但是肯定会多一层 NAT。
    关于证书的问题,真的很蛋疼,Windows 设备还稍微好一点,安卓设备贼难搞,Mac 和 iOS 没试过。关于 https 过滤你可以参考一下 koolproxy,这个软件需要接入设备做什么,其他软件也就需要接入设备做什么。
    xenme
        10
    xenme  
       2019-12-09 09:53:45 +08:00 via iPhone
    koolproxy 自带的规则加上自定义规则目前还能用。

    等不能用了再说
    ilolita
        11
    ilolita  
    OP
       2019-12-09 09:54:36 +08:00 via iPhone
    @xenme 我目前也是用的这个
    exip
        12
    exip  
       2019-12-09 14:01:10 +08:00 via Android
    建议把 server 改成 openwrt 软路由替换掉下级路由,需要的功能几乎都有现成的软件包,装上就能用.
    ysc3839
        13
    ysc3839  
       2019-12-09 15:27:59 +08:00 via Android
    个人不建议使用 Windows,没记错的话只有 Windows Server 有路由转发的功能,Windows 10 还有自动更新重启的问题。
    推荐 Linux,发行版推荐 OpenWrt,相比别的发行版不需要复杂的配置就有路由转发的功能。
    Buges
        14
    Buges  
       2019-12-09 15:58:06 +08:00 via Android
    @ilolita 我开始没明白你说的 adguard server 指的是啥,
    如果是桌面版,通过监控篡改网卡流量的方式(我已经回答了用桥接啊)那需要加证书
    而 adguard 官方建议当服务端用的 adguard home 就是你说的“效果差的 DNS 方案”

    “前面”和“后面”你我理解的意思好像反了,我说的是(如果你路由有运行某个 VPN 服务),前面就是在流量经过网关被封装之前,你图里放到外侧连光猫显然只能处理被封装过的流量。

    还有就是真的不建议加证书,Android 设备,iot 设备几乎完全没办法,想象一下有客人来连了你的 WiFi。。
    ilolita
        15
    ilolita  
    OP
       2019-12-09 18:27:59 +08:00 via iPhone
    @ysc3839 能运行桌面版 adguard 的,只有 Windows 了,所以不考虑其他方案了。
    ilolita
        16
    ilolita  
    OP
       2019-12-09 18:28:48 +08:00 via iPhone
    @exip 不考虑这种方案了
    ilolita
        17
    ilolita  
    OP
       2019-12-09 18:31:01 +08:00 via iPhone
    @Buges 我愿意接受添加证书是因为家里的设备全是 iOS 设备,所以这种方案我可以接受,安卓设备就不考虑过滤广告了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1034 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:09 · PVG 07:09 · LAX 15:09 · JFK 18:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.