NAT与公共IP(和阻塞端口)


2

我的ISP有问题。他们说他们没有阻止任何端口,我有公共IP,而我认为这两种说法都是错误的。在我再次与他们交谈之前(当我对这些术语的理解与他们不同时,这真的很难)我想说明一些事情。

看起来我的计算机是在NAT背后(是否有可能拥有公共IP并在同一时间落后于NAT?)。当我检查我的IP,通过一些外部服务器,并将该IP键入浏览器时,我得到一个路由器的主页(不是我的)。这不是我的IP不公开的证据吗?

另外,我在通过某些端口建立连接时遇到问题。例如。当我尝试通过SSH连接一些高端口(> 1023)时,它不起作用。有可能是某些范围的 传出 我电脑上的端口被阻止了?或者只是因为我的ssh客户端(PuTTY)无法接收 数据包因为被阻止了 端口?

为了避免一些问题:我的路由器不是问题,我尝试直接连接我的电脑也没有用,虽然通过3G连接使用带有USB网络共享的电话,它确实有效。谢谢!


您确定您的问题与防火墙无关吗?
Dave

是,我确定。当我使用带有3G的插入式电话上网时,它可以工作。
user1646166

1
我认为你认为的路由器实际上不是你的 你的。 (也许你有多个或者你有一个内置路由器的调制解调器,还有一个路由器。)
David Schwartz

您可以尝试禁用路由器上的防火墙(如果已启用)。由于通过3G进行网络共享不使用路由器,这只是要检查的一件事。此外,我刚刚发布了一篇关于有WAN面向路由器的人的帖子 - 你能确保广域网访问被禁用吗?或者,将路由器命名为唯一名称,通过具有外部IP的浏览器再次检查以进行测试 编辑 根据大卫的建议谁击败了我3秒:)
Dave

1
我认为@David是正确的。你正在点击调制解调器的配置页面。当你再次给你的ISP打电话时,我想你想问他们 bridged modem。也就是说,您希望调制解调器后面的任何设备(最有可能是您的路由器)降落真实世界的IP地址。如果您的调制解调器正在登陆真实世界并进行NAT,那么您正在处理双NAT,并且需要在调制解调器和路由器上打开端口。呃...过于复杂。要么桥接调制解调器,要么在实际的调制解调器上进行端口配置。
JoshP

Answers:


5

我对这些术语的理解与他们不同

好的,我们试着弄清楚相关的术语。

我想澄清一些事情......是否有可能拥有公共IP并同时支持NAT?

公共知识产权

每个拥有互联网连接的人都有一个“公共IP”,这是一个公众可以看到的IP地址。

该公共IP地址有时被称为外部IP地址。它通常由ISP分配给您的路由器。

它可以是动态的或静态的。一些ISP为静态添加器收取更多费用。动态池是从池中分配的,在这种情况下,您的公共IP地址可能会不时更改

NAT

传统IP地址是IP版本4地址。这些已经不多了。为了避免地址耗尽,一些范围被保留供私人使用(例如192.168.0.0),并且发明了网络地址转换(NAT),以便路由器可以编辑(转换)IP数据包中的地址并将私有IP地址更改为一个公共的。这样,拥有数十或数千台计算机的企业或家庭都可以共享一个公共IP地址。

所以是的,大多数人都有一个公共IP地址,并且支持NAT。

是因为我的ssh客户端(PuTTY)由于阻塞的传入端口而无法接收传入的数据包?

出站连接

TCP连接由客户端将数据包发送到服务器(作为“三次握手”的一部分)启动。路由器看到此数据包,编辑from-address并在内部源IP地址,源端口和已转换源端口的内部连接列表中保留一个注释(它必须处理两台PC使用相同的源端口获取他们的源IP地址转换为相同的公共IP地址)。由于它跟踪连接,当路由器收到回复数据包时,它可以计算出哪个内部PC将(已编辑的)数据包转发到。

所以不,不应该阻止对出站SSH连接的回复。

从外部发起的联系是另一回事:

入站连接

当路由器接收到在特定端口(例如80)上创建连接的入站请求时 - 如果它不在该端口本身上提供服务(例如路由器管理接口),它将不知道该做什么并将拒绝连接。

转发端口

如果你想让朋友,随机陌生人(和犯罪分子)有权访问你的PC,你可以告诉路由器当它在端口n上收到连接请求时,将该请求转发给你的一台计算机。


1
一些ISP将你置于阻止大多数端口的防火墙之后,我在我的isp多年前遇到了这个问题,我打电话并要求每月更多的“公共IP”,然后我的端口转发工作。
Moab

@Moab。我听说ISP阻止入站端口(从外部发起的连接),但没有阻止它们阻止出站SSH连接。可怕!
RedGrittyBrick

在我的生命中只遇到过这一次,这是一个无线网络服务。
Moab

2

当您直接连接PC而没有中间的路由器时,您从ISP获得了什么IP地址?

如果它位于“私有”IP范围之一 - 10.X.X.X,192.168.X.X或172. [16-32] .X.X(可能是10.X.X.X) - 那么您的ISP会让您支持某种NAT。

如果您在中间没有路由器的情况下获得任何其他地址,那么您很可能不会落后于ISP NAT。

如果您在没有路由器的情况下获得“正常”地址,那么您将从ISP获得可公开访问的地址。然后,由于您的终端或ISP阻塞端口上的配置错误导致连接失败。

通常,ISP阻止传出的唯一端口是DHCP,Windows文件共享和SMTP端口。

阻止传入端口是另一回事。除非您升级到业务层帐户,否则一些严苛的ISP可能会阻止大多数端口上的传入连接。但是,您的ISP不太可能对您撒谎 - 尽管您上次与他们联系时可能已经联系了未经培训的客户服务代表。在您的ISP名称上进行一些Google搜索并查看有关阻止端口的其他客户体验可能会有所帮助。

您无法“连接”SSH客户端(例如PuTTY),您的SSH客户端需要连接到SSH 服务器 。如果您没有运行SSH服务器,那么这可能是您尝试执行的操作无效的原因。如果这是一个Windows系统,并且您想快速设置测试SSH服务器,请查看 MobaSSH 。确保还通过“控制面板”在Windows防火墙上打开端口22 TCP。


-2

看到这个 回答 它解释了你所有的疑虑。 当你指向你的公共IP地址并且你得到一个路由器配置页面就是你的路由器......当你设置端口转发时,你将获得正确的http服务器。


1
我没看到你的链接答案与问题有什么关系。你对NAT有一个很好的解释,但是这个OP似乎对NATing的概念非常熟悉。此外,在未桥接的调制解调器后面的路由器上设置端口转发将不会“获得正确的http服务器”。
JoshP

OP问题告诉我他并不熟悉NAT和公共IP,除此之外我不必浪费时间解释你为什么我的答案100%有效,即使它不是正确的。
Pat

我的答案是100%有效,即使它不是正确的 那是什么意思?
JoshP

一个有效的答案是符合网站要求的答案;有效答案中的OP是决定正确的或最佳可用的OP。完了,走吧。
Pat
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.