关于某墙的端口封锁

2012-12-22 20:57:52 +08:00
 plan9
最近看到好多人发帖说到墙会封锁端口,个人感觉这个端口应该不是墙干的,而是你的服务商干的

因为好多服务商提供给你的都是一个局域网的ip,而公网ip是由好多人共有的,但是一个ip只能有6万多个端口,所以如果你长时间使用某个端口的,可能会被你的服务商切断连接,或者你所在的ip已经使用了超过单个ip最大端口数也会被切断连接

判断是否是这种原因的话很简单,过一段时间再连接同样的端口试试,如果可以连接的话应该就是这个问题

比如你用浏览器去下载一下大文件,经常出现下着下着就断了的情况,这种情况也有很大原因是你使用的是局域网ip

而对于最近这次墙的升级,个人感觉改用udp的openvpn应该会有一定的作用,不过这个我没试过,不知道是否准确,大家被封的vpn都是什么类型的?
11262 次点击
所在节点    奇思妙想
74 条回复
lwjefSub
2012-12-22 21:04:27 +08:00
不对,就算不独立端口也不是独占的,再说分明都有独立IP。
cabbala
2012-12-22 21:06:36 +08:00
你是说一个局域网只能并发60000+ 噗
ericFork
2012-12-22 21:07:33 +08:00
可惜事情不是你感觉的这个样子的……

1. 作为代理服务商,大量事实证明,并非端口占用导致的……

2. UDP 的 OpenVPN 封得更惨……
cabbala
2012-12-22 21:14:11 +08:00
Q:单IP做NAT能支持多少并发连接呢?
A:65535

这个答案是错的
hemingway
2012-12-22 21:16:15 +08:00
学习了
plan9
2012-12-22 21:18:46 +08:00
@lwjefSub 大多数都不是公共ip吧

@cabbala 不要噗...这个很伤人的...而且理论上是6万个TCP连接啊

@ericFork 我说的不是vpn被封,而是有人反映端口被封,但是换个端口就可以继续使用了,感觉这个有很大可能是我说的原因,至于udp的也被封的很惨就是我猜测的错误了...
cabbala
2012-12-22 21:31:12 +08:00
@plan9 真的不是,否则NAT网络很悲剧的,你应该看下NAT原理。

只有在NAT网络中的所有机器用同样的协议访问同一个IP的同一个端口时,最大连接数是6w。。。
terry0824
2012-12-22 21:33:53 +08:00
@plan9 至少据我所知北京联通ADSL都是公共IP。
clino
2012-12-22 21:36:42 +08:00
sinxccc
2012-12-22 21:43:33 +08:00
楼主的大部分猜想是没什么技术根据的,不过第一句部分是对的。

运营商确实有封端口的行为,只不过运营商封锁端口的话,是这个端口根本就无法使用,行为跟墙不一样,很容易区分。

比如说大部分运营商会封锁80端口的上传,部分运营商一段时间内封锁过 PPTP 的端口。
cabbala
2012-12-22 21:43:38 +08:00
NAT的问题,lz我举个例子吧

假如NAT下有两台机器 192.168.0.2 192.168.0.3
他们分别从源端口8888访问不同的主机1.1.1.2和1.1.1.3的88端口

lz你觉得这两个链接是互斥的么?实际不是的。因为识别一个包有五要素:
源地址,源端口,目的地址,目的端口,协议

在这个例子中,NAT做地址转换只是将源地址修改为NAT的对外IP,那么在这个例子中,源地址,源端口,目的端口和协议这四项两个包都是一样的,但是由于目的地址不一样,所以两个包是可以区分的,不互斥。。
plan9
2012-12-22 21:57:30 +08:00
@cabbala
192.168.0.2 192.168.0.3 公网ip是1.1.1.1

他们发出去的包
192.168.0.2源地址1.1.1.1,源端口8888,目的地址1.1.1.2,目的端口88,协议tcp
192.168.0.3源地址1.1.1.1,源端口8888,目的地址1.1.1.3,目的端口88,协议tcp

那样的话不是就变成了1.1.1.1跟1.1.1.2建立连接,1.1.1.1跟1.1.1.3建立连接
然后就是1.1.1.1转发给0.2,0.3

