什么是 tproxy 透明代理?

11cee844bd93c3d7bb26961ff4de7876.gif

在 Istio 最新的 Ambient 模式中,使用了 tproxy 做透明流量劫持(见此博客 [1] ),这与 Sidecar 模式中基于 IPtables 的流量劫持方式有些许不同,这篇文文章,我们就就一起来探究下什么是 tproxy。

什么是代理?

在介绍透明代理之前,我们先了解下什么是代理。

代理的功能

代理在互联网中的用途非常广泛,例如:

  • • 缓存请求:加快网络响应速度,作用类似于 CDN;

  • • 请求过滤:用于网络监管,屏蔽或允许对某些主机、网站的访问;

  • • 请求转发:用于负载均衡或作为网络中继;

  • • 流量管理:对进出代理的流量进行细粒度的管理,例如按百分比发布到不同的后端、超时和重试设置、熔断等;

  • • 安全审计:记录和限制客户端请求,用于计费或审计;

代理的分类

代理的分类方式有很多,下图根据代理的位置将其划分为了两类:

1e029188ab86d481b1a5d1a573d564a2.jpeg
  • • 前向代理(Forward Proxy):运行在客户端侧,代替客户端想服务端发送请求,例如我们日常使用的各种科学上网代理;

  • • 反向代理(Reverse Proxy):代替服务端接受互联网或外部请求,然后将请求路由到对应的服务端,例如各种 Web 服务器,在这里 [2] 你可以看到一个代理列表;

代理可能与客户端或服务器位于同一节点(或网络空间,如 Kubernetes 中的 Pod),也可以位于远端。另外还可以根据代理对客户端或服务端是否可见(visible)来分为透明代理和非透明代理。下图展示了客户端(A)通过代理(B)向服务端(C)发送请求的过程。

586db81c5c88d9dd11c2f82e7adf0b0b.png

  • • 非透明代理:客户端需要修改目的地址为代理服务器的地址,并使用代理协议连接代理服务器;

  • • 透明代理:所谓透明代理,即客户端和服务端感知不到代理的存在,客户端无需修改目的地址,也不需要采用代理协议连接代理服务器,所有目的地址转换都是在透明代理中完成的;

使用 tproxy 透明代理

tproxy 是 Linux 的内核模块(自 Linux 2.2 版本开始引入),用于实现透明代理,其名称中的字母 t 即代表透明(transparent)。

要使用透明代理首先需要把指定的数据包使用 iptables 拦截到指定的网卡上,然后在该网卡监听并转发数据包。

使用 tproxy 实现透明代理的步骤如下:

  1. 1. 首先需要实现流量拦截:在 iptables 的 PREROUTING 链的 mangle 表中创建一个规则,拦截流量发送给 tproxy 处理,例如 iptables -t mangle -A PREROUTING -p tcp -dport 9080 -j TPROXY --on-port 15001 --on-ip 127.0.0.1 --tproxy-mark 0x1/0x1,给所有目的地为 9080 端口的 TCP 数据包打上标记 1,你还可以指定来源 IP 地址或者 IP 集 [3] ,进一步缩小标记范围,tproxy 监听在 15001 端口;

  2. 2. 创建一个路由规则,将所有带有标记 1 的数据包查找特定的路由表:例如 ip rule add fwmark 1 lookup 100,让所有 fwmark 为 1 的数据包查找 100 路由表;

  3. 3. 将数据包映射到特定的本地地址:例如 ip rule add local 0.0.0.0/0 dev lo table 100,在 100 路由表中将所有 IPv4 地址声明为本地,当然这只是一个例子,实际使用时需要请将特定的 IP 的数据包转发到本地的 lo 回环网卡;

  4. 4. 至此流量已被拦截到 tproxy 的监听端口 15001(从 Linux 内核空间进入用户空间),你可以编写网络应用处理数据包或使用 Squid[4] 或 Envoy[5] 等支持 tproxy 的软件来处理数据包;

透明代理的优点

透明代理具有以下优点:

  • • 透明代理提供更高的带宽并减少传输延迟,从而提高服务质量;

  • • 用户无需配置网络和主机;

  • • 企业可以控制对其网络服务的访问;

  • • 用户可以通过透明代理连接互联网以绕过一些监管;

透明代理的缺点

透明代理有以下缺点:

  • • 如果透明代理配置不当,可能导致用户无法连接互联网,而对于不知情的用户来说,他们无法排查和修改透明代理中的错误;

  • • 透明代理的安全性无法得到保证,因为被拦截的用户流量可能被透明代理篡改;

  • • 透明代理可能缓存用户信息,导致用户隐私泄露的风险;

