半透明反向代理 (基于策略路由)

news2025/1/22 23:43:50

定义

半透明反向代理一般是指 代理本身对于客户端透明,对于服务端可见。
从客户端视角看,客户端访问的还是服务端,客户端不知道代理的存在。
从服务端视角看,服务端只能看到代理,看不到真实的客户端。

示意图

在这里插入图片描述

  1. 客户端访问服务器的数据包,通过交换机时,交换机利用配置的策略(此时数据包的目的mac被改为nginx机器)把数据包引流到nginx机器,数据包入口为36.57的网卡。这一步很重要。
  2. 流量到达nginx机器后,此时数据包的目的ip是仍然是server机器,所以需要利用iptables规则修改包的目的ip为nginx机器,然后才能与nginx建立tcp连接。nginx的1234端口代理的是服务器192.168.37.6,nginx此时作为反向代理的准备完成。
iptables -t nat -A PREROUTING -d 192.168.37.6 -p tcp --dport 3306 –j DNAT --to-destination 192.168.36.57:1234
  1. 客户端发往服务器的数据包,都会中转经过nginx,然后在发送给服务器。
  2. 服务器响应给客户端的数据包,会首先到达nginx,再由nginx转给客户端。

遗留问题

nginx机器有2张网卡,流量入口一定是从36.57的网卡。那么流量出口呢?
从41.15网卡出去?从36.57网卡出去?
基于路由的匹配规则,流量从哪张网卡出去都是有可能的。如果41.15是千兆网卡,36.57是万兆网卡,那么从万兆网卡出去无疑是最好的选择,那么就需要用到linux的策略路由。

策略路由

添加路由表

ip route add default via 192.168.36.1 dev enp24s0f1 table 101

添加策略路由

ip rule add from 192.168.37.6 table 101
ip rule add to 192.168.37.6 table 101

src和dst是服务器(192.168.37.6),都走路由表101,而这张路由表以网卡(192.168.36.57)为出口的

持久化配置

在/etc/sysconfig/network-scripts目录下,添加rule-XXXX和route-XXXX文件,实现配置持久化。

  1. route-enp24s0f1
default via 192.168.36.1 dev enp24s0f1 table 101
  1. rule-enp24s0f1
from 192.168.37.6 table 101
to 192.168.37.6 table 101

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C语言】switch语句的理解

文章目录一. 基本语法结构二. 几点补充补充一:关于 default 分支补充二:多条匹配执行同一语句补充三:在 case 语句中定义变量的问题三. 几点建议建议一:按执行频率排列 case 语句细节二:简化每种情况对应的操作细节三&…

Node【四】内置模块 【fs模块】

文章目录🌟前言🌟fs模块🌟 使用fs模块🌟 异步编程和同步编程🌟 异步编程🌟 同步编程🌟常用操作🌟 文件操作🌟 readFile异步读取文件🌟 readFileSync同步读取文…

