无法从外部 ping 我的服务器

无法从外部 ping 我的服务器

我用 LAMP 设置了一个 Ubuntu 服务器并尝试从外部访问它。

我做了什么

  • 我在 no-ip.com 上注册了一个账户,如下:本文

  • 我为服务器指定了一个本地静态 IP 192.168.1.127,并将端口 80 和 22(外部和本地)转发到该 IP 地址。我还将外部端口 50005 转发到内部端口 80。

  • 我通过 Portcheckers 找到了我的外部 IP。据我所知,我网络上的所有计算机和路由器的外部 IP 都是相同的。

    问题

  • 我检查了端口 80、22 和 50005港口检查员并且据称所有港口(以及所有其他主要港口)都无法使用。

  • 我还尝试从港口检查员我尝试Ping Failed: TimedOut 从终端 ping 该 IP 地址,但之后它就冻结了,PING myhost.no-ip.org (66.XXX.XXX.XX) 56(84) bytes of data.当我尝试通过浏览器连接到服务器时,我收到了Oops! Google Chrome could not connect to...消息。

    信息

    我可以通过 ssh、sftp 和 http 本地连接到我的服务器(192.168.1.127)。

    我有一个 Linksys E320 路由器,并且我禁用了防火墙。

    如果我需要提供我的外部 IP,请告诉我。感谢您的帮助。

    编辑

    我修改了 /etc/apache2/ports.conf,将其替换为监听端口 50005,而不是Listen 8080listen 50005

  • 答案1

    我为什么错了

    我说您无法 ping 通的原因是:路由器从不将回显请求转发到您的服务器,但这并不能解释为什么路由器本身不回复回显请求。在我的家庭网络上,我可以直接 ping 我的路由器 (192.168.1.254),那么为什么当我尝试从外部 ping 它时它不起作用?

    我最好的猜测

    我仍在学习这个,所以这些信息可能不准确。我的答案主要来自https://community.spiceworks.com/topic/85353-forward-pings-from-the-router-to-the-server-behind-it

    您无法 ping 通实际上并不是您的错,而是 IPv4 有限设计的错误。我假设您的路由器有一个指定的 IP 地址,并且您已将其设置为将端口 80、22 和 50005 转发到您选择的某台计算机;这是您的路由器使用端口地址转换 (PAT),这是一种特殊类型的网络地址转换 (NAT)。

    当您 ping 服务器时,ping 会传输 Internet 控制消息协议 (ICMP) 回显请求消息并等待返回消息。

    问题在于 ICMP 级别太低,没有端口。因此您的路由器不会将 ICMP 回显请求转发到您的服务器,因为您的路由器只转发端口,因此无法 ping。

    除了使用 ping 来检查服务器是否已启动并正在运行之外,您还可以使用 telnet 25 来解决问题。我还没有在我的服务器上进行设置,所以我不确定如何进行设置。

    我让它工作了吗? 我没有进行端口转发,而是转到防火墙 > IP 直通,并将分配模式从“直通”更改为“默认服务器”,并将默认服务器设置为我的笔记本电脑服务器正在使用的内部 IP(192.168.1.99)。

    现在 ping 可以正常工作了。说实话,我不确定我的情况是否和你的情况一样,所以我希望尽快收到你的回复。

    相关内容