结论
电脑(Windows)上有一个端口打开了,我不知道为什么(如何关闭它/如何打开更多)
背景
暑假期间,我不得不在我的 PC 和家用路由器(端口 54350)上设置端口转发,一切正常。几个月后,我回到了大学,但由于学校网络不允许我设置端口转发,我认为我无能为力。几天前,我再次启动了需要端口 54350 的程序,令我惊讶的是,它居然可以正常工作。但问题来了……
问题
我不明白为什么端口 54350 开放,但其他端口却不开放。
尝试的解决方案
我最初的推断是,既然这个端口在我家和学校都开放,那一定是我电脑的设置问题。因此我查看了 Windows 防火墙,发现高级设置(入站/出站规则)中没有 54350 这个数字,打开网络发现后,端口 80 开放,但其他端口(除 54350 外)均未开放。
然后我尝试在 Google 上搜索导致此问题的原因,但我能找到的只有“允许程序通过防火墙”和“在高级设置中设置新规则”,这些我都试过了(我也试过关闭防火墙)。也没用。其他来源提供了在路由器上设置端口转发的教程,但这不是我想要的(我只是想知道为什么这个端口是开放的,以及如何开放更多端口)。
我认为我在这里遗漏了一些明显的内容(但很可能不是),因此将不胜感激任何帮助。
编辑
抱歉,我的问题没有说清楚。我的意思是,在我家的路由器上配置端口转发部分后(在此过程中使用当前 PC),端口 54350 是我 PC 上唯一打开的端口(至少当我将其插入学校网络时),因此无法访问其他端口。学校网络可能不会无缘无故地打开这个端口,所以我推断我的 PC 必须有一些设置可以“通知”学校网络转发端口 54350。我不知道是什么设置可能导致了这种行为。
答案1
先澄清几件事。你最初在家用路由器上设置了端口转发,几个月后又回到同一个路由器,你仍然看到相同的端口转发生效,对吗?这并不奇怪,除非路由器被更改、重置或发生其他事情,否则它仍然具有与你离开学校时相同的配置。
至于您的 PC,PC(客户端)不进行端口转发,而是打开一个端口并附加一个侦听进程(服务器程序)。您可以使用内置程序netstat
查看哪些端口已打开(但它不考虑防火墙)以及哪些进程正在侦听该端口。
基本上,只要某个进程请求打开某个端口并且有权限这样做,端口就会在您的 PC 上打开。另一方面,路由器不会转发端口,除非有人要求这样做(当然,假设它是 NAT),就像大多数家用路由器一样。
至于学校网络,那么您无法让任何外部计算机连接到您的计算机(除非通过 TeamViewer 等第三方连接),对吗?这也不足为奇,因为该网络完全由学校网络管理员掌控,他控制着通过该网络传输的内容。
希望这能清楚并解决您的困惑。
编辑:
即使您从外部看到端口 54350 是开放的,也并不意味着它会路由到您的计算机。校园网络可能有一个通向外界的 IP 号码,然后有一个路由器(或可能不止一个路由器)将所有传入和传出的流量路由到校园内的客户端和服务器。这称为 NAT(网络地址转换)。它基本上将校园内的所有计算机隐藏在一个 IP 地址后面。因此,当您使用外部扫描仪检查您的开放端口时,它会扫描公共 IP 地址并看到该端口是开放的(它不知道它连接到什么)。即使您的计算机意外使用了相同的端口,也并不意味着如果外部源连接到学校公共 IP 上的端口 54350,它就会连接到您的计算机。也许网络管理员已将端口转发到该端口上的另一台计算机。