V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yugiwu
V2EX  ›  宽带症候群

clash 网关模式能自动代理局域网内所有流量?

  •  
  •   yugiwu · 2021-04-07 11:30:16 +08:00 · 40559 次点击
    这是一个创建于 1324 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 clash for win 设置网关模式后,依旧要去每个客户端设置代理,有没有什么方法可以让局域网内所有的流量都走 clash 这个虚拟网关呢?

    难道用 openwrt 的 openclasn 会有这种功能? 就是感觉试起来要花点时间,有没有玩过的朋友分享一下经验呢?

    第 1 条附言  ·  2021-04-08 09:27:33 +08:00
    把 clash for win 作为网关设置到主路由的网关里的方式,尝试了几次都失败了,这条路应该走不通。
    现在看来,在 20210408 时点最新版本的 clash for win 应该只能做到局域网网关代理,也就是说开启该功能,还是需要到各个 client 去设置代理,才能通过 clash for win 上网。
    38 条回复    2023-10-01 15:22:57 +08:00
    yadiman
        1
    yadiman  
       2021-04-07 11:52:38 +08:00 via iPhone
    貌似 openwrt 那个是直接接管所有流量的。所以 cpu 会冒烟,毕竟白名单,黑名单的数据都要处理。效率感人。
    gaopu
        2
    gaopu  
       2021-04-07 11:55:02 +08:00
    路由器里面设置默认网关,改成 clash 所在机器的 IP
    yeqizhang
        3
    yeqizhang  
       2021-04-07 11:55:23 +08:00
    这几天我也在研究 clash,好像是叫透明代理吧... 用 alow LAN 是要一个一个配的
    jakes
        4
    jakes  
       2021-04-07 11:58:42 +08:00 via iPhone   ❤️ 2
    Openclash 是用 iptables 转发了流量的,实质上也是转发给了 clash 。如果会配置 iptables,你也可以转发到本地去。
    0ZXYDDu796nVCFxq
        5
    0ZXYDDu796nVCFxq  
       2021-04-07 12:02:55 +08:00
    有两种方式:
    1. 在 DHCPd 里设置,分配 IP 和网关,把网关指向 win 机器
    2. 同样是 DHCPd,通过 WPAD 协议,同时分配代理服务器,使用 win 做代理
    这种需要 win 机器 24 小时开机,如果可以尽量在 openwrt 上完成所有功能吧

    我通常是 PC 和手机全都安装客户端,不需要网关支持
    一些设备不方便安装客户端比如 Google Home 、电视盒子,自动走网关的透明代理就可以了
    yugiwu
        6
    yugiwu  
    OP
       2021-04-07 12:34:55 +08:00
    @gaopu 在主路由的 DHCP 那里设置网关对吧,试过,结果是局域网整个断网,感觉是不是这个设置造成流量在两个网关间循环了呢。
    yugiwu
        7
    yugiwu  
    OP
       2021-04-07 12:37:23 +08:00
    @yeqizhang 透明代理,另一个设置? clash 里只看到 allow LAN 倒是没看到其他的。难道是写到配置里去的?
    yugiwu
        8
    yugiwu  
    OP
       2021-04-07 12:39:02 +08:00
    @jakes 谢谢,不会可以学可以试的,思路要有走的对就行~~
    breezeFP
        9
    breezeFP  
       2021-04-07 12:43:02 +08:00
    用 Proxifier
    n1dragon
        10
    n1dragon  
       2021-04-07 12:43:12 +08:00
    clash 在 openwrt 上可以使用透明代理,局域网其他设备不需要任何设置,openwrt 的防火墙规则可以将所有流量重定向到 clash,再发出去。
    lostberryzz
        11
    lostberryzz  
       2021-04-07 12:46:16 +08:00
    DHCP 里网关改成 CFW 机器的 IP
    yugiwu
        12
    yugiwu  
    OP
       2021-04-07 12:47:47 +08:00
    @gstqc
    1 这里你说的是设置主路由吧。分配 ip 是说给 win 固定 ip 对吧,然后把再把网关指向 win 。这个我试下来不行,也许我哪里错了。
    2 能说的更具体?主路由要设置啥,或者其他要设置啥,不是太明白你的意思。

    客户端是比较灵活,但是只是应用层面的流量进行管理,即便全局代理,有些 UWP 层面,或者底层流量还是无法翻墙。
    其实也没特别需求,只是想把这块再搞清些。
    yugiwu
        13
    yugiwu  
    OP
       2021-04-07 12:49:13 +08:00
    @n1dragon
    openclash 是看到有这个功能,但是在 clash for win 上好像没有。
    是不是 clash for win 上确实就没呢?真的这样的话,就老老实实去装 openwrt 了。
    yugiwu
        14
    yugiwu  
    OP
       2021-04-07 12:50:27 +08:00
    @breezeFP
    这个容我之后再学习一下了
    yugiwu
        15
    yugiwu  
    OP
       2021-04-07 12:51:05 +08:00
    @lostberryzz
    这个我试下来,整个局域网断网了
    还需要设置其他什么?
    gaopu
        16
    gaopu  
       2021-04-07 13:19:07 +08:00
    @yugiwu
    你看看这个吧。
    我现在是旁路由方式
    lisr
        17
    lisr  
       2021-04-07 13:32:21 +08:00   ❤️ 1
    目前尝试过 win 上的 clash 和 qv2ray,均未成功通过单纯的软件实现透明网关功能,目前看到的解决办法如下:
    1. 使用 hyper-v 安装 openwrt
    2. mac 使用 surge
    3. 路由器上直接用 luci-app-v2ray 和 v2ray-core
    princelai
        18
    princelai  
       2021-04-07 14:24:03 +08:00
    @lisr #17 目前尝试过 linux 上的 qv2ray 和 openwrt 上的 openclash,均成功实现透明代理
    1.linux 下 qv2ray 要配合 cgproxy 使用
    2.openwrt 下默认透明代理,但最好选上劫持本地 DNS
    3.win 下不了解
    yugiwu
        19
    yugiwu  
    OP
       2021-04-07 14:35:07 +08:00
    @gaopu
    谢谢啦~~
    breezeFP
        20
    breezeFP  
       2021-04-07 15:25:04 +08:00
    @yugiwu 不需要学习,配置简单,看看就会了
    94felipe
        21
    94felipe  
       2021-04-07 15:27:33 +08:00 via Android
    试试在路由器的 DHCP 里设置网关指向 clash,然后手动设置 clash 宿主机的网关指向主路由
    SenLief
        22
    SenLief  
       2021-04-08 07:53:58 +08:00 via Android
    你这意思应该是旁路由模式吧。旁路由是主路由的网关指向旁路由,然后由旁路由来处理流量。坏处也很明显就是主路由无法分流,一旦旁路由故障会影响所有的设备连不上网。
    clash 的代理允许局域网链接后应该可以代理吧。
    yugiwu
        23
    yugiwu  
    OP
       2021-04-08 09:25:13 +08:00
    @SenLief
    其实我是在油管上看到别人说 clash 可以代理网关(可能我会错意了),起到类似旁路由的作用,所以装了 clash 试试,但试下来结果是只能代理,结果还是要一个 client 一个 client 去设置。
    旁路由如你所说,有利弊,我自己也犹犹豫豫一直没搞。
    SenLief
        24
    SenLief  
       2021-04-08 09:48:01 +08:00
    @yugiwu clash 做代理网关可以,前提是你必须要要让代理机能给其他机器下发 ip 啊,旁路由模式就是用旁路由机器来强制 dhcp 分配 ip 的,这样网关才能使代理机。
    tankren
        25
    tankren  
       2021-04-08 10:46:37 +08:00
    @gstqc #5 wpad 只能代理网页吧
    shikkoku
        26
    shikkoku  
       2021-04-08 12:40:38 +08:00
    CFW 从未说过能作为网关代理局域网全部流量吧。
    tia
        27
    tia  
       2021-04-08 13:16:30 +08:00
    你的自动代理差不多指的是透明代理这个意思,透明代理的话需要在网关上布设 clash,然后局域网下的所有客户端因为网关获取的是 clash 机,所以做到了“自动代理”。
    nameuser
        28
    nameuser  
       2021-04-08 14:21:00 +08:00   ❤️ 1
    最近也在弄这个,clash 设置成功。
    最后在虚拟机里面装了一个 openwrt,用作路由器的网关。
    nameuser
        29
    nameuser  
       2021-04-08 14:21:31 +08:00
    @nameuser 说错。

    最近也在弄这个,clash 没设置成功。
    最后在虚拟机里面装了一个 openwrt,用作路由器的网关。
    imldy
        30
    imldy  
       2021-04-08 17:20:28 +08:00   ❤️ 1
    如果让运行“clash”的设备 A 作为网关来实现透明代理,需要修改设备 A 的防火墙进行流量转发(例如 Linux 下的 iptables,将作为网关接收到的流量转发到 clash ),感觉对设备 A 的系统的影响还是比较大的。不如开 Linux 虚拟机进行相关设置,把虚拟机当作网关。
    Linux 虚拟机可以按照这些教程进行设置 aHR0cHM6Ly94dGxzLmdpdGh1Yi5pby9kb2N1bWVudHMvbGV2ZWwtMi8=,也可以直接虚拟机安装 openwrt 。

    但是旁路由网关模式对 IPv6 不太友好,因为(下面都是原因):
    简单说:一般路由器对 IPv6 支持太差。
    详细说:IPv6 的网关很难被修改(无论是在主路由器上修改下发的网关 IP,还是在各个设备上修改 IPv6 网关),如果改不了 IPv6 的网关,那软件走 IPv6 的时候还是无法被代理,经常遇到有的软件无法走梯子……只能多次重试让软件走 IPv4 。
    彻底解决办法就是关闭 IPv6,或者不让 DNS 服务器返回 IPv6 地址……
    前者(关闭 IPv6):一个无法修改 IPv6 网关的设备,那一般也就不能关闭 IPv6(举例:安卓。iPhone 没用过),只能关闭整 个局域网的 IPv6,放弃 IPv6 。
    后者(不让 DNS 服务器返回 IPv6 地址):那就得修改 DNS 地址。修改主路由器下发的,或者修改各个设备上的,如果主路由器下发的 DNS 地址是主路由自己,那还得修改主路由的 DNS 解析方案,有的路由器用的还是 dnsmasq(这个软件貌似没办法不返回 IPv6 地址)。一样很难。最后只能放弃 IPv6……

    省心就用普通的 http 或者 socks 接管流量,或者上软路由。
    imldy
        31
    imldy  
       2021-04-08 17:24:28 +08:00
    甚至说梯子软件对 IPv6 的支持都不太好,再加上鸡场的服务器都很少有 IPv6 。所以用了梯子软件,就基本相当于放弃 IPv6 了。
    liioiil
        32
    liioiil  
       2021-05-16 10:27:34 +08:00
    @yugiwu 你解决了吗
    AndyAO
        33
    AndyAO  
       2021-12-05 08:26:09 +08:00
    倒是还有个比较复杂的方法,就是同时开启 CFW 和 OpenWrt 两个虚拟机,把 OpenWrt 的代理转接到 CFW 上面,然后用 OpenWrt 当做网关,由于都是在机器内部进行通信,效率应该不会太低。

    这样就是整个网络的结构会稍微复杂点,别的倒是没什么坏处,之后如果想弄更稳定的科学上网的话,这是个纯软件的实现策略。
    tony1016
        34
    tony1016  
       2022-07-30 09:15:38 +08:00
    masqerade 或者 iptables redir ,总要做一个才能实现啊
    jayliucn
        35
    jayliucn  
       2022-10-06 01:57:39 +08:00
    @gstqc 用 Clash 设备来做网关模式下其他设备流量是走全局代理还是规则判定呀,担心如果是全局代理机场流量不够用...
    0ZXYDDu796nVCFxq
        36
    0ZXYDDu796nVCFxq  
       2022-10-06 12:14:55 +08:00   ❤️ 1
    @jayliucn clash 可以设置全局走或者按规则走
    但这样对性能影响挺明显的

    最佳的方式是在网关用 ipset+透明代理
    ipset 根据域名把域名的 IP 打上标签,然后这些 IP 段走透明代理出去
    这样不需要翻墙的域名和 IP 段,完全不需要额外处理,不影响性能
    standin000
        37
    standin000  
       2022-12-07 21:07:14 +08:00
    尝试 Clash for Windows 的 TAP 模式,可以让所有流量都走代理
    MeteorVIP
        38
    MeteorVIP  
       2023-10-01 15:22:57 +08:00
    win 可以做透明网关.
    1 安装 sstap
    2 随便一个代理软件,比如 clash for win
    3 在 clash for win 设置 socks5,在 sstap 里添加这个 socks5
    4 执行语句 netsh interface ipv4 set interface XXX forwarding=enabled 其中 XXX 是根据你电脑网卡设置.我的是 4
    其中 2 和 3 是为了让 sstap 能代理,所以省略 2 和 3 步骤,直接给 sstap 添加 ssr 代理也是可以的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3376 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.