V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Marionic0723
V2EX  ›  宽带症候群

关于运营商分配假公网 IP 的问题

  Marionic0723 · 2022-08-27 20:34:35 +08:00 · 32391 次点击
这是一个创建于 606 天前的主题,其中的信息可能已经有所发展或是发生改变。
感谢 @onion83 发的图


这种技术多半是是运营商用来应对那些啥都不知道又跟风申请公网 IP 的小白的,用了这招之后,拨号获取到的 IP 和上网查到的的确是同一个,NAT 类型也会测出最宽松,能骗过绝大多数人,只有需要公网开服务而且正好端口和别人冲突的时候才会发现异常。

那么问题来了,如何分辨这种假公网?多用户在同一端口开放服务后,NAT 设备如何处理流量?

我的想法:
1.分别在低位和高位端口开设服务,然后用跨运营商的网络去访问它,查看访问能否成功,如果有不成功的,除了被运营商封锁(如 25 ,80 ,443 ),剩下的端口就是给别人了,证明公网 IP 是共享的。
2.内网发起路由跟踪,看看到达运营商真正的公网网关前是否出现丢包跳数。手机流量一般就是这样,只不过能看出是内网 IP 。
还有什么想法欢迎各位补充。
第 1 条附言  ·  2022-08-28 10:02:02 +08:00
简单看了下各位的讨论,我觉得:

1.这个方案分配到的公共 IP 地址(请注意“公共”和“公网”的区别)其实称作“共享公网”更恰当(可惜标题不能改),因为它确实支持有限度的从外部访问(除非运营商还有一套方案,公网私用而且来骗小白,也就是完全不支持外部访问,也就是加强版的 100.64.0.0/10 ),路由器 WAN 口和上网查到的是同个 IP ,NAT 类型也是 A/宽松 /优秀,只不过同一时刻别人也在用。

2.如果真的是共享公网地址,那就必然会提到外部访问,而共享的肯定会冲突。虽然各位提到很多避免冲突的问题,撞协议其实在某些时候并不是少数。如 SSH 、RDP 和 VNC 。我举个例子,有人发现自己是 100.64 ,然后申请公网,一开始运营商二话不说给了这种共享公网,客户一时间根本看不出异常,除非要外部访问时,那才会发现——SSH 密钥不通过、RDP 登录死活是密码错误,或者 NAT 网关丢包。有点电脑操作水平的话会继续排查,很快就会发现连的是别人的机器(或者是机器始终没有收到请求),继而马上知道这个公网是假的 /被共享过的,然后再向运营商投诉时,才会被分配到独享全端口(除 80 等)的,广义上的「公网 IP 」。

3.我同意 @mikewang 的观点,大家缺的可能就是开放端口。很多地方即使是内网,NAT 类型也是 A ,如果一部分人有外部访问的需求,申请公网 IP 的步骤就换成申请开放端口,路由器啥的 DDNS 靠检测网页上返回的 IP 而不是接口 IP 来更新,然后在这个公共 IP 上分配 100 个独享端口啥的,这样的话就能解决不少问题。我自己也有公网,但是常用到的端口也就那么十几个。

目前尚未得知这套方案是否已经大范围部署,也不知道冲突时运营商的网关是怎么处理的,就比如 @cnbatch 的假设:“假设某个假公网(假设是 123.45.67.89 )后面有 3 个 3389 (都是 Windows 远程桌面),那么外界某台机器发起请求,连接到 123.45.67.89:3389 的时候,应该连后面的哪台机器?”

不过运营商狡猾得很,干出啥都不奇怪。我家前几天免费升级电信千兆,装好了公网掉了,去测速,选了个美国洛杉矶的服务器,电信出国慢是众所周知的,结果也给我跑了 900 多 Mbps ,Speed test 延迟也是 170 左右,看上去没问题,而打开资源监视器一看,发现测速 IP 全是天津电信机房,估计是劫持 DNS 吧,真的闸总。第一时间确实把我骗过了,随后马上想到电信出国不可能这么快,于是才发现异常。但凡它装的像一点,装模作样跑个 200M ,我都不会去怀疑了。
第 2 条附言  ·  2022-08-29 10:38:55 +08:00
补充说明:
据说这套方案早已经部署了,如果不是这张图,可能没人能发现,怪不得会出现“有时候连不上,过一会又好了”的灵异现象。

