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

2023-07-27 01:16:54 +08:00
 loxlblade
又查了一夜资料,整理了我理解的透明网关,



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





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





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

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

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

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

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

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

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960047

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX