(我不确定超级用户是否是提出这个问题的合适网站)
我一直在为端口转发而苦恼,想了解一些基本方面:
- 我需要
27015
为游戏的专用服务器打开端口,因此我:- 将路由器上的端口转发
27015
至服务器 [192.168.xx.xx:27015
] 27015
Windows 防火墙中打开的端口
- 将路由器上的端口转发
- 当我扫描该端口已关闭并且 Windows 的资源监视器也显示它已关闭,但是当我启动我的应用程序时,该端口在这两个工具上都显示为打开状态。
端口转发的原理是什么?
- 是不是当我
27015
在路由器上打开时,WANIP:27015 是打开的,但是我必须从本地计算机通过给定端口来连接它? 27030
在我的计算机上打开端口并重定向是否也27015
能27030
起作用?
为什么服务器离线时端口没有显示开放?
- 要查看端口是否开放,除了让应用程序监听该端口之外,是否还需要打开该端口?
答案1
在我的计算机上打开 27030 并将盒子 27015 映射到本地计算机 27030 也可以吗?
是的。然后应将服务器设置为监听本地计算机上的端口 27030(并且应将本地防火墙设置为允许这样做),但远程客户端应连接到外部 IP 地址的端口 27015。
要查看端口是否打开,您是否需要打开此端口,此外还要有一个应用程序在后面监听?
是的。nmap
查看(端口扫描工具)的文档说这个:
open
应用程序正在此端口上积极接受 TCP 连接、UDP 数据报或 SCTP 关联。找到这些通常是端口扫描的主要目标。有安全意识的人知道每个开放端口都是攻击的途径。攻击者和渗透测试人员希望利用开放端口,而管理员则试图关闭或使用防火墙保护它们,而不会阻止合法用户。开放端口对于非安全扫描也很有趣,因为它们显示了网络上可用的服务。
关闭
已关闭的端口是可访问的(它接收并响应 Nmap 探测数据包),但没有应用程序监听它。它们有助于显示主机在 IP 地址上是否已启动(主机发现或 ping 扫描),并可作为操作系统检测的一部分。由于已关闭的端口是可访问的,因此可能值得稍后扫描,以防某些端口打开。管理员可能需要考虑使用防火墙阻止此类端口。然后它们将出现在过滤状态,下面将讨论。
有更多州被认可nmap
。您使用的网站可能会或可能不会区分它们(例如或许在内部确实如此,但也许它被设计为对任何未打开的内容打印“已关闭”)。我的观点是:监听应用程序的存在会产生影响,因此您的问题的一般答案是肯定的。
答案2
当你“探测”(缺乏更好的术语)IP:端口时,基本上会发生 5 种不同的情况:
- 没什么:连接只是“超时”,没有响应
- ICMP 消息,或者有几种类型(例如重定向或端口不可用消息)
- 已连接(Syn:SynAck 三次握手),但应用程序没有进一步动作。[“挂起”连接]
- 已连接,但应用程序除了稍后超时/断开连接外,没有任何反应。[例如,通过简单的 telnet 连接到端口 53 上的 DNS 服务器]
- 一次愉快的申请过程。:-)
您能得到什么取决于您走多远。
对于情况 #1,您遇到了路由或防火墙问题[某些防火墙配置为仅丢弃有问题的数据包。]
对于情况 #2,同样是多项选择:如果 ICMP 为“端口关闭”,则可能是防火墙或应用程序问题。对于“重定向”,则可能是路径中的路由器问题。
对于情况 #3 和 #4,要么您(源)没有使用应用程序所期望的协议,要么目标应用程序出现了问题。
回到 OP 的问题:最初,路由器并不关心目的地的状态。如果它们满足配置的要求,它们会很乐意按照要求在源和目标 IP:Port 之间建立连接。这就是为什么,即使您在路由器上设置了端口转发,如果您没有正确配置任何内部防火墙或在内部系统上启动应用程序,它仍然显示为“打开”。
当你这样做时,你会遇到案例#5:快乐的应用程序连接。
祝你好运。