wuosuper 说:“至于探测,老用户是没法探测的,只有新装宽带的用户在前一周内可以探测,并且经过多年迭代体验与真实 IP 无异。厂商并不想推这项技术,是某地运营商要他们做的,后来被各地运营商看中,并且已经已经部署了 40+城市。”

假到足够以假乱真时,是不是就可以把它当成残血的正牌货了?
248 条回复    2023-07-19 14:54:41 +08:00
1  2  3  
wwbfred
    201
wwbfred  
   2022-08-30 01:59:23 +08:00   ❤️ 1
@wuosuper 而且那个复制 SYN 的脑溢血方案都能上线,你告诉我"第三方测试也不是随便过的,如果存在你说的低级安全问题那必然运营商不会采购",可有半点说服力。只有不搞黑箱,用户才有可能相信。没有用户会选择相信一个放在这么底层的不明设备。
SenLief
    202
SenLief  
   2022-08-30 05:07:47 +08:00 via iPhone
这个算不算黑箱呢?不算,应该算是网络基础操作。应该很久之前就有这种操作了,类似于没有共享公网 ip 的 vps 。
sirlion
    203
sirlion  
   2022-08-30 08:40:45 +08:00
@Argon 论坛的事,上微博挂人了啊?可以的
kkocdko
    204
kkocdko  
   2022-08-30 09:24:17 +08:00
我感觉我被 @wwbfred 说服了。。。
Marionic0723
    205
Marionic0723  
OP
   2022-08-30 09:29:02 +08:00 via Android
@SenLief 但是 VPS 会明确告诉你分配到的是内网地址。我觉得楼上吵起来的原因主要有一点就是,这个技术是否真的给人带来方便?
而现在,这套方案对小白和部分不在意稳定性的极客很友好,运营商也节省了公网资源。除了资深大佬,因为发现有玄学连不上问题,debug 半天恐怕才能发现是公网被共享过,而运营商根本没有告知用户,现在有公网的都不敢肯定自己的公网到底是不是独享的。
paramagnetic
    206
paramagnetic  
   2022-08-30 10:06:37 +08:00   ❤️ 1
@wuosuper 曾经没有 switch 而是 hub 的时代,也是可以抢答窃听的。比 PON 还方便,连听 backscattering 的高灵敏度收发机都省了,大家也这么过来了。核心问题不是运营商必须实现什么水平的 L1-L3 安全性,而是不应故意放任用户产生错误认知。
我个人也不认可三方测试,在利益和实际需要驱动下,人什么都干得出来,参考沙利度胺和 737 Max 事件。如果说药物和飞行器实在太过复杂,非专业人员难以评价的话,底层网络架构和协议多少年来都是靠标准化,透明化来实现安全的,为什么到了 NAT4444 就成了个必须保密的黑匣子了呢?我觉得具体实现可以是专利,但是系统的行为总应该成为一个公开的标准,就和(几乎?)所有别的网络设备一样。
laozhoubuluo
    207
laozhoubuluo  
   2022-08-30 10:10:52 +08:00
@jousca 100 一个地址一个月属于滥用市场支配地位的级别了。不考虑运营商现有的地址库存,采用全租用模式实现向用户分配公网 IP 地址的话,目前一个 C 的租用价格 1.5 万元一年算高于市场价的级别了所以很好租到地址,最便宜见过这个价格的五折。算 1.5 万的高价就是每个用户实际可用地址(每个 C 有 253 个)一年 60 元不到,一年 120 元的话相当于两个高价地址的成本,只要利用率高于一半那么这个价格是绝对有得赚的,如果能按照一万元租到一个 C 那就是血赚了。

@msg7086 只要运营商不管 PCDN 的话,估计大把愿意交易的。

@Archeb 感觉还需要增加用户通过网站、客服热线等渠道配置,完了 RADIUS 下发需要做映射的端口或者端口段的功能。自建 NAS 上跑的大量服务平台就是依赖于端口号固定但可以修改为非默认的,另外还有些游戏、应用需要依赖开启特定端口或端口段才能正常运行。