[数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。G…

HTML5 <iframe> 标签、HTML5 <input> 标签

HTML5 <iframe> 标签 实例 使用HTML5 <iframe>标签来标记一个内联框架&#xff1a; <iframe src"http://www.w3cschool.cn"></iframe>尝试一下 浏览器支持 所有主流浏览器都支持 <iframe> 标签。 标签定义及使用说明 <iframe&g…

【数据结构初阶】第五节.栈的详讲

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、栈的基本认识 二、栈模拟实现&#xff1a; 三、栈的实战演练 3.1 有效的括号 3.2 逆波兰表达式 3.3 栈的压入、弹出序列 总结 前言 上一节内容我…

【产品设计】登录功能设计逻辑解析

登录功能是每个产品的基础功能&#xff0c;用户已经习以为常了&#xff0c;但对于产品经理来说&#xff0c;这是打开用户通往产品世界大门的“钥匙”&#xff0c;需要好好设计。 在用户看来&#xff0c;登录像是一个一次性的功能&#xff0c;很多 APP 在手机上登录过一次之后&a…

Linux学习记录——십구 构建进程间通信的信道方案

文章目录1、进程间通信介绍1、目的2、发展2、管道1、原理2、简单模拟实现3、总结3、匿名管道——控制进程4、命名管道1、原理2、模拟实现1、进程间通信介绍 之前所学都是单个进程&#xff0c;多个进程之间如何运转&#xff1f; 1、目的 数据传输&#xff1a;一个进程需要将它…

SpringSecurity之基本原理——过滤器链

前言 前面我们讲解了入门案例&#xff0c;很多小伙伴看完之后&#xff0c;应该也不知道他是如何实现的拦截。接下来&#xff0c;我们看一下SpringSecurity的基本原理是什么&#xff1f; 本质 其实&#xff0c;SpringSecurity的本质上就是一个过滤器链。在启动时&#xff0c;…

我的面试八股(JVM篇)

谈一谈Java内存区域和Java内存模型的理解&#xff1f; / Java内存区域和Java内存模型是一个东西吗&#xff1f; Java内存区域和Java内存模型不是一个东西&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; Java内存区域&#xff0c;也就是Java运行时数据区域。是…

Typora自定义主题分享 (Mac风、图片立体感...)

MarkDown 主题分享 文章目录MarkDown 主题分享Ligth-浅色主题主题效果展示安装方式Dark-深色主题主题效果展示安装方式关键字&#xff1a;Typora 、Mac、图片阴影、代码样式、表格 Ligth-浅色主题 主题效果展示 安装方式 下载 Typora 官网 Mo主题 下载地址将Mo.css样式修改为…

Docker容器部署

Docker容器1.Docker概念1.1.什么是Docker1.1.1.应用部署的环境问题1.1.2.Docker解决依赖兼容问题1.1.3.Docker解决操作系统环境差异1.1.4.小结1.2.Docker和虚拟机的区别1.3.Docker架构1.3.1.镜像和容器1.3.2.DockerHub1.3.3.Docker架构1.3.4.小结1.4.安装Docker2.Docker的基本操…

【无人机】采用最基本的自由空间路损模型并且不考虑小尺度衰落(多径多普勒)固定翼无人机轨迹规划(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

每日刷题记录(十四)

目录第一题&#xff1a;子集解题思路&#xff1a;代码实现&#xff1a;第二题&#xff1a;组合解题思路&#xff1a;代码实现&#xff1a;第三题&#xff1a;全排列解题思路&#xff1a;代码实现&#xff1a;第四题&#xff1a;全排列II解题思路&#xff1a;代码实现&#xff1…

2023年4月传统行业产品经理需要考NPDP吗?含金量高吗?

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

Linux内存管理(七):fixmap详解

源码基于:Linux 5.4 约定: 芯片架构:ARM64 CONFIG_ARM64_VA_BITS:39 CONFIG_ARM64_PAGE_SHIFT:12 0. 前言 内核启动首先会进入汇编阶段,mmu已经启动 (也就是说,当前SOC只能使用虚拟地址访问RAM),paging_init还没有完成调用,在内核启动过程需要访问某些特定的内核模…

SQL综合查询上

目录1、查询输出“高等数学”课程成绩前三名&#xff08;不考虑成绩有重复值的情况&#xff09;的学生的学号&#xff0c;姓名&#xff0c;课程名&#xff0c;系名&#xff0c;成绩。题目代码2、统计各门课程的重修人数&#xff08;包括grade为NULL&#xff09;&#xff0c;要求…

体验了一把ChatGPT4

不得不说ChatGPT对我的学习效率有极大的提升&#xff0c;它就像一位老师&#xff0c;不管有什么问题&#xff0c;都可以得到很好的答案。但是前段时间gpt3.5账号被封了&#xff0c;最近搞了个gpt4。市面上目前好像没啥可以白嫖的账号&#xff0c;基本都是免费使用几次&#xff…

C++11新特性有效总结

目录 语言可用性加强 (读现代C教程有感) nullptr constexpr if/switch 申明强化 &#xff08;C17开始&#xff09; 初始化参数列表 范围for迭代 两种类型推导方式 变长参数模板 SmartPointer Lambda 多线程 (并发与并行) 并发与并行的概念 C11中的并发并行 软件…

基于单片机的温室大棚环境监测系统设计

温室大棚对北方反季节蔬菜的种植具有重要意义。据了解全国各地温室大棚使用集中&#xff0c;但是大棚环境调控方式落后、管理落后、生产效率比较低。针对此问题本文提出了一种基于STM32单片机智能温室大棚控制系统方案&#xff0c;实现环境参数的自动检测&#xff0c;以达到智能…

C语言从入门到精通第2天(深度解析C语言数据类型及取值范围)

C语言基本数据类型及取值范围数据存储概述基本数据类型整型数的二进制表示浮点型数的二进制表示取值范围数据存储概述 C语言的变量有着不同的数据类型&#xff0c;每种数据类型的取值空间都是不同的&#xff0c;因此&#xff0c;不同数据类型的变量&#xff0c;其取值空间也不…