总结

透明代理作为代理中的一类重要类型,它的用途广泛,不论是 xray、clash 等代理软件,还是 Istio 服务网格中得使用了应用。了解它的原理和工作方式有助于我们科学正确的使用代理,而是否使用透明代理取决于你对它的信任和了解程度。

参考

  • • tproxy-example - github.com[6]

  • • Linux transparent proxy support - powerdns.org[7]

  • • Feature: TPROXY version 4.1+ Support - wiki.squid-cache.org[8]

引用链接

[1] 见此博客: https://jimmysong.io/blog/ambient-mesh-l4-traffic-path/
[2] 在这里: https://jimmysong.io/awesome-cloud-native/#proxy
[3] IP 集: https://ipset.netfilter.org/
[4] Squid: http://www.squid-cache.org/
[5] Envoy: https://www.envoyproxy.io/
[6] tproxy-example - github.com: https://github.com/kristrev/tproxy-example
[7] Linux transparent proxy support - powerdns.org: https://powerdns.org/tproxydoc/tproxy.md.html
[8] Feature: TPROXY version 4.1+ Support - wiki.squid-cache.org: https://wiki.squid-cache.org/Features/Tproxy4

欢迎加入云原生社区或向社区投稿,点击阅读原文了解更多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8183.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ChatGPT常用的指令(prompts)系列十——房地产经纪人、物流人员、牙医、网站设计

系列文章目录 内容翻译自:https://github.com/f/awesome-chatgpt-prompts,并加入自己的实践内容 1、 ChatGPT常用的提示语(prompts)系列一 2、 ChatGPT常用的提示语(prompts)系列二 3、 ChatGPT常用的提示语…

如果用ChatGpt给OpenTiny官网设计页面会怎样?

听说华为云最近新开源了一个组件库项目,叫OpenTiny。作为一个编程爱好者和对组件库有使用需求的程序猿来讲,必须要看看这个OpenTiny到底有什么不一样,让我立马打开了OpenTiny官网一看究竟。 首先大概了解到OpenTiny 是一套华为云出品的企业级组件库解决方案,适配 PC 端/移…

为什么Facebook账号被封?如何应对Facebook账号被封?

做社媒营销尤其是Facebook,手里有多个账号是家常便饭。运营多个账号您就很可能遇到这一问题:Facebook账号被封。 那么Facebook账号被封该怎么办?本文就聊一聊Facebook账号被封背后的那些事以及如何保护您的Facebook账号。 为什么你的Faceboo…

ChatGPT大封号,注册功能关闭!亚洲成重灾区,网友自救喊话:不要登录,不要登录!...

来源:量子位 | 公众号 QbitAI “不要登录ChatGPT!” “暂时远离人工智能和ChatGPT概念板块高位股!” 就在这两天,一些关于ChatGPT的疾呼突然在各种社交平台和群聊刷屏了。 而看到这些消息的用户更是感到前所未有的惶恐。 因为导致…

前脚我的 GPT4 被封,后脚收到了文心一言的邀请账号

大家好,我是二哥呀。 一早醒来,我的 ChatGPT Plus 账号就惨遭封禁,很不幸,我刚冲的 Plus 会员,用了不到一周的时间(😭)。 我没用亚洲的IP,所以网上传的那些不使用亚洲IP…

Twitter账号老被封?一文教会你怎么养号

昨天龙哥给大家科普完要怎么批量注册Twitter账号,立刻有朋友来私信龙哥说里面提到的这个养号和防关联具体是个怎么样的做法。由于Twitter检测机制还是比较敏感的,账号很容易被冻结,所以养号是非常重要的步骤。其实要养好Twitter账号其实并不难…

ChatGPT4 VS ChatGPT3.5:揭秘人工智能语言模型的技术革新

摘要:本文将详细介绍ChatGPT4与ChatGPT3.5之间的关键技术差异,解析为何ChatGPT4在诸多方面超越了ChatGPT3.5,以及这一领域的未来发展趋势。 一、引言 随着人工智能和自然语言处理技术的不断发展,智能对话机器人成为了越来越多人的…

【NLP】ChatGPT的前世今生:预训练模型成长史

Datawhale干货 作者:钱博文,中国移动云能力中心 前言 近年来,随着各大厂商的激烈角逐,预训练模型(The Pretrained Foundation Models ,PFMs)的发展可谓百花争鸣,谁都想在这场没有硝…

