金闪闪 发表于 2005-8-26 23:17:57

Steam服务器列表的问题

2005.10.2更新范例:

首先了解下
UDP Timeout UDP失效时限,一般为300秒。在300秒内(5分钟),没有数据发送,这个UDP连接将终止。
NAPT Port Start NAPT转换起始端口号,一般为50000
NAPT Port End NAPT转换终止端口号,一般为52047

以Viking的ADSL为例子:
Viking的ADSL经过NAPT后,所有的端口都变化了。它将随机在50000~52047之间选择一个端口作为外网端口。
这里192.168.1.202是CS服务器的内网IP,220.110.122.142是ADSL的外网IP。
运行HLDS或则SRCDS,在console窗口出现:

Adding master server 207.173.177.11:27010
Adding master server 69.28.151.178:27010

这时通过ADSL的NAPT转换,变成了220.110.122.142:50109和220.110.122.142:50110。
84738474
Master服务器接收到2个数据包。并在数据库中登记了220.110.122.142的两个50109和50110端口。

随后,一些Steam客户端将通过220.110.122.142:50109和50110来访问你的CS服务器。

如果你在NAT设置的是这样的规则。
8475
很抱歉,你的服务器根本刷不出来。因为大家访问的是50109和50110端口。
如果是这样的设置。
8476
你的服务器可以刷出来,但是却刷出2个同样的服务器。因为大家同时访问到50109和50110端口。

如前面说的一个UDP连接的有效时间是300秒。如果你在5分钟内,重新启动了CS服务器,ADSL的NAPT又处理为50321和50322。
那么,将在Steam列表中看到4个CS服务器。因为UDP规则保留了50109和50110转换给27015。
当多次启动服务器后,大家就会看到某个服务器在列表中出现了多个相同的内容。

非Viking的ADSL猫,他们的NAPT转换遵循一定的原则,他们如实地把27015转为外网的27015。
因此这类ADSL很容易实现Steam刷新。并且不会出现类似Viking的多个服务器重复。

--------------------------------------------------------------------------------------
大家自己的服务器在Steam上刷不出时,总不知道问题出在那里。其实检查的方法很简单。
1、低版本2834是刷不到高版本的3213。
2、在console窗口中,务必使用setmaster查看Master服务器的IP。
3、通过"路由和远程访问"的“端口映射”就可以查看到27010的访问。
例如:
附图就可以看到本地的27017与远程的Master服务器27010建立了联系。
那么你的CS服务器必然在Steam列表。

当没有这些端口连接时,你的服务器就刷不出了。就必须查找并看看路由是否正常。

大家要注意的是,我给的图示是双网卡的服务器。设置正确的网关很重要。
例如,
本地连接   10.10.0.48 网关 10.10.0.1
本地连接2192.168.0.48 网关 192.168.0.1

从图中,大家应该发现 10.10.0.48 从 192.168.0.48访问Matser服务器。这样的访问存在一个问题。一定时间后Master服务器就会拒绝10.10.0.48的访问。CS服务器就从Steam列表上消失了。

因为Master服务器如果发现访问的数据不是从指定的2701x访问的,它会认为有人企图通过某个代理来攻击服务器,而拒绝并断开访问。

当服务器刷不出来时,用"路由和远程访问"查看下端口映射,就会发现,原来建立的27010的连接已经中止了。

只有保证专用地址和公用地址都为10.10.0.48访问27010才能让Master服务器接受正常的信息。

服务器运行时都在试图和Master服务器建立连接,因此如果采用了防火墙,多次访问后可能会被防火墙禁止。值得注意是,这些都是主动出站访问。

如果还解决不了,那一定是你使用的ADSL猫或则路由器的问题。

7797

BoeZombie 发表于 2005-8-27 00:02:18

顶上去~:spiderman

抓外挂出身 发表于 2005-8-27 02:00:23

:boss: 不错 ~~帮你顶~~

only33 发表于 2005-8-27 11:02:36

:tongue::tongue: 嗯。....一点都没错。.

不过我的方法更容易了。.直接看看CONSOLE里有没有出现两行
ADDING MASTER XX.XX.XX.XX:27010 就行了..

原本 发表于 2005-8-27 12:56:55

好!!!!!!!!!!

金闪闪 发表于 2005-8-27 21:48:02

哈哈,大家不要忽略这点。
即使在console窗口看到setmaster成功的信息,如果与Master服务器连接不通,
也就是端口映射没有#1楼的UDP 2701x 到 UDP 27010的连接,服务器是刷不出来的。
:boss:

tyreal 发表于 2005-8-27 23:20:20

呵呵这个帖子好呀,顶上去

undoer 发表于 2005-8-27 23:27:17

最近发现服务器有时无固会刷不到(开始是刷到的),需要setmaster add才能刷到。

tyreal 发表于 2005-8-27 23:29:17

Post by undoer
最近发现服务器有时无固会刷不到(开始是刷到的),需要setmaster add才能刷到。 这个我还没发现,不过我的服务器不怎么开,只要开就有人进嘿嘿

金闪闪 发表于 2005-8-28 00:22:30

我把图再说明下,大家学习交流下。:D
页: [1] 2 3 4 5 6
查看完整版本: Steam服务器列表的问题