可以访问公网IP端口,但不能访问私网IP端口

可以访问公网IP端口,但不能访问私网IP端口

我有一台在端口 8080 上运行 Web 服务器的 PC,在端口 22 上运行 SSHd。在我的路由器设置中,我已将端口 8080 转发到 80,并在我的域上设置指向公共 IP 的 ANAME 记录。我能够通过我的公共 IP 端口 80 和我的域访问我的网站。但是,我无法使用私有 IP 访问端口,也无法通过 SSH 进入 PC。这台 PC 配置了静态 IP。我该如何解决这个问题?

ss -tulpn编辑:根据使用请求,服务器上的输出是:

Netid     State       Recv-Q      Send-Q                               Local Address:Port           Peer Address:Port     Process
tcp       LISTEN      0           128                                        0.0.0.0:22                  0.0.0.0:*         users:(("sshd",pid=799,fd=5))
tcp       LISTEN      0           511                                              *:8443                      *:*         users:(("node",pid=1251,fd=21))
tcp       LISTEN      0           511                                              *:8080                      *:*         users:(("node",pid=1251,fd=20))
tcp       LISTEN      0           128                                           [::]:22                     [::]:*         users:(("sshd",pid=799,fd=7))

nmap -sV -Pn <server ip>客户端的相关输出为:

PORT     STATE  SERVICE         VERSION
22/tcp   open   ssh             OpenSSH 8.3 (protocol 2.0)
8080/tcp open   http            Node.js (Express middleware)
8443/tcp open   ssl/http        Node.js (Express middleware)

编辑:网络草图: 网络
(来源:vectr.com

编辑:另一个问题,可能应该早点提到:启动服务器后,一小段时间内,我可以与其交互。但是,如果我等待几个小时以上,或者重新启动笔记本电脑,那么服务器似乎在我的电脑上死机了。

编辑:有些奇怪:我在服务器上设置了到客户端的持续 ping(在 fish 中ping <client> & disown),现在我可以正常访问服务器了。不知道该怎么回事……

答案1

对于标准路由器,转发仅从“外部”起作用,即公共 IP 所在的位置。因此,您无法使用本地 IP 从内部访问,并且无法期望转发正常工作。

[顺便说一句:你写的是“将 8080 转发到 80”,但实际上应该是反过来的,对吧?你将外部 IP 上的 80 转发到了你电脑上的 8080。]

要使 SSH 从外部工作,您需要设置类似的端口转发。实际上,我建议在外部 IP 上使用非标准端口,以(至少)减少一点攻击次数。

答案2

按照问题所述,您无法使用公共 IP 和域名访问您的网站。因为 HTTP 使用默认端口 80 进行请求,而您的网络服务器在端口 8080 上运行。您觉得它如何运作?

另外,您已通过路由器将 8080 转发到 80,并将路由器将请求转发到私有 IP 上的端口 80,并且端口 80 上没有任何服务运行。

您是否已将端口 80 转发至 8080,并在输入问题时写相反的内容?

答案3

这听起来像是您无法访问主机,或者是具有静态 IP 的服务器上的防火墙正在过滤流量。您能否打印 (a) 服务器上的防火墙表、(b) ping 服务器的输出,并告诉我们您是使用主机名还是 IP 地址进行访问。还请发布服务器和客户端之间部分的网络配置(拓扑、网关和 IP 地址)。

答案4

对我来说,这听起来像是两种可能性之一 -

  1. 服务器或客户端 PC 已配置为允许 NIC 在一段时间无活动后进入睡眠状态

  2. 两个设备(服务器或客户端)中的一个配置为使用 DHCP 并获取不同的 IP 地址。

建议 - 执行以下所有三项任务

  1. 确认两个设备均已将各自的 NIC 配置为静态 IP

  2. 配置静态路由(如果需要)

  3. 根据需要进行验证和配置,以便每个设备上使用的网卡设置为不使用省电模式并且不允许睡眠模式。

祝你好运。

相关内容