我的 Linux 机器上运行的 Ventrilo 服务器软件出现了一个奇怪的问题。如果我将服务器连接到本地网络内,消息就会一直滞后等等。但是,在我的网络外加入服务器的用户不会遇到任何问题。
所以问题是,我如何欺骗本地网络内的软件,使我看起来像是从外部网络加入的。我是否需要在某些外部网络机器上运行一些代理?有人提供这种服务吗?
所有问题都是在我更换路由器时开始的,所以我猜这与新路由器有关,但我没有通过更改路由器设置找到解决方案,所以我尝试用其他方式来解决这个问题。
答案1
您是通过 IP 地址还是主机名进行连接?如果通过主机名,则可能解析为路由器的外部公共 IP 地址,在这种情况下,它会尝试通过路由器进行路由。如果通过 IP 地址,您使用的是本地网络上的服务器地址,还是路由器的公共 IP 地址?
您可以设置内部 DNS 服务器,使其在您从本地 LAN 连接时返回内部 IP 地址,而不是返回路由器的公共 IP 地址(公共 DNS 提供)。
否则,您可能需要在路由器中设置适当的“环回” NAT 规则,以便来自内部客户端的到达外部地址:端口的流量被路由到内部服务器,并且来自内部客户端的流量似乎来自路由器的外部地址(反射规则)。
这样做的安全隐患在于,在服务器上的访问日志中,您将无法解析哪个内部客户端正在何时建立连接。
第二个问题:您是通过 IP 地址还是主机名连接的?如果通过主机名,则可能解析为外部
答案2
您不会是无意中将内部流量路由到外部接口吧?如果使用服务器的内部地址时问题仍然存在,则不应该如此,但您提到对路由器进行了更改。
唯一想到的可能是服务器上是否有某种复杂的 iptables 规则集或环境因素,例如交换机或网络电缆旁边的风扇?您需要隔离问题,听起来问题可能与您的游戏机或网络连接有关,而不是路由器。
答案3
你在路由器上启用了 QOS 吗?
另外,您的拓扑结构是怎样的?假设 1 个服务器 2 个客户端通过路由器连接?也许一些交换机?