V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
loxlblade
V2EX  ›  程序员

又查了一夜,搞不懂旁路由和透明网关的区别

  •  1
     
  •   loxlblade · Jul 27, 2023 via Android · 13075 views
    This topic created in 1010 days ago, the information mentioned may be changed or developed.
    又查了一夜资料,整理了我理解的透明网关,



    一句话总结就是 ,当设备指向了透明网关(特指部署在标准 linux 设备上的 tpclash )后,意味着上行流量指向 tpclash ,而从 wan 口来的下行流量就直接指向设备本身了,并不会再从 tpclash 里绕一圈。





    那么我的疑问是,这和传统说法的 openwrt 单 lan 口旁路由的区别是什么呢? 理论来说旁路由也是做了这样的事情啊😯。但是根据以往经验,使用旁路由时总会遇到 内网变慢,王者荣耀断流等必然复现的问题。或者是刚开始设置时一切完美,用了差不多一星期后,网页就开始各种缓慢。





    难道当使用 openwrt 做旁路由时。它做了比透明网关更多的步骤?导致从 wan 口来的下行流量也经过了 openwrt ?这一点很糊涂,求 v 友们帮我解解惑😂😂😂😂
    43 replies    2023-07-28 10:43:50 +08:00
    netusers
        1
    netusers  
       Jul 27, 2023   ❤️ 2
    透明网关:就是夹在中间的小三
    旁路:就是旁观者,不挡任何一方去路
    chenyx9
        2
    chenyx9  
       Jul 27, 2023 via Android
    Partially boom VS Entirely boom
    wheat0r
        3
    wheat0r  
       Jul 27, 2023   ❤️ 7
    首先,旁路有和透明网关都不是术语。
    旁路由这个叫法还是很业余的,如果只是做路由,这东西应该叫单臂路由;如果不只是做路由,还有代理、NAT 之类的功能,应该叫网关。
    透明网关也并不透明,你是自己把路由指过去的,算什么透明。
    建议只关心功能,别在乎名字,会难受。
    loxlblade
        4
    loxlblade  
    OP
       Jul 27, 2023
    读完此条回复,有一种被耍的感觉。立马觉得最靠谱的比喻还是一楼。
    tywtyw2002
        5
    tywtyw2002  
       Jul 27, 2023 via iPhone   ❤️ 10
    一帮搞软件 x 墙的人在乱起名字。

    在 cisco 的 CCIE 里面,透明网关是在 ASA 系列防火墙中的概念,在 layer 2 进行过滤。因为是 L2 ,所以没有对 IP 层操作,所以叫透明网关。(正常的网关是三层转发,要查路由表)

    旁路路由,就是单臂路由,只连一个网络,把数据包发送到同一个网段的其他机器。
    germain
        6
    germain  
       Jul 27, 2023 via iPhone
    我看你们一本正经的的瞎扯淡也不知道说啥好。但凡稍微看过点文档或者你百度一下也行啊。

    出现在这所谓技术社区,也真的是无语🤦‍♂️
    yyysuo
        7
    yyysuo  
       Jul 27, 2023
    @germain 照你这么说,V2 没几个帖子是合格的。
    yuchenr
        8
    yuchenr  
       Jul 27, 2023
    不必在意名字。
    其实就是一个开了转发的机器 R ,他的作用就是把接收到的数据转发到真正的网关 G 。
    正常来说,客户端 C 应该是把数据发给 G ,如果你把客户端的网关设置成 R ,这时候数据的走向是 C--R---G
    LieNoWell
        9
    LieNoWell  
       Jul 27, 2023
    @germain 我就喜欢你这样的帖子,最好加一句懂得都懂。
    lovelylain
        10
    lovelylain  
       Jul 27, 2023 via Android
    旁路由是二级路由,数据(在路由层面,链路层面另算)要先到旁路由再到主路由,只不过网段还是和主路由一个网段,所以叫旁路由。
    透明网关只有一层路由,不走代理的数据直接出去了,走代理的数据转发到代理再由代理出去。
    这么解释区别很明显很容易理解吧?性能上透明网关是要优于旁路由的,但是要在路由器上部署透明代理能力,不是所有的路由器都支持,例如光猫你就没法引入这个能力,普通路由器不破解或者不刷机也没有这个能力。旁路由的主路由就是个普通路由器。
    tony1016
        11
    tony1016  
       Jul 27, 2023
    我理解透明网关在局域网里负责 DHCP 分配功能,所以可以让都有流量都透明的过它,旁路由不负责 DHCP ,你要用它你就手动配置本地的网关指向
    Linken404
        12
    Linken404  
       Jul 27, 2023   ❤️ 1
    向#5 里说的专业术语确实不太懂,但在搞软路由、nas 、htpc 的氛围里,我大概知道是什么意思

    他们说的旁路由一般是在你有主路由,但主路由没有代理功能的时候(比如爱快),在网络链路的旁路单挂一个单臂路由(但大部分是软路由,虚拟机),然后这个单臂路由提供诸如透明代理、去广告等功能,但整个网络中主网关还是主路由,DHCP 服务也是仅在主路由上开启。旁路由的网关指向主路由,同时如果你有设备需要使用透明代理、去广告这些功能,那就手动把网关指向旁路由就可以了。

    然后透明网关,在某种语境下指的应该是上面的主路由,同时具备透明代理功能,这样在主路由以下的全部网络环境中,都是默认“透明”上网的,默认通过代理。

    还有一种模糊的说法,有的人在说的时候会把做透明代理的旁路由叫成透明网关,因为本身这两个概念在功能上相似,说的时候又不是所有人都很懂,就有点模糊,所以有歧义也很正常。
    Linken404
        13
    Linken404  
       Jul 27, 2023
    我是这么认为的,但不一定跟别人的说法完全一样:

    如果说在一个没有默认代理功能的网络链路中,添加一个 linux ,在 linux 里用防火墙做转发,然后将某些流量传到 linux 中的 v2ray 或者什么代理软件里,然后让所有以此 linux 为网关的设备都通过这个 v2ray 代理来上网。那这个 linux 你是叫他旁路由呢,还是叫他透明网关呢?所以在某些语境下这两个其实是一个意思罢了,因为本身就没有一个十分明确的定义,只是爱好者们约定俗成的叫法。

    另外这种实现方式有个最大的问题:无论是现成的旁路由如 lede 、openwrt ,还是上面说的用 linux 本身 ip 转发的方式来做,都会导致在主路由上看到的终端只有旁路由,而看不到旁路由下的设备。如果需要对外暴露端口,还得在旁路由上做端口转发,毕竟是等于多了一层 nat 。
    yyysuo
        14
    yyysuo  
       Jul 27, 2023
    @Linken404 我搞不懂为什么要强调透明,现在的科学方案,只要在主路由上的,哪个不透明呢。
    ghostwwg
        15
    ghostwwg  
       Jul 27, 2023
    我是这么理解的,单口 op 做所谓的旁路由本质就是一个网关,虽然叫“路由”,但本身不做 nat ,nat 是交给光猫或者另一个路由器来做,op 只是做了一个网关服务,可以对流量做一些上级设备不具备的功能。
    Jirajine
        16
    Jirajine  
       Jul 27, 2023
    @tywtyw2002 照你这样说,那他们起的这些名字也没有问题。
    透明网关就是在二层操作流量,也就是二层防火墙,放 linux 里就是 ebtables 和 nftables 的 bridge/netdev family 。
    旁路由虽然是非常糟糕的 hack ,但也确实是把 ip 包转发到同网段的其他机器。
    captainm
        17
    captainm  
       Jul 27, 2023
    captainm
        18
    captainm  
       Jul 27, 2023   ❤️ 1
    ![]( )
    不知道这样你能明白不。
    Linken404
        19
    Linken404  
       Jul 27, 2023   ❤️ 1
    @yyysuo 不知道啊,约定俗成的说法吧,毕竟很多在家里搞软路由、HTPC 的人其实都是爱好者,并不是什么互联网或运维从业人员,很多人 shell 命令都只能照着敲,他们的术语有时候是约定俗成的……不过直观上来说,感觉说透明是在强调无感觉科学上网,反正能理解个大概就行了
    Linken404
        20
    Linken404  
       Jul 27, 2023
    @yyysuo 并且爱快这种很多人推崇的主路由,他本身没有代理功能,现在以及可以预见的将来都不会有……以前有代理功能的主路由也不多,也就有了透明跟不透明的区分,算是历史遗留问题了
    lyxeno
        21
    lyxeno  
       Jul 27, 2023
    "旁路由" 一般和透明代理 这个词相关联吧?对于科学上网来说,确实够透明
    germain
        22
    germain  
       Jul 27, 2023
    @yyysuo 不合格和传播完全错的概念是有很大区别的。而且这些名词都是随手就能找到解释的词条,不是啥高深莫测的技术。


    @MrSheng 我觉得应该加一句“不要不懂装懂”,特别是把 CCIE 搬出来,再来个“旁路路由,就是单臂路由”,不搞笑吗?
    jiangzm
        23
    jiangzm  
       Jul 27, 2023
    旁路由就是单臂路由 🐶
    samueler2016
        24
    samueler2016  
       Jul 27, 2023 via Android
    每次看到有比我更小白的,我就很开森
    yungo8
        25
    yungo8  
       Jul 27, 2023 via Android
    我在电脑用 wifi 连路由器,电脑上开启 clash 透明代理,所以电脑是啥了……
    loxlblade
        26
    loxlblade  
    OP
       Jul 27, 2023 via Android
    @samueler2016 生三娃吧。每天三倍开心
    fenghuang
        27
    fenghuang  
       Jul 27, 2023 via Android
    旁路由内网设备同一 ip 段之间流量是不是也要到旁路由绕一下
    lvxing888
        28
    lvxing888  
       Jul 27, 2023
    @fenghuang 主要看网关吧?你指定了旁路由的网关 什么流量都去绕一圈。 你说这个会不会影响网速。
    preach
        29
    preach  
       Jul 27, 2023
    旁路由还是路由 承担着路由的工作,dhcp dns 拨号 网关等
    透明网关 还是网关 承担的网关的工作
    Huelse
        30
    Huelse  
       Jul 27, 2023
    看完评论总结:
    旁路 = Hook
    透明 = Middle Layer
    cyspy
        31
    cyspy  
       Jul 27, 2023
    主路由:客户端-交换机-路由器-外网
    旁路由:客户端-交换机-旁路由-交换机-主路由-外网
    chronos
        32
    chronos  
       Jul 27, 2023
    在家庭外网需求的情况下[透明网关]一般指主路由设备本身提供了代理翻墙,去广告等能力,可以让局域网里面的设备无需另外配置,就能直接获得翻墙,去广告等功能。

    而[旁路由]一般是在主路由没有透明代理的能力,比如光猫或着其它封闭系统的路由器的情况下,通过在局域网中添加一个额外的路由器,配置好类似于[透明网关]的代理能力,让局域网设备将网关指定[旁路由]实现翻墙需求。

    还有[旁路由]并不一定是[单臂路由],[单臂路由]是指只有一个物理端口连接的路由设备。而[旁路由]你接两个物理端口到同一个局域网中,一个做为 WLAN ,一个做为 LAN ,一样可以实现,只是通常没必要而已。
    LYwyc
        33
    LYwyc  
       Jul 27, 2023
    @germain 同感,但凡楼上几个做科普的百度一下“单臂路由”啥意思,也不会说出旁路由就是单臂路由这种暴论
    chronos
        34
    chronos  
       Jul 27, 2023
    @fenghuang 局域网中一般相同的网段在设备的路由表上是直连的,因为数据包都通过交换机交换,是不是旁路由不影响这个。现实当中反而是主路由更有可能让数据包从它那边绕一圈,因为主路由上通常有好几个 LAN 接口,上面同时插着好几个设备,这时主路由器就承担了部分交换机的功能。
    sleepm
        35
    sleepm  
       Jul 27, 2023
    透明网关,对用户来讲是透明的,用户感知不到他的存在(不需要设置什么)
    旁路由,用户需要设置网关为旁路由才能科学上网,也就是所有流量都要先发到旁路由
    包括局域网内流量,比如访问 nas 里的电视剧
    电脑到旁路由,旁路由到主路由,再到 nas
    zsj1029
        36
    zsj1029  
       Jul 27, 2023
    我用旁路由实现的透明网关,6 不 6
    chronos
        37
    chronos  
       Jul 27, 2023
    @sleepm 局域网流量还真不一定,一般 nas 和电脑是在同一个局域网里面的同个网段下面。你的电脑路由表里面看一下就知道了,主机是直接连接的 nas ,数据包在交换机这层就直接转过去了。访问 nas 时数据并不会到路由器上。
    bbroot
        38
    bbroot  
       Jul 27, 2023
    单臂路由难道不是划 vlan 后的用法吗???????
    chronos
        39
    chronos  
       Jul 27, 2023
    @bbroot 其实也可以不划 VLAN ,在旁路由这个场景下完全可以只有一个 LAN IP 。
    fenghuang
        40
    fenghuang  
       Jul 27, 2023
    @lvxing888 #28
    @chronos #34
    主路由是 K2P
    旁路由 ip:192.168.1.100 网关 192.168.1.1 指向主路由,dhcp 也在主路由上,旁路由是单千兆网口
    设备 1 网关 192.168.1.100 指向旁路由
    设备 2 网关 192.168.1.100 指向旁路由
    就是这种情况下,设备 1 和设备 2 之间跑不满千兆
    mohumohu
        41
    mohumohu  
       Jul 27, 2023
    其实主要是看你网络的拓扑,在大多数语境下可能并没有什么区别。很多人的旁路由实际就是个二级路由,也就是个透明网关。真正达到国内流量正常走一级路由,只有需要走代理的流量静态路由走到透明网关,就算这个透明网关挂掉了也不影响国内流量上网,这才是真正的旁路。可以参考下这个方案: https://github.com/kkkgo/PaoPaoGateWay
    ShuWei
        42
    ShuWei  
       Jul 28, 2023
    常见的网关,一般分为二层网关和三层网关,二层网关在 L2 数据链路层,主要负责数据格式转换和链路转发,就是个单纯 boy ,并不关心任何上层协议,常说的透明网关就是指这个,而三层网关,因为工作在 L3 网络层,所以多了一层协议封装,需要处理寻址、标识、路由、转发、重新封装数据包,单臂路由的网关一般都是三层网关

    如果懵逼,要么去补习一下网络模型相关的知识,还得比较细,要么就直接懵逼着吧,毕竟搞清楚其实也没太多用途,你需要关心的是自己要用什么,你说的 tpclash ,最多叫透明代理,基于 TUN ,工作在网络的第三层,并不属于真正意义上的透明网关

    至于你说的单臂路由用久了会卡,应该属于搭建和配置的问题,跟单臂路由这个概念本身没有关系,仔细找找看自己配置上是否有什么问题,或者换个固件试试
    chronos
        43
    chronos  
       Jul 28, 2023
    @fenghuang 你这种就是局域网内跑不满千兆,跟是不是用了旁路由没关系。需要看看实际能跑到多少带宽,是只有千兆的一半左右,还是 800Mbps 以上接近 1000Mbps 的情况。

    建议查一下下面的几个地方:

    1. 中间负责这两个设备二层交换的设备,通常是交换机,也可能是路由器。看看去掉这个设备,用一根网线直连两台主机的速度有没有差别。
    2. 看看测速用的是什么软件,是否参数有误,导致速率上不去。
    3. 测一下双向的速度,看看有没有差别。
    4. 看一下网卡有没有系统兼容性 bug ,比如我的 Intel I219-LM 在 linux 下就有 bug ,发送速度只有千兆的一半左右。需要使用 ethtool 工具关掉 tso 和 gso 才行。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   804 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 116ms · UTC 22:28 · PVG 06:28 · LAX 15:28 · JFK 18:28
    ♥ Do have faith in what you're doing.