无法从局域网内部访问外部服务


11

我有一个奇怪的端口转发问题。我试图打开我的端口22到外部网络。只要我不在局域网内,就可以访问它。例如,我可以从我的办公室访问它。但是从LAN内,我可以使用本地ip访问端口,但是不能使用外部IP访问端口。好像路由器正在阻止环回。我已经检查了所有路由器设置,并关闭了与防火墙/过滤相关的所有功能。有任何想法吗?

Answers:


5

假设Spiff是正确的,并且您的路由器无法处理从网络内部到外部ip的端口转发,则需要做一些小工作(听起来确实是这种情况);

您可以编辑hosts文件,该文件可以在大多数unix系统中的/ etc / hosts和Windows的C:\ Windows \ system32 \ drivers \ etc \中找到。

如果添加

192.168.0.15  example.com

在该文件中,每当您尝试访问example.com时,您的计算机都将进入IP特殊化。当然,您必须在希望在网络中使用的每台计算机上执行此操作。

您可以查看Wikipedia文章以获取有关在何处查找的更多详细信息:https : //en.wikipedia.org/wiki/Hosts_file


13

考虑到您提到的端口转发,我假设您的家庭网关正在充当NAT(或更具体地说是NAPT)网关。您要执行的操作被称为“发夹NAT”或“ NAT发夹”,指的是文字发夹自身重新加倍的方式(术语“发夹转弯”使用相同的含义进行急剧弯曲,一条路又翻了回来)。

某些NAT网关很糟糕,不支持发夹。现在可能是时候探索您的升级选项了。


这是一个相当新的路由器,所以我怀疑这是问题所在。
erotsppa

6
“新”并不意味着“高质量”。在任何给定时间,市场上总是有很多废话。
Spiff 2010年

那条评论在八年后才成立!
Tim_Stewart

@erotsppa-正如Tim_Stewart所说,“在8年后成立”(2018年)……这全都取决于成本,实施该解决方案的要求与对这种解决方案的需求。您典型的“家用”调制解调器/路由器不需要这种功能...但是,企业的需求将大不相同(例如,工作人员在现场和不在现场工作,都无需更改设置即可;例如,电子邮件(如果他们使用本地邮件服务器)在办公室工作和在异地工作时都能正常工作。商务级设备通常性能更高,并且具有这些功能
。– Kinnectus

3

有一个真正简单的答案。NAT正在妨碍您。

  1. 您的计算机打开了与[ExternalIP]的连接
  2. 您的路由器将该连接转发到[SSHInternalIP]。您的SSH服务器看到来自[YourInternalIP]的连接。
  3. 您的SSH服务器将其数据包发送到[YourInternalIP]。
  4. 您的计算机会看到一个从未与之通信的IP发出的奇怪数据包,并将其丢弃。
  5. 您与TCP / 22的连接失败,因为TCP 3向握手从未完成。

您正在尝试与公共IP进行对话,但答复来自内部IP。您的计算机无法使两者一起工作。解决方案是只要在路由器后面就使用内部IP。我可以根据自己的位置使用不同的ssh连接字符串来解决笔记本电脑上的此问题。


2

从我对使用带有NAT的OpenBSD路由器的运行中了解到的情况,Spiff的回答是正确的:您遇到的问题是由NAT网关不支持您要执行的操作引起的。

您的工作站正在发送带有内部地址(例如10.0.0.2)的源IP的数据包,但目标地址是您的外部IP。当数据包通过端口22到达(SSH?)服务器时,该服务器直接答复您的工作站,并且没有NAT发生;现在,当您的工作站希望从您的外部地址获得答复时,从10.0.0.3获得答复时,它将丢弃数据包。

这似乎是一个琐碎的问题,但是可以通过更新工作站的HOSTS文件,添加内部DNS服务器(或编辑DNS服务器的条目)或创建NAT规则来处理internal-> external-> internal来解决。交通。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.