@wuosuper 1. 如楼上所说,需要增加用户通过自服务网站或者客服热线等渠道手动配置的功能。2. 理论来说最好是由用户路由器自行上报需要的端口段、以及动态上报 UPNP 新生成的映射关系,不过考虑到没有标准化这个很难做。
Archeb
    208
Archeb  
   2022-08-30 10:46:52 +08:00
@laozhoubuluo 你说的自行上报有标准,就是 RFC6970 Universal Plug and Play (UPnP) Internet Gateway Device - Port Control Protocol Interworking Function (IGD-PCP IWF) 这也是我说的“理想方案”的基础

RouterOS 不支持这个功能,然后 miniupnp 应该是支持的。
laozhoubuluo
    209
laozhoubuluo  
   2022-08-30 11:01:20 +08:00
@Archeb 了解了。其实运营商实现这个就能解决很多问题了。
非要省事搞端口段静态分配,完了心情不好再搞点 QoS 策略、PPS 限制,把可以接受 CGN 的用户弄的也得搞个公网 IP 绕限制。
lxr760
    210
lxr760  
   2022-08-30 11:32:37 +08:00
@wuosuper 至于探测,老用户是没法探测的,只有新装宽带的用户在前一周内可以探测


为什么这个探测老用户无法 新用户只能前 1 周
fofo
    211
fofo  
   2022-08-30 12:09:17 +08:00
@lxr760 估计是一种学习机制,学习后可以实现不同入站端口用户的分组。
Damn
    212
Damn  
   2022-08-30 12:11:36 +08:00
@fofo 那用户改端口或者行为模式不就和这个分组不匹配了?
laozhoubuluo
    213
laozhoubuluo  
   2022-08-30 12:39:01 +08:00
@Damn 毕竟不是每个用公网 IP 的都需要映射。之前的帖子里说的是例如一个 IP 给 8 个没有端口映射需求的用户和 2 个有端口映射需求的用户,那么实际上只有这两个用户之间有可能会冲突,概率就低很多了。如果实在是分配不了,一般重新拨号换个 IP 就能解决。大不了软件再改改,如果多个端口都分配失败就把用户踢下线让用户强制更换地址。
FlyingShark
    214
FlyingShark  
   2022-08-30 13:25:39 +08:00
@wwbfred tag #死磕派#
cnbatch
    215
cnbatch  
   2022-08-30 14:09:00 +08:00   ❤️ 1
