NAT 与公共 IP(和被阻止的端口)

use*_*166 2 nat ip ports

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

似乎我的计算机在 NAT 之后(是否有可能同时拥有公共 IP 并在 NAT 之后?)。当我通过一些外部服务器检查我的 IP 并将该 IP 输入浏览器时,我会得到某个路由器(不是我的)的主页。这不是证明我的 IP 不是公开的吗?

另外,我在通过某些端口建立连接时遇到问题。例如,当我尝试通过 SSH 通过某个高端口 (> 1023) 进行连接时,它不起作用。我的计算机的某些范围的传出端口是否可能被阻止?或者仅仅是因为我的 ssh 客户端 (PuTTY)由于传入端口被阻止而无法接收传入数据包?

为避免一些问题:这不是我的路由器的问题,我尝试直接连接我的电脑,但它也不起作用,而使用带 USB 网络共享的手机通过 3G 连接时,它确实有效。谢谢!

Red*_*ick 6

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

好的,让我们尝试澄清相关术语。

我想澄清一些事情......是否有可能同时拥有公共 IP 并位于 NAT 之后?

公网IP

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

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

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

网络地址转换

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

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

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

出站连接

TCP 连接由客户端向服务器发送数据包(作为“三向握手”的一部分)启动。路由器看到这个数据包,编辑源地址,并在内部源 IP 地址、源端口和转换源端口的内部连接列表中保存注释(它必须处理两台使用相同源端口的 PC它们的源 IP 地址转换为相同的公共 IP 地址)。由于它会跟踪连接,当路由器收到回复数据包时,它可以确定将(编辑过的)数据包转发到哪台内部 PC。

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

从外部发起的连接是另一回事:

入站连接

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

转发端口

如果您希望朋友、随机陌生人(和罪犯)能够访问您的 PC,您可以告诉路由器,当它在端口 n 上收到连接请求时,将该请求转发到您的一台计算机。