他们不是应该使用两个端口吗?

我nat确实不大懂...这样理解错在什么地方啊?
plan9
2012-12-22 22:44:16 +08:00
@cabbala @sinxccc
找到技术根据了,
google了一下,确实nat只能理论支持最大同时65535个连接数
原文在这里http://itpro.nikkeibp.co.jp/article/COLUMN/20090525/330579/
不过是日文的

linux确实可以通过修改文件描述符增加,不过一般没有人改这个东西吧
cabbala
2012-12-22 23:26:28 +08:00
@plan9 你知道一个大型NAT网络有多少用户么,有多少连接么。。

以我们以前的学校为例,最少有几千用户同时在线,而出口只有三个IP。每个用户一般得近百连接,开P2P上千也很正常

要是最大65535并发连接,那这个网络还怎么用?

你Google的方法不对,重新Google吧。。。网上中文的最少有三篇,英文的不计其数。。。
cabbala
2012-12-22 23:44:59 +08:00
其实这个问题可以换成下面的问题:

一台http服务器只有一个80端口,为什么可以同时和多台client同时通信?

lz想明白这个问题,就能想明白上面的问题了。
clino
2012-12-22 23:47:58 +08:00
@plan9 对nat没仔细研究过,刚看了 http://baike.baidu.com/view/16102.htm 里的'NAT工作流程',对你的疑问"他们不是应该使用两个端口吗?"的解答应该是在外界看来,这两个连接确实是从1.1.1.1的同一个端口发出的,但是1.1.1.1收到两个连接的包确实可以分别送回内网不同的ip,因为之前"NAT 主机并且会记忆这个联机的封包是由哪一个client 端传送来的"
plan9
2012-12-23 00:15:25 +08:00
@cabbala
所以说大型nat网络经常会出现连接中断的问题啊
那你们以前学校为什么几千个用户就用3个ip,一个不就行了?

http://www.360doc.com/content/07/0816/17/26398_676992.shtml
http://wenku.baidu.com/view/36bedf40336c1eb91a375dca.html
https://www.cpug.org/forums/nat-network-address-translation/6013-number-connections-behind-hide-nat.html

一台http服务器只有一个80端口,为什么可以同时和多台client同时通信?
这个我可以很确定的告诉你,80端口只是连接的时候使用,然后服务器会新开一个端口跟客户端进行通信

@clino
1.1.1.1跟两台机器进行通信的话肯定会使用2个端口的,当然这里的端口只是文件描述符,你不可能一个端口同时跟两台机器进行通信把?
wwwjfy
2012-12-23 00:40:54 +08:00
查了一下没找到1个ip是否可以有超过65535个端口,虽然我猜对于路由这种配置不会太难

问题是如果端口已经用完,应该是移到下一个可用的ip,或者新连接无法建立吧,不觉得应该切断已有连接

过段时间连接同样端口成功就认为是这样的原因也比较武断,可能性不止这一种。至少GFW可能封一段时间会解封,比如访问google就是这样

另外,除非有什么特殊事件,用户不会一下子猛增,运营商应该有这种准备,应该会有好多备用ip,而且工作着的ip也不应该是满负荷的..
binux
2012-12-23 00:45:34 +08:00
@plan9
192.168.0.2源地址1.1.1.1,源端口8888,目的地址1.1.1.2,目的端口88,协议tcp
192.168.0.3源地址1.1.1.1,源端口8888,目的地址1.1.1.3,目的端口88,协议tcp

首先,只有192.168.0.2/3能发起到1.1.1.2/3的请求。
现在192.168.0.2/3开始发包,它各自声明目的地是1.1.1.2/3:88,ok,没问题
现在1.1.1.2/3开始返回,因为它看不见192.168.0.2/3,它只能发往1.1.1.1:8888

问题来了,1.1.1.1怎么知道应该把1.1.1.2/3的两个包发给谁
很简单,因为1.1.1.1知道192.168.0.2发起的是到1.1.1.2:8888的连接,那1.1.1.2:8888返回的包肯定是给192.168.0.2
over
wwwjfy
2012-12-23 00:50:07 +08:00
@binux 那如果目的地址一样呢..

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

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

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

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

© 2021 V2EX