@sirlion 是另一个讨论贴《运营商改造为 IPoE 的优势与劣势以及 IPv6 的安全性问题》( https://www.v2ex.com/t/875762 ) 在微博和各个论坛传播出去了,于是有不少人顺路过来看。
tia
    216
tia  
   2022-08-30 14:56:38 +08:00
公网 ip 现在还有啥好讨论的,目前 ipv6 普及率那么高,我就想问目前的 ipv6 有什么需求是解决不了的,不要说什么路由不好,大部分人要公网的需求就是能从外部访问到内部。
Karolinska
    217
Karolinska  
   2022-08-30 16:59:51 +08:00
有一个好办法,电脑 PPPoE 拨号后用 WireShark 抓包,如果可以侦测到一些类似随机的端口扫描入站申请(比如 22 端口,MySQL 等),那应该就是全端口的公网 IP 。
laozhoubuluo
    218
laozhoubuluo  
   2022-08-30 17:20:21 +08:00
@tia 太多了,BT/PT 有不少 v4 Only 的节点,两边都没有公网 IP 就没法互相传输数据。另外企业内网很多都不支持 v6 因此从单位连回家必须公网 v4 地址连接,别跟我说为啥企业不改,有几个企业内网改了双栈的。
tia
    219
tia  
   2022-08-30 17:35:03 +08:00
@laozhoubuluo #218 专业玩 bt/pt 都买盒子去了,家里那点上传就算了,偶尔下载下还行。公司的话可以用手机,移动数据网是 v6 覆盖率最高的
laozhoubuluo
    220
laozhoubuluo  
   2022-08-30 17:40:02 +08:00 via Android   ❤️ 1
@tia 那您可想多了,运营商给的这三五十兆的上行玩 pt 的人不少,再一个用盒子养号又不代表人家不直接下载。另外说手机流量的,您给报销流量费吗?除非您念个咒语一下子全世界网络和所有节点都变成 v6 的节点了,否则这就是一个字浪费三个字节的废话。
lambdaq
    221
lambdaq  
   2022-08-30 17:42:39 +08:00
好家伙。。。。

其实用纯 raw ip 包发一个过去就暴露了。端口是 tcp/udp 概念。ip 层没有端口。
wangyuyang3
    222
wangyuyang3  
   2022-08-30 17:45:13 +08:00 via Android
@tia @tia 上面几个回复说得很明白了。从外到内的可达性,具体需求太多元了,因人而异。自己玩玩随便折腾,但涉及到重要场景,ipv4 绝对是首选。

这几年用公有网盘分享工作资料,因为文件性质的问题,出现太多误识别的问题莫名被 ban 。这两年我已经完全转变传输方式,配合 200M 上行宽带,以内网部署的网盘直接面相客户传递大文件资料。

工作场合要保证绝对的严肃性、通用性、稳定性,关键在于可预测性,不能担保对端客户一定支持 ipv6 吧?也不可能每次给新的人传文件都问对面的网络环境吧?毕竟,我开这个内网服务,最最本质的诉求是代替公有网盘,追求的最终效果是对端无脑开箱即用啊。
lambdaq
    223
lambdaq  
   2022-08-30 17:46:48 +08:00
其实对于主动发起流量的设备来说,公网 or 非公网影响不大。

但是对于需要监听的人来说,区别大了去了。我觉得这是网络阶级划分。。。

监听的权利,等于和未知世界联网的权利;

只能主动发起请求的地址,属于二等公民,只能去访问别人限定好的一个 peer 。
tia
    224
tia  
   2022-08-30 17:48:31 +08:00
@laozhoubuluo #220 不是,为啥这么冲。因为我就是玩 bt 的,圈子里玩 pt 的也都是盒子,没见谁专门在家里玩,偶尔自己在家下个啥东西,大部分都是自己盒子下好直接从盒子往自己电脑拉,总比自己电脑直接 bt 快。说到在公司连回家,你是有啥高强度高流量需求吗,我顶多就是登录一下家里的 openwrt 。
tia
    225
tia  
   2022-08-30 17:52:10 +08:00
@wangyuyang3 #222 v6 普及后楼主说的大部分跟风申请 v4 公网的需求基本都能解决了
tia
    226
tia  
   2022-08-30 17:53:42 +08:00
剩下的比如你说的稳定性之类的,我觉得申请个 v4 公网也不会有多稳定,真刚需建议购买专门做这方面的产品
Damn
    227
Damn  
   2022-08-30 18:13:59 +08:00   ❤️ 1
还有一个问题大家可能有意无意地忽略了,被 ban ip 可是殃及池鱼啊。也就是现在论坛少了。
cnbatch
    228
cnbatch  
   2022-08-30 18:28:23 +08:00 via Android   ❤️ 1
@tia 还有个特殊原因。

自前几天《运营商改造为 IPoE 的优势与劣势以及 IPv6 的安全性问题》在各大网站传播,就有小白和半桶水说,IPv6 查房可以精确到家,而以为 IPv4 因为地址是共享了的,所以查起来就没那么精确,从而“抵制”IPv6 。

他们甚至丝毫不知道运营商在 IPv4 的当下早就已经保留 NAT 转换日志,一样可以精确查到家。

显然这群小白依然以 IPv4 的角度去理解 IPv6 的分配方式。
laozhoubuluo
    229
laozhoubuluo  
   2022-08-30 19:46:24 +08:00
@tia 冲是因为您的言论暴论过度了,不考虑很多人的实际需求就盲目否认 IPv4 的价值。要换成 IPv6 出问题,大家来一句出问题的买 NAT 机器啊,将心比心也一样不好受。
先不说 BT/emule 这些很多都是在家玩的。我特意发了个调查统计了一下 PT 下载买盒子的比例,玩 PT 且买盒子的大概占 50% ,但是相对玩的深入的配置盒子的比例确实很高,这个可以说是圈层不同的偏差。
另外不同人对连回家的概念确实不同,我这边是长期有远程桌面回家的,而且拽文件也偶尔干。另外看楼上说的公有网盘质量问题导致必须建设私有云的也不少(我也认识好几个搞私有云的朋友),自然也需要公网 IPv4 做。

讲"跟风申请 v4 公网" 那是不知道有的地方 CGN 配置有多烂。要换成 IPv6 加个限制每个 /60 只能发起两千个会话超出不许新建(一般 CGN 限制端口在 1000 - 5000 个,会话数也是几千个),再加个每秒钟每个 /60 限制 1000 QPS ,超出限制了大家也来一句可以自己买 NAT 机器,将心比心也一样不好受。
"我觉得申请个 v4 公网也不会有多稳定" 这又是一句暴论了,不考虑楼主说的假公网 IP 其实在接入层 IPv4/v6 就是在同一台设备上运行,何谈 v4 公网和 v6 公网来比较稳定呢?
tia
    230
tia  
   2022-08-30 20:08:03 +08:00
@laozhoubuluo #229 首先没有否认 v4 的价值,其次我那句不会有多稳定是回上面那位的"工作场合要保证绝对的严肃性、通用性、稳定性,关键在于可预测性",最后我的回帖是针对楼主提出的"跟风申请公网 IP 的小白的",这部分用户就是我说的"能连回家就行",我从 2016 年全国开始推 v6 就关注了,啥坑心里都有数的,所以咱两可以到此为止了,争论真的是多余的。
SenLief
    231
SenLief  
   2022-08-30 20:08:15 +08:00 via iPhone
@Marionic0723 我之前看过宽带的协议,以及没有给公网 ip 了,大趋势就是公网会逐步的全部回收回来,ipv4 大内网的趋势基本上无法阻挡。如果能确定这种端口的其实也很不错了。不过目前自己用比较友好的还是 ipv6
laozhoubuluo
    232
laozhoubuluo  
   2022-08-30 20:51:13 +08:00
@SenLief 运营商想法是运营商想法,不代表大家就得忍着。运营商还想大家把每月工资直接转给他呢,可能么。
一个月几块钱成本的地址都不愿意给,在这里搞各种手段当然要被骂的。
Marionic0723
    233
Marionic0723  
OP
   2022-08-30 20:55:55 +08:00 via Android
@Archeb openwrt 的 miniupnpd 检测到外网接口是非公网 IP 会出错。除非这玩意改代码。

@tia 用 ipv6 上谷歌的刚刚 40%,很多环境就不给你 v6 用,比如公司网络和校园网。而 v4 肯定正常。
fofo
    234
fofo  
   2022-08-31 12:01:52 +08:00
@Damn 猜测学习应该是个持续过程,而且应该对 tcp 协议的特性也进行了学习,然后不断的对冲突进行重新分组就行,实在分组不够了,加点 ip 到 ip 池就行了。
MNIST
    235
MNIST  
   2022-08-31 21:39:54 +08:00
@xxfye 可是问题是你还有设备的投入啊,你还有电费啊,你的利润是 5 块,减去成本以后还有多少呢?现在普通人玩 PCDN 就是给这些 xx 云白打工,能赚回一个宽带费已经了不得了,还得天天提防着运营商的人来上门查 PCDN ,要是停了宽带还得去签保证书,取签保证书来来回回浪费的一天时间够赚多少钱了,量小的普通家宽算上设备电费精力等各项成本根本就赚不到太多钱,一个地址拉几十条宽带的人全部都是运营商里面有人,能搞到廉价带宽,不然普通人一家里几十条宽带,网管中心一眼就能看出你的流量不对,上面绝对要派人下来查 PCDN 。总之,一句话,只要想查,流量模型不符合家庭宽带的流量模型,符合商用宽带的流量模型,这种就是一查一个准。
libinglong9
    236
libinglong9  
   2022-09-01 11:07:06 +08:00 via iPhone
竟然
@lcy630409 钻牛角尖这种词不是乱用的,更不应该给真正发现问题的人用,十分的不尊重别人,如果不是有这样的"钻牛角尖"的人,就不会有现在稳定可用的网络。钻牛角尖和严谨有本质的差异。忽然想起来宝莲灯里面二郎神说他侄子沉香的话:肯定是每次练功的时候都是差不多,差不多,关键时刻就总是差一点,差一点。中国人的劣根性,可悲。
lcy630409
    237
lcy630409  
   2022-09-01 11:26:24 +08:00   ❤️ 1
@libinglong9
请不要再 at 我 还有这种说不了 又引申到其他方面的
我的主张就是 运营商会大面积使用 就证明这套系统的可用性 安全性非常高
其他人 老担心这这哪哪的 请给出详细报告 和 实际体验出来,臆想出来的安全问题 和建议火箭烧煤一样的道理
libinglong9
    238
libinglong9  
   2022-09-01 11:28:42 +08:00 via iPhone
我不会再 @您,只希望中国人不骗中国人,好吗?
acaiplus
    239
acaiplus  
   2022-09-01 15:15:40 +08:00
坐标江苏南通

基本可以认定这里的联通是用了这个技术,因为经常要重新拨号好几次才会重新拿到新的 IP ,并且即使路由器重新拨号后去 ping 这个公网 IP ,还是能通的。目前自己开放有 10 个端口,都是非标端口,使用起来和真的 IPV4 没有任何区别。每次连接起来也很顺畅,并没有出现“自己连接到了别人的服务上”的情况。当然没有试过 4899 ,3389 和 22 这种标准端口。相信大部份人在互联网上暴露端口的时候也不会直接使用标准端口吧?
piku
    240
piku  
   2022-09-03 00:02:56 +08:00 via Android
你们都在说 TCPUDP ,但我想知道这套东西对其他协议怎么处理的,比如协议 4 ,这种没有端口的会不会一下子就测出来了?
koloonps
    241
koloonps  
   2022-09-03 11:40:17 +08:00
@acaiplus 3389 端口我现在就在使用,联通有一点很奇怪 3390 端口经常出问题.感觉现在这个方法其实是没有什么问题的.我老家直接就不给 ipv4,甚至还发了通告之前有的都要下.......
yutian12345
    242
yutian12345  
   2022-09-03 15:43:23 +08:00
怎么测试呢
zhhww57
    243
zhhww57  
   2022-09-19 16:53:19 +08:00
我感觉可以做探测,比如向 rdp 的 3389 请求,同时发给旗下所有的这个公网 ip 机器的机子,然后谁先发返回包,然后就和那个 ip 地址的端口号产生通讯
CrazyBoyFeng
    244
CrazyBoyFeng  
   2022-10-05 16:38:46 +08:00
@piku
大多数没有端口的协议(比如 icmp )没有可以用来分辨用户的应用层特征,所以我估计并不会下发给用户,而是直接应答回复。

@yutian12345
piku 的思路提醒了我,测试假公网其实有个简单办法,对小白也很友好:
pppoe 连接状态下记住你的“公网”ip ,断开连接(无论是断开 pppoe 还是物理断开都可以),然后迅速用另外的网络设备(如手机) ping 那个“公网”ip ,能通就是假公网,也就是共享公网。
100240v
    245
100240v  
   2022-12-14 01:08:46 +08:00
@CrazyBoyFeng 照您这个方法试了,上海联通假公网,电信真。现在上海电信公网很难申请,联通容易点,果然有猫腻
ihdbch
    246
ihdbch  
   2023-02-10 13:17:54 +08:00 via Android
@CrazyBoyFeng 哈哈哈,网友们太牛批了
username1919810
    247
username1919810  
   2023-03-03 23:21:25 +08:00
@CrazyBoyFeng ping 了之后直接 Destination port unreachable 是什么情况。。PPPoE 还连着呢
qiseniguang
    248
qiseniguang  
   280 天前
= = 其实撞车概率应该不高吧。正常人谁会开放那几个端口啊。
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3589 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 04:53 · PVG 12:53 · LAX 21:53 · JFK 00:53
Developed with CodeLauncher
♥ Do have faith in what you're doing.