我有一个外部 IP,我将它与服务分开连接,我需要转发端口,为此我在路由器中创建了规则:
当我开始测试时发现它们已关闭,我想起了防火墙,去了那里并为这些端口(https://prnt.sc/9g97lVNby8sK)分别创建了传入和传出的规则,这是最有趣的事情,它们仍然关闭,我使用 telnet 命令测试本地端口,这里我根本无法理解打开的规则,但它们在本地关闭,我试图关闭防火墙并将其扔到出厂设置 -它没有帮助(https://prnt.sc/MuFyE0FLZMnD)
我还为 PC 注册了静态,并在罂粟上进行了 IP 绑定,关闭了 SPI 防火墙
告诉我可能是什么问题
仅当某些程序正在侦听该端口时,该端口才“打开”。
3389
您在端口、3390
和80
上运行了什么程序443
?您已配置端口转发。没错,但需要在该端口上运行一些东西才能使其工作。
该过程如下所示:假设
25565
您的计算机上正在运行一个 minecraft 服务器(端口)。我想连接它,你给我一个 ip(例如125.112.52.26
,我输入125.112.52.26:25565
但没有任何效果。为什么?因为它
125.112.52.26
是您网络的IP。那是你路由器的IP。您的计算机并没有直接连接到 Internet,实际上,您连接到路由器,它会将您的请求发送到 Internet。收到响应后,您的路由器会将其发送到您的计算机,您会在浏览器中看到该页面。现在让我们假设我想连接到你的 minecraft 服务器。我写你的IP,我连接。请求到达您的路由器,但它必须由您的计算机与 Minecraft 服务器一起处理。
我的请求到达了路由器,而路由器不知道它的目的是什么。因此我的请求没有被处理,我会得到一个连接错误。
这就是端口转发(您在路由器中所做的事情)派上用场的地方。这种规则的任务,可以说是告诉路由器:“兄弟,如果有端口请求来了
25565
,用本地IP传给我的电脑192.168.0.103
,他们来找我了。” 现在,当我再次尝试连接到您的服务器时,路由器会显示:“所以,请求一个端口25565
,来吧,来吧,哦!这应该指向具有本地 IP 的那台计算机192.168.0.103
”,将传输在计算机上向您发出请求,并且在您的计算机上运行并负责运行 minecraft 服务器的程序将看到一个25565
请求已到达端口,对其进行处理,然后将答案返回给我。如果你不启动我的世界服务器会发生什么?
路由器将看到需要将请求发送到您的计算机,它会这样做。所以请求来到您的计算机,谁来处理它?操作系统会看到没有程序在监听 25565 端口,认为我的地址有误,然后我会再次看到连接错误。
因此,当您运行将侦听它们的程序时,您的端口将自动打开。
那么brandmauer呢?可以配置防火墙,
25565
使其认为没有人可以连接到该端口。因此,即使在您的 minecraft 服务器回复我之前,防火墙也会禁止我的连接。您可能有的另一个问题是:“那么我如何获得对站点请求的响应?” 此类查询在端口
80
和443
. 从来没有人打开过。怎么会这样?一切都很简单,您自己向 Internet 提出请求。为简化起见,它看起来像这样:您在浏览器中输入
https://ru.stackoverflow.com
。您的计算机向路由器发送请求,就好像在说“兄弟,你能告诉我这个站点吗?”,路由器向 Internet 发送请求,提供商在其中找到站点,向站点发送请求,网站发送一些结果(例如,主页)。他的回答会发回给你。来到路由器。路由器会记住是您询问了该站点,因此会将结果提供给您的计算机。浏览器会显示给你。如果您希望计算机将 CAM 发送到 Internet(例如某个站点),则需要路由器中的重定向
80
和端口。443
通常类似nginx
或的程序用于此apache
。但还有其他人。此外,完全没有经验的读者可能会有一个问题:“嗯,例如vk.com,它会立即通知我有新消息,所以它仍然向我发送有关新消息的信息,尽管我没有打开任何东西?”
实际上并非如此。您的浏览器不会收听 VK,直到它告诉您有新消息到达。相反,浏览器 CAM 每秒都会询问 VK“我收到新消息了吗”?它的工作原理与
stackoverflow.com
上面的例子相同,只是在后台。总之,我的回答是:一切看起来都不错,但是您运行的程序应该监听端口
3389
和3390
?