让 API 管理效率更进一步的 API7 DevPortal

作者张超,API7 Cloud 产品负责人,Apache APISIX PMC 成员。 原文链接 当今计算机世界,人们早已习惯使用 API 在软件之间完成信息的交换,不论是你在手机上查看天气信息、查看微信朋友圈的动态、亦或是和 ChatGPT 交互,…

Games101作业7 路径追踪 CUDA

配置 i7-11800h 笔记本版的 RTX3070 CUDA 11.6 vs2019 Baseline 基线为多线程版,我参考的这两个博客: GAMES101作业7-路径追踪实现过程&代码框架超全解读 GAMES101作业7及课程总结(重点实现多线程加速,微表面模型材质&…

盖茨来了:比起去火星,地球有些事更紧迫

2023年6月14日晚,比尔盖茨在微博更新了一条消息,他写道:我刚降落在北京,这是我2019年以来的首次访问。盖茨基金会与中国伙伴合作应对全球健康和发展挑战已经超过15年。我非常高兴能与中国的伙伴们见面。在减少儿童死亡和贫困方面&…

系统安全实验 Week9

1.加密再解密_qsj 题目描述: 很简单的一道题目,就如同你看到的那样——解密再解密,通过ssh连接靶机,账号test,密码123 SSH 登陆 ls -al看看,发现flag就在根目录 cat 读取enflag.txt的内容:LS…

ChatGPT来了不用慌,广告人还有这个神器在手

#ChatGPT能取代广告人吗,#ChatGPT会抢走你的工作吗?#ChatGPT火了,会让营销人失业吗?自ChatGPT爆火以来,各种专业or非专业文章不停给广告人强加焦虑,但工具出现的意义,更多在于提效而非替代&…

Cursor 尝鲜

最近 ChatGPT 大行其道,用了都说🐂🍺,今天就借着这个话题介绍下一个搭乘 ChatGPT4 的 IDE ,那就是标题 Curosr。 Cursor 这是一个集成了GPT-4 模型的代码编辑器, 而且重要的是免费, 不需要注册, 不需要订阅Copilot&…

干货|JustAuth三方账号授权登录免费搭建全流程

三方登录的方式想必大家都很熟悉,基本健全的网页都会整几个入口,比如日常的微信、QQ,金融的支付宝,音视频的抖音、快手,码农领域的Github、Gitee等。 作为功能测试,我们就随机取一个简单的三方授权Gitee来…

【学习笔记】利用chatGPT入门机器学习(附代码)

1. 线性回归的例子:从简单到复杂 2. 使用随机森林分类器对鸢尾花数据集进行分类 3. 使用支持向量机分类器对乳腺癌数据集进行分类 机器学习算法可以用很多方法分类,但一种常见的分类方法是根据算法是监督学习、无监督学习还是半监督学习。 监督学习算…

Chatgpt提升工作效率的7种用法

Chatgpt在人工智能领域越来越受到重视。以前我们只能通过专业的工具来完成各种任务,但现在我们可以通过Chatgpt来解决一些日常任务,提高工作效率。下面是Chatgpt如何提升工作效率的7种用法。 ​ 1.写周报 写周报是很多打工人甚至研究深每周都要完成的任…

GPT-4 VS ChatGPT:训练、性能、能力和限制的探索

GPT-4是一种改进,但是应该适当降低期望 当OpenAI在2022年末推出ChatGPT时,震惊了全世界。这个新的生成式语言模型预计将彻底改变包括媒体、教育、法律和技术在内的整个行业。简而言之,ChatGPT听起来可以颠复一切。甚至在我们没有时间真正设想…

摆脱网络限制:用Vercel打造属于你的ChatGPT网站

摆脱网络限制:用Vercel打造属于你的ChatGPT网站 前言 上一篇分享了如何用自己的服务器搭建chatgpt服务器,但是需要你有一个服务器,还是有点成本的。今天我带来一个无需自备服务器的方式,让你也能搭建属于自己的chatgpt专属助手&a…

oa人员导入模板_巧用OA系统模板办公,让重复的事情简单做

是什么让我们的工作变得低效? 机械的重复绝对算得上一项。有时候,我们不得不花费大量的时间去进行信息的重复填写、格式的重复校对,却没有进行相应模板的总结,让简单的事情变得复杂。 那么,如何才能告别低效工作&#…