V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
caneman
V2EX  ›  路由器

家庭网络环境部署方案 收集&请教

  •  1
     
  •   caneman · 295 天前 · 2065 次点击
    这是一个创建于 295 天前的主题,其中的信息可能已经有所发展或是发生改变。
    • 我的需求

      1. 全屋科学上网环境
      2. 4K 奈飞、油管
      3. 灵活、便捷的规则管理
    • 现有设备

      mbp/ipad/iphone/atv(路上)、台式机(win)、switch 、ps5

    • 现有方案

      华硕 ac88u ,刷了梅林,但是实际使用效果不是很稳。现在只当普通路由使用,接入设备单独安装 clash/shadowrocket 等,缺点是有些设备安不了( ps5 、switch ),而且规则维护起来也很麻烦(每个设备单独维护),优点是稳定(路由器只干路由器的活)、灵活(各个设备规则互相独立不受影响)。

    • 整理的资料

      看了很多 v2 的友子们的帖子,软路由这块的方案&设备选型实在是太多太杂了,作为一个这方面的小白,实在不知道该如何抉择,总结下有以下几种方案(个人理解,如果理解有误,还望指出)

      1. R2S 、N1 盒子当软路由( 50 ~ 200 )

        优点:便宜、功耗低

        缺点:(可能)跑不满千兆

      2. AX6000 & Redmi AX6000 刷 ssh/openwrt ( 300~500 )

        优点:性价比高,省事省力

        缺点:一挂全挂

      3. N5105 、J4125 等中端软路由( 500~700 )

        优点:性能高

        缺点:价格稍贵,定位尴尬,只做软路由性能过剩,刷点其他的性能又不足

      4. 高阶小主机当软路由( 1000--)

        优点:可玩性高,扩展性好,而且不止能跑软路由,跑 docker 挂硬盘打游戏,只要性能够啥都行

        缺点:价格昂贵(个人感觉没必要,专业的活用专业设备比较好,跑脚本什么的可能还行)

      5. 软路由做主路由&旁路由的区别

        • 软路由做主路由

          优点:不是很清楚,省事?然后路由器做 AP 压力更小?

          缺点:一挂全挂

        • 软路由做旁路由

          优点:不会一挂全挂

          缺点:主路由压力大点?配置起来麻烦?

    • 打算实施方案

      J4125&I226-v 当旁路由

    • 我的疑惑

      1. 华硕 ac88u 感觉是不是过时了,有没有必要入手一台 ax6000 做普通路由器?如果有必要的话,小米和 Redmi 该如何抉择?还是说有推荐的其他路由器?

      2. J4125 网上好多厂商都有出,畅网、倍控、幻网,有些听过有些没听过,看了看感觉大差不差,是不是随便选一家就好

      3. I226-v 听说有断流问题,但是又有人说是 I225 的问题,i226 已经解决了。i226 好像还分俩版本-v 和-b ?不知道有什么区别

      4. J4125 买的话,是买商家的那种带硬盘和内存的套餐,还是自己配,自己配的话有什么推荐的吗?牌子&型号&大小

      5. J4125 做软路由&主路由之争,这块了解的确实不够,还请大家补充

      6. 如何在软路由统一管理网络环境的情况下,又保持一定的灵活性,比如下面这种需求

        我的软路由规则里面,比如说设置了 GEOIP,CN,DIRECT ,现在所有设备访问百度都是直连,但是我如果在电脑/手机上 [临时、单独] 需要对百度采用代理连接,我该如何操作?只能改软路由的规则吗?这样的话,所有设备访问百度都是代理,这并不是我想要的。

        (目前没有使用软路由的情况下,我是这样解决这种需求的,在电脑端装 clash ,浏览器装 switchomega ,需要临时代理的网页由 switchomega 转发到 clash 就好,不需要的就不用 switchomega 转发,clash 规则列表里面有一条规则是代理所有来自 chrome 的流量)

    第 1 条附言  ·  295 天前

    方案补充:

    分享:#5 @tediorelee、#8 @superchijinpeng

    Mac mini 挂 Surge

    优点:**[用户友好][用户友好][用户友好]**。适合 Mac全家桶或者有闲置 Mac Mini的用户,,想改什么配置直接上去改就好了。PS: 电玩科技也推荐过这种方案:https://www.youtube.com/watch?v=f9ohvZyQrmY

    缺点:价格贵,本质上来讲,还是软路由只不过换成了mac系统。功耗不大,但比传统软路由要高些。

    补充一句:所有的优缺点,都是结合分享者和我自己收集一些资料后的个人主观感受,如果你有不同意见,可以补充。以上观点仅供参考,实际效果请结合个人情况具体分析。

    第 2 条附言  ·  285 天前

    最终题主采用的方案:

    硬件:J4125

    方案:esxi + openwrt 做主路由负责拨号,硬路由(Xiao Mi AX6000)当 AP

    心路历程:

    采用esxi虚拟化的方案是因为,方便管理openwrt,重装/更换固件都很方便,系统折腾炸了不怕。

    网上大多数教程都是 esxi + ikuai + opewrt,ikuai做主路由负责拨号,openwrt做旁路由,ikuai网关设置为openwrt,负责科学上网。很多教程没说原因,我查了下,ikuai的优势是多拨、控流,然后比openwrt可能更稳定一些?

    但是ikuai的优势我基本用不到,openwrt也有多拨功能(具体效果咋样不知道),后来的朋友可以多查查相关资料,看看自己是否确实用得到这些ikuai优势的地方,否则我是感觉没必要。网上教程90%都是采用这个方案,然后也都不告诉你为什么。

    杂七杂八,仅供参考

    1. 选择 esxi 版本的时候要看看是否支持自己的网卡,我的网卡是i226-v,采用的是 esxi 8.0,是支持的。

      要是采用老版本不支持你的网卡,两种解决办法:1. 找别人魔改的带你网卡驱动的老版本,2. 自己注入自己网阿克的驱动到老版本。

    2. openwrt的固件网上版本很多,找自己喜欢的就好,有的精简,有的大而全。我用的是 gdp(高大全)的最新版本(恩山论坛有)

    3. 采用的 fake-ip方案,然后 禁用了 ipv6的相关功能。遇到的问题:游戏进不去。应该是UDP或者DNS相关的配置问题,已经开了UDP转发(游戏还是进不去)。关于这个问题,网上有很多讨论,附几个相关的讨论帖:

    https://github.com/vernesong/OpenClash/issues/107

    https://www.right.com.cn/forum/thread-3767954-1-1.html

    我最后是在 openwrt 的设置里开起了: [实验性:绕过中国大陆IP] 这个方案解决的问题。

    但是这肯定不是一个好的选择,因为开启后,中国大陆流量将不再经过clash内核,对于一些想代理上的大陆网站,这种方案无法实现。而且这个大陆流量的的判定似乎是基于DNS服务器和GEOIP,这两个本身可能会造成一部分流量误判(个人感觉),但是目前也不知道有啥好的办法,网上的答案千奇百怪,试了一些并不好使。

    有知道这个问题怎么解决的v友们还请补充,验证成功后我也会贴在上面。有说错的地方也请v友们斧正,再次感谢。

    第 3 条附言  ·  285 天前
    其他一些补充,有些地方我也搞得不是很清楚,反正现在是这么操作的。

    J4125 4 个网口,eth0~eth3, eth3 是我的 esxi 的管理口,其他 eth0 ~ eth2 开启直通,然后挂载到 openwrt 上面。

    openwrt 设置 eth0 作为 wan 口,接入光猫负责拨号。eth1 ,eth2, eth3 做为 lan 口,其中 eth1 连接 AP 。
    (有 v 友能告诉我为什么 openwrt 能把 eth3 作为 lan 口吗? 是因为虚拟机里面配置 openwrt 的时候的网络适配器 VM Network 的原因吗)

    本来是把台式机电脑网线插在 ap 上的,但是这样有个问题,op 炸了,会导致 台式机访问不到 esxi 后台,无法重装 op ,最后还是把台式机网线插在了 eth3 上,这样 op 炸了 台式机还能进去重装修改。


    最后的效果:

    全屋科学的需求达到了。设备接入网络就好,无需做任何配置和修改。

    油管秒开,4k 没压力,apple tv 奈飞也没问题,拖动进度条很丝滑,基本没有卡顿,就是机场流量跑的有点快。

    以上算是我的折腾过程把,希望对一些完全没有经验的朋友有些许帮助,大佬们可能就见笑了。
    28 条回复    2024-03-16 18:06:32 +08:00
    aicfe
        1
    aicfe  
       295 天前
    收藏下 看看各位大佬怎么搞的 后续要装修可能用得到
    iweus
        2
    iweus  
       295 天前
    跟你情况差不多,以前用 ac86u 刷梅林,后来折腾 r2s ,最近搞了个 n100 搞 aio ,ac86u 当 ap ,稳定运行两个月
    hahasong
        3
    hahasong  
       295 天前
    @iweus #2 你的 ac86U 有 2.4G 断网的情况吗,高负载或者设备多了突然掉线再也无法连接
    iweus
        4
    iweus  
       295 天前
    @hahasong 没有遇到过,正常使用都没问题
    tediorelee
        5
    tediorelee  
       295 天前
    这么多苹果设备,直接搞个 mini 跑 surge🐶
    just4id
        6
    just4id  
       295 天前 via iPhone
    一句话解决方案: 梅林装科学上网插件全局翻,完事儿
    shanelau
        7
    shanelau  
       295 天前
    我现在的方案:J4125 旁路由。
    需要翻的设备才把网关配置到旁路由,比如 ATV
    对整体网络影响最小。 软路由相当稳定,放一年不用重启,还可以多线多拨。功耗也低
    superchijinpeng
        8
    superchijinpeng  
       295 天前
    1. Mac Surge ,需付费
    2. 台式机装 PVE ,PVE 中装旁路
    neroxps
        9
    neroxps  
       295 天前
    有钱真好, 买 surge 够我玩好多东西了。
    yukinomiu
        10
    yukinomiu  
       295 天前
    1. 主路由和交换机作为基础设施, 使用"硬路由", "硬交换", 比如提到的华硕, 或者想折腾可以用 mikrotik 家的设备;
    2. 科学这类上层应用, 不要和路由混为一谈. 我的方案是在内网部署一个透明代理网关, 网关同时暴露 HTTP 和 SOCKS 代理协议. 对于支持配置代理的场景, 直接手动配置代理协议和地址; 不支持配置代理的, 则使用透明代理.
    3. 分流的话, 如果追求性能, 可以考虑 DNS 分流, fake ip 之类的方案(比较折腾); 如果不那么介意分流, 直接使用代理自带的分流(相对简单); 我的方案是, 不需要分流, 通过划分 VLAN 的方式, 主网直连, 非主网科学, 对于无线设备, 切换 WIFI 就可以切换是否科学了.
    yukinomiu
        11
    yukinomiu  
       295 天前
    @yukinomiu 如果想采用类似方案, 可以一起来折腾交流, 神兽:NzgxNzIxOTY2
    greatbody
        12
    greatbody  
       295 天前
    ikuai 拨号,DHCP
    openwrt 旁路由,翻墙

    ikuai 将 mac 绑定到 IP 和网关。需要翻墙的设备绑定 openwrt 的 ip 作为网关。其它设备默认绑定 ikuai 作为网关。
    tyhunter
        13
    tyhunter  
       295 天前
    如果确定就一个梯子的需求,把主路由从华硕 ac88u 直接换成 红米 AX6000 ,解锁 SSH 直接装 shellclash 或者 openwrt 装 openclash ,直接搞定,不用花里花哨的
    ys0290
        14
    ys0290  
       295 天前 via iPhone
    问如何在把网搞崩的时候避免被家人温和问候
    tyhunter
        15
    tyhunter  
       295 天前
    @tyhunter 看到你提到这人了,缺点:一挂全挂? 目前我用了大半年还真没遇到 AX6000 挂掉的问题,即使现在北方 40 度的天(室内不开空调也有个 32 度)。就算不加额外散热,无线也能稳定,也没死机过;
    当然,见仁见智,旁路由还是太麻烦了,我是直接接管 DHCP 下方给全设备扶墙用的
    billytom
        16
    billytom  
       295 天前
    兄啊,一听你,就不应该自己搞软路由,而是应该用硬路由刷梅林的方案。听哥一句劝,上马 话说 AX86U ( pro )或者一步到位 GT-AX6000 ,刷梅林固件,然后装 merlin clash ,AX86u 能跑 650mbps ,pro 版和 6000 能跑 850mbps ,你先考虑下你的机场有没有给你这么快再说
    Blank10030
        17
    Blank10030  
       295 天前
    用软路由以后不用担心性能不足,全家科学上网主路由可以刷 openwrt(推荐用 immortalwrt),然后安装 ShadowSocksR Plus+,运行模式选绕过中国大陆。
    zhywang
        18
    zhywang  
       291 天前
    @yukinomiu 你的方案很好,还可以再优化一点:
    1. 内网部署透明代理网关
    2. 划分 vlan ,比如代理网关和不需要科学的其他设备都划到 vlan1000 , 需要科学的都划到 vlan2000
    3. mikrotik 或者 ubnt 硬路由上直接加个策略路由 pbr ,来自 vlan2000 的流量用 geoip 分以下,需要科学的都分到代理网关,反之直接出去
    这样即使代理网关挂了,不影响日常玩游戏、看视频、聊天等使用
    yukinomiu
        19
    yukinomiu  
       290 天前
    @zhywang 考虑过这样的方案, 但是有几个问题不好解决, 所以放弃了.
    1. 维护麻烦, 成本大. 用 GEOIP 的话, 需要去导出 maxmind 的库, 要时常更新, 虽然能用 github 自动化, 但是 mikrotik 这边还是找不到好的自动化方案, 很麻烦;
    2. 域名无法分流. 如果只是基于 IP 分流, 那么对于使用域名访问的情况就无能为力了, 如果使用国内 DNS, 拿到一个被污染的 IP, 那么不论是否命中 GEOIP 规则都大概率有问题; 如果使用无污染的国外的 DNS, 那么国内资源 CDN 优化这块就要牺牲了. 还有个方案, 使用双 DNS, 一个国内, 一个无污染国外, 如果国内 DNS 返回国内 IP 那么使用这个国内 IP, 否则使用国外 DNS 返回的 IP, 这个方案比较完美, 但是这种要写程序了, 只靠路由器 PBR 或者脚本, 我觉得做不到.

    目前通过手动切 WIFI(或者子网)来间接切换网关的模式, 还能接受, 分流太麻烦了, 想过很多, 没有遇到合适的.
    caneman
        20
    caneman  
    OP
       290 天前
    @yukinomiu #19

    你们这个方案,查了很多资料还是有一些搞得不是很清楚的地方,不知道该怎么附言里面贴。

    是不是类似于 Mac mini 挂 Surge 的方案?(只不过扩展到了 Win 或者 Linux ,软件也不再是 Surge ,有了更多的选择,能实现目的就好)

    下面是我的理解,还请斧正!

    就是硬件层面,路由之类的设备不做任何代理,有一台专门的主机/设备做代理。

    1. 如果设备具有科学上网客户端,比如平板、电脑,就用对应的客户端,走 socks 协议,ip 地址写这台设备的内网地址
    2. 如果设备没有科学上网客户端,比如 PS5 、Switch ,在连接网络的时候网关写这台设备的内网地址

    具体这台设备用什么代理软件,上面并没有找到答案。( Clash ?)

    我大概就理解到这里

    > 分流的话, 如果追求性能, 可以考虑 DNS 分流, fake ip 之类的方案(比较折腾); 如果不那么介意分流, 直接使用代理自带的分流(相对简单); 我的方案是, 不需要分流, 通过划分 VLAN 的方式, 主网直连, 非主网科学, 对于无线设备, 切换 WIFI 就可以切换是否科学了.

    > 使用双 DNS, 一个国内, 一个无污染国外, 如果国内 DNS 返回国内 IP 那么使用这个国内 IP, 否则使用国外 DNS 返回的 IP, 这个方案比较完美, 但是这种要写程序了, 只靠路由器 PBR 或者脚本, 我觉得做不到.

    这两条以我目前的学识,还不能完全理解和消化,等我搞明白了就贴在上面。要是你能不吝指教或者给个查阅的方向那就太好了。
    yukinomiu
        21
    yukinomiu  
       290 天前
    @caneman
    给你举个形象的例子吧. 在国内的 A 要给在国外的 B 邮寄包裹:

    - 直接连接: 包裹上, 发件人是 A, 收件人是 B, 包裹直接投递给邮局; 但是邮局会把你的包裹给扔掉;

    - 使用代理协议连接: 国内 A 有个国外的朋友 C, C 有个特殊渠道, 邮寄给 C 的包裹, 不会被国内邮局扔掉. 于是, A 把包裹的收件人改为 C, 发件人还是 A, 保持不变. 然后, A 在包裹里塞了张纸条, 上面写着这个包裹真正的收件人是 B, 再把包裹投递给国内邮局. 国内邮局收到了包裹, 按收件人地址, 把包裹交给了国外的 C. C 收到了包裹之后, 打开包裹, 看到纸条, 然后把包裹收件人涂改为 B, 重新发给国外的邮局, 最终 B 收到了包裹;

    - 透明代理: 包裹上, 发件人是 A, 收件人是 B, 包裹直接投递给邮局. 但是在投递过程中, 被 D 截胡了. D 一看这个包裹收件人是 B, 直接给国内邮局肯定会被丢掉, 于是 D 擅自把收件人改为了 C, 里面塞了一张纸条, 写着真正的收件人是 B, 国内邮局收到了包裹, 按收件人地址, 把包裹交给了国外的 C. C 收到了包裹之后, 打开包裹, 看到纸条, 然后把包裹收件人涂改为 B, 重新发给国外的邮局, 最终 B 收到了包裹;

    A: 需要被代理的应用
    B: 目的地址, 被屏蔽的地址
    C: 代理远端(国外端)
    D: 透明代理

    代理需要解决的一个问题是, 如何得知真正的目的地址.
    - 使用代理协议, 你的应用(需要被代理的软件程序, 或者硬件设备)需要先通过代理协议, 和代理建立通讯, 应用会在代理协议握手阶段, 告诉代理自己的真实意图(目的地址)是什么, 这样代理后续才能正确的把数据送到正确的地方. 此时, 应用是知道代理的存在的, 毕竟自己是和代理通讯, 而不是和目的方通讯. 代理协议常见的有 SOCKS 协议(版本 5, 版本 4, 版本 4a)和 HTTP(HTTPS)协议;

    - 使用透明代理, 那么应用还是和往常一样, 直接发送数据. 但是这个数据会被透明代理劫持. 被劫持的应用, 根本感知不到自己的数据被劫持了, 站在应用的角度, 代理貌似不存在一样, 因为应用自己认为自己是直接和目的方通讯的, 这就是"透明"的由来.

    普通代理, 需要你的应用支持代理协议, 然后你得去配置, 比如设置操作系统的代理, 设置任天堂 Switch 游戏机使用 HTTP 代理等等. 对于不支持的配置代理的应用或者设备, 就无能为力了, 同时每个支持的设备都去配置, 也很繁琐, 这就是普通代理的弊端.

    透明代理, 不需要应用去配置, 直接使用即可, 简单方便. 但是代价是, 透明代理部署起来比较复杂, 要配合 linux 操作系统的 tproxy 或者 redirect 才能做到, 再加上 linux 的路由表配置和 iptables 配置, 很麻烦, 配置错了可能直接 SSH 都连不上了(因为也被劫持了), 很劝退. 但是一旦配置好, 后面就基本不用维护了, 新设备只要使用透明代理作为网关, 就可以直接科学.

    如果要用透明代理, 最常见的做法就是, 在你的内网里, 部署一台 linux, 可以是虚拟机(docker 不行, 因为劫持流量要操作系统配合), 可以是物理机, 然后这台 linux 上配置好代理软件, 配置好路由表和 iptables, 那么这台设备, 就可以劫持并代理收到的流量. 然后, 内网的其他设备或者软件, 把网关 gateway 设置为这台设备就可以了.

    如果只是用普通代理, 就是走代理协议的, 那就相对简单多了, 内网的一个软件或者一个设备, 跑一个代理程序, 然后其他需要被代理的软件/设备, 设置代理地址为代理程序即可.
    yukinomiu
        22
    yukinomiu  
       290 天前
    接上一条:

    普通代理, 软件就是你说的哪些; 透明代理, V2 之类的也都支持, 看文档部署即可. 目前我用的自己写的软件做透明代理, 避免公交车协议被爆破, 私家车相对安全一点. 上面留了联系方式, 还有不懂的可以联系讨论, 一起折腾.

    分流就是让国内的流量直接连接, 国外的流量被代理, 加速国内访问, 减少代理流量消耗. 分流方案也有很多, 细节按下不说, 目前为止我觉得没有一种方式比较完美, 或多或少都有一些局限性. 我的选择是手动分流.
    就是说, 搞 2 个网络, 网络 A 全部直接连接, 网络 B 全部走透明代理. 然后这两个网络使用两个 WIFI SSID, 设备一般情况直连 A, 需要科学的时候, 手动切 WIFI, 连到网络 B 即可. 麻烦一点, 但是也还能接受.

    下面说的 DNS 分流, 只是内部分流细节, 依据什么去分流. 常见的做法是通过 IP 地址去分流, 先收集国内外 IP 地址, 再按 IP 分支分组去分流, 比如国内 IP 走直连, 国外的走代理. 但是 IP 分流有个问题就是大多数场景都是通过域名去访问的, 软件程序很少会把目的地址 IP 写死. 所以就有了按域名去分流. 但是, 应用再发起数据通讯之前, 往往要先进行一次 DNS 查询, 所以这里又可以展开...

    最后, 不论怎么折腾, 都不建议在路由器上做这些事情. 路由器交换机 AP 这些应该是底层网络基础设施, 是地基; 代理科学和媒体服务器一样, 是上层设施, 提供更多功能性便利, 这些应该分开. 基础网络是负责网络连接, 代理科学走单独的设备去做, 这样代理崩了也不至于整个网络瘫痪. 好比家居里电视坏了, 影响的应该只是看不了电视, 而不是电视坏了直接停水停电. 如果要搞清楚这些, 还是得去学习网络基础知识, 查阅方向的话, 建议买本书啃, 系统性学习. 或者, mikrotik 官方的文档也可以看看, 虽然是写路由器的, 但是往往会写写基础理论知识和原理, 附地址: https://help.mikrotik.com/docs/display/ROS/RouterOS
    caneman
        23
    caneman  
    OP
       285 天前
    @yukinomiu #22 感谢老哥解答!! 老哥说的几种方案名词之类的我是知道啥意思的,就是不知道具体该怎么实现。

    这周末 J4125 也到货了,懒得折腾,最后还是采用了 esxi + openwrt 做主路由负责拨号,硬路由当 ap ,我的使用场景没那么复杂,就是全屋代理,openwrt 做旁路由的话,接入设备得手动填写网关地址,我嫌麻烦。

    老哥的方案现在我大概可以理解了,两个 WIFI 的话,既可以规避手动填网关地址的麻烦,又可以实现科学/直连隔离。但是现在刚入手 J4125 ,我打算先按照我现在的配置用一段时间,目前感觉还比较稳,等遇到问题或者新的需求了再试试别的方案。
    faydao
        24
    faydao  
       280 天前 via Android
    @caneman J4125 买的工控成品吗
    sheepyoung
        25
    sheepyoung  
       138 天前
    @caneman 我就是 openwrt 做的主路由拨号,开科学插件,3 个硬路由 ap mesh 组网,不乱折腾,稳定运行 2 个月了。
    sheepyoung
        26
    sheepyoung  
       43 天前
    @sheepyoung 我之前也是这个方案,但是 openwrt 主路由拨号很不稳定,经常断开(他也会自动重连)很影响体验,后来换成 ikuai 来拨号(没断开过,除了运营商 20 天自动回收 ip 会断开重连),openwrt 作为科学网关。
    caneman
        27
    caneman  
    OP
       43 天前
    @faydao 是的,畅网 j4125 i226-v

    @sheepyoung 是不是跟固件版本有关,感觉很玄学,我用的高大全的某个版本,目前还没有遇到端口的情况,稳定运行 9 个月了
    sheepyoung
        28
    sheepyoung  
       42 天前 via Android
    @caneman 我用过天灵,lede 都有这个问题,不想折腾了直接有了 ikuai
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1038 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 23:02 · PVG 07:02 · LAX 16:02 · JFK 19:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.