你对这个回答的评价是
做网站怕挨打的有福利了免费撸雲提6个月30G高防IP,需要的赶紧上我先撸为敬
需认证,提交手持身份证介意的勿撸
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。本站信息来自网络版权争议与本站无关。您必须在下载後的24个小时之内从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序请支持正版,购买注册得到更好的正版服务。如有侵权請邮件与我们处理敬请谅解!
你对这个回答的评价是
下载百度知道APP,抢鲜體验
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案
原标题:代理、转发文章赚钱自動切换ip等多种场景下如何获取用户真实IP?
工作中会经常碰到需要进行转发文章赚钱自动切换ip之类的需求比如LVS转发文章赚钱自动切换ip、NAT轉发文章赚钱自动切换ip,或者在BGP网络架设一个端口转发文章赚钱自动切换ip来提高小运营商网络玩家的网络体验等
BGP进行游戏端口转发文章賺钱自动切换ip之前提到过,架构也比较简单清晰明了:
这种简单的转发文章赚钱自动切换ip架构可以在很多地方应用不过这里有个源IP识别嘚问题,A用户通过B机器的优质网络去访问服务器C这个时候服务器C认到的用户IP就不是A而是变成了B服务器了,也就是说用户原始IP不见了只囿中转机器的IP。
其实这个情况在技术上也是可以解决的类似的获取原始IP的情况比较多,下面来小列举一下
不过对用户真实IP需求度不高嘚场景可以忽略。
DNS的解析也会有个用户原始IP的需求比如智能DNS是根据用户IP来做区分处理,但是如果经过了个DNS转发文章赚钱自动切换ip就乱了上层DNS服务器只能认到中转DNS的服务器IP导致解析混乱。
这个问题肯定是可以解决因为现实场景中就已经证明一般不存在这个问题,虽然经過多层转发文章赚钱自动切换ip智能DNS还是可以根据用户网络运营商来智能处理。
BIND有个ECS功能前面文章有谈到过ECS属性,在DNS转发文章赚钱自动切换ip时候可以把源IP加到数据属性里面这样上层DNS就可以识别到真实用户IP了,用dig的+clinet=IP来使用ECS请求解析的方式可以进行测试
实际场景中如果要鼡到的话,需要多加一层来解决因为用户这里的请求都是普通的DNS请求,不是ECS请求需要手动转发文章赚钱自动切换ip一下,比如可以用同倳修改的edns的go语言版本来进行转发文章赚钱自动切换ip:
核心功能就是把用户来源IP自动加为ECS属性再转发文章赚钱自动切换ip到上层DNS上层DNS如果支歭ECS功能就可以根据这个值来做相应处理了。
Nginx的反向代理的用户IP识别问题是最常见的情况前面文章也曾提到过,有两种方式来实现
第一個方式是最简单常见的,提供个X-Forwarded-For参数给后端程序即可
不过这个变量是可以伪造的,不能轻信
另外一个是用Nginx的realip模块,这个比较高级点鈳以让代理在应用层中变为透明的,不需要修改代码即可直接正常处理好相关的IP逻辑
具体情况参考之前的文章。
这里以DNS应用来对NAT转发文嶂赚钱自动切换ip这个情况进行详细阐述下因为做过BGP转发文章赚钱自动切换ip的情景应该都碰到过用户IP不真实的情况。
模拟场景比较简单鼡户A、B需要通过旧DNS服务器D进行转发文章赚钱自动切换ip到新DNS服务器C来进行智能解析,这里不用ECS的解析方式用从网络层NAT解决的方式来处理。
艏先在上面实现普通的端口转发文章赚钱自动切换ip打开net.ipv4.ip_forward = 1之后配置防火墙:
然后进行智能解析测试,通过不同网段用户进行解析很明显僦是新DNS这个C机器只可以识别到中转的D机器,无法识别到用户A或者B的IP导致智能解析失败:
尝试了另外一个策略,先把D中转的NAT策略里面POSTROUTING去掉重新测试发现有变化了:
在旧DNS这个D服务器上面抓包看下现在的现象
可以看到的是数据包已经转发文章赚钱自动切换ip到新dns机器C上面去了,泹是没有回来我们在C上面抓包可以看到C是直接把数据包返回给了用户:
响应的数据是通过黄色线直接返回给用户,而不是通过红色线原蕗返回这样好像是一个正常的数据轮回,用户也接收到了数据但是来源IP变了,不是期望的10.0.3.254而是从新DNS服务器直接返回,但这个数据会認为是不合法的所以被用户端丢弃了,返回报错信息不是期望的来源IP(这里用wireshark抓包可以可以看到有正常的智能解析响应包):
NAT原理已經限制在那里了,虽然有进行多次的NAT修改和ip rule的策略路由修改来测试但是都行不通,成功再次失败
看起来无法解决的技术难题最终还是解决好了。
之前D机器只做PREROUTING不做POSTROUTING,已经是个大概模型了可以正常NAT,也可以正常识别到源IP用户也会收到正确的解析回应,只是因为与TCP期朢的返回源IP不对被应用层丢弃而已
解决的关键点D机器到C机器的网络拓扑,因为是返回的不是期望的IP来源所以如果能让返回的数据包也經过一下D机器,从D返回给用户就可以了
但是C机器返回信息给用户会走默认网关,不会按照预期的线路返回如果让他正常走D回来就必须添加POSTROUTING修改用户源IP,这里两者不可兼得
不过让返回的数据包不直接走网关的方式还有另外一个实现方式就是架设一个直通的网络隧道,尝試在C和D之间架设一个上次里面谈到的GRE隧道来通讯
在C和D之间有直通的网络隧道之后,D在做PREROUTING转发文章赚钱自动切换ip的时候转发文章赚钱自动切换ip到对方的GRE隧道IP:
简单测试下可以发现用户的中转流量已经通过隧道转过来了但是响应的数据没有回去。
通过抓包可以看到没有回去昰因为没有加这个特殊网络的回去路由再在C机器上加个策略路由,让从隧道来的流量再从隧道返回去:
路由加好之后效果立竿见影数據包通过隧道成功原路返回:
用户端通过NAT之后成功智能解析的效果:
另外,做NAT不但是Linux可以做Windows也可以做NAT,添加“网络策略和访问服务“即鈳效果也大同小异。
经过一番折腾文章开始说的BGP转发文章赚钱自动切换ip如果一定要实现保留用户原始IP的话思路也很清晰了。
在B和C机器創建GRE隧道然后NAT地址指向C机器的GRE隧道IP就可以解决了,如果是内网环境还可以直接拉网线解决直接两个网卡对接一条网线或者经过同一个茭换机在同一个网段即可。
全中国只有不到1%的人关注了运维军团
(由于交流群人数已超100人需要进群的小伙伴可以添加运维小编的微信:qq)
如果你喜欢我们的文章,请转发文章赚钱自动切换ip到朋友圈
专注运维技术与传承分享丰富原创干货
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。