侧边栏壁纸
博主头像
站长破壁者博客

站长破壁者 · 每一步,都是为站长而破

  • 累计撰写 99 篇文章
  • 累计创建 20 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

如何使用NAT服务器?

FLCCDN
2026-01-16 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

前言

在选购服务器的时候,大家往往会发现NAT服务器会比拥有独立IP的服务器便宜很多,尤其是在家宽ip服务器上表现更加明显,甚至价格不到独立ip服务器的1/10.但是对于小白来说,弄明白独立ip服务器已经够头疼了,对于NAT更是无从下手,对于NAT的玩法完全不明白,本文就是来解答NAT服务器的相关性质和具体实践玩法,让小白看完一文彻底玩明白NAT服务器。

1.NAT服务器的概念

讲解NAT前,先来介绍一下什么是普通服务器(独立ip)?

云服务器都对应一台物理机。物理机本身无法被互联网访问,因为网络中无法确定它的位置。 但当我们给这台物理机****分配一个公网IPv4地址****时,全世界的人都能通过这个IP访问它。互联网上的数据包都能通过这个ipv4找到这台物理服务器。

比如:

你买了一台日本机房的服务器,服务商给你分配公网IP:11.4.51.4 ,这个IP直接绑定在服务器上,任何人在互联网上访问 11.4.51.4,数据包就能直达你的服务器。

但是你会发现我们光靠一个ipv4无法完成很多我们日常需要的任务,比如说你想在服务器同时运行两个服务,那其他人访问这个ipv4的时候,怎么知道访问的是哪个服务?这就涉及到另一个概念:端口。可以给不同的服务分配不同的端口用于标识不同的服务。比如 服务A用了443端口,服务B用了8080端口,这样其他人想使用A服务就可以访问 11.4.51.4:443,想使用B就访问11.4.51.4:8080.

TCP/IP协议规定,每个IPv4有 65536个端口(0-65535):

端口范围

名称

用途

举例

0-1023

系统保留端口

常见服务专用

80(HTTP), 443(HTTPS), 22(SSH)

1024-49151

注册端口

应用程序使用

3306(MySQL), 8080(备用HTTP)

49152-65535

动态端口

临时随机分配

浏览器访问网站时随机使用

至此,你已经可以通过公网ip:端口来访问任何一个具有公网ip的服务器上运行的服务了。

现在,你已经理解了独立IP服务器的工作原理:

  • 服务器拥有独立的公网IP:11.4.51.4

  • 65536个端口完全由你支配

  • 全世界任何人都能通过 IP:端口 访问你的服务

但是!有没有办法让多台服务器共用一个公网IP呢?

这就要引入另一个概念:内网IP

内网IP(也叫私有IP、局域网IP),它只在局部网络内有效,就像是"内部员工编号",外面的人看不到也访问不到。

前面提到的11.4.51.4则是公网IP。

公网IP = L站的办公地址"日本东京下北泽114街514号"

  • 任何人都能通过这个地址找到公司

  • 全球唯一,不会重复

内网IP = 员工工位号"114楼-5区-14号工位"

  • 只有公司内部人知道

  • 其他公司也可能有"114楼-5区-14号工位",不冲突

  • 外面的人无法直接找到这个工位

国际互联网组织(IANA)规定了三个私有IP地址段,专门用于内网,这些IP在公网上是不会出现的:

IP段

范围

CIDR表示

可用IP数量

常见用途

A类私有地址

10.0.0.0 - 10.255.255.255

10.0.0.0/8

约1677万个

大型企业内网
云服务商内网
NAT VPS常用

B类私有地址

172.16.0.0 - 172.31.255.255

172.16.0.0/12

约104万个

中型企业网络
Docker默认网络

C类私有地址

192.168.0.0 - 192.168.255.255

192.168.0.0/16

约6.5万个

家庭路由器

关于公网ip&内网ip,再举个例子

【你家路由器】
├─ 公网IP: 11.4.51.4 (电信给你的,全球唯一)
└─ 内网IP段: 192.168.1.0/24
├─ 路由器自己: 192.168.1.1 (网关)
├─ 你的电脑: 192.168.1.100
├─ 你的手机: 192.168.1.101
├─ 你的iPad: 192.168.1.102
└─ 你的杯子: 192.168.1.103

你要访问谷歌

  1. 电脑(192.168.1.100)发出请求:“我要访问谷歌

  2. 路由器收到,用自己的公网IP(11.4.51.4)转发出去

  3. 谷歌服务器回复数据到 11.4.51.4

  4. 路由器记得是192.168.1.100发的请求,转发回你的电脑

这就是内网ip和公网ip的转换,多个处于内网的设备可以通过同一个公网ip来访问全世界。

既然路由器可以转发多个内网设备的流量,使之通过一个公网ip来访问网络,那么这些内网设备能不能是服务器呢?

恭喜你,你已经理解了NAT的核心原理!

接下来,让我们详细看看NAT服务器到底是怎么工作的。

在计算机网络中,网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是一种在IP数据包通过路由器或防火墙时重写来源IP地址或目的IP地址的技术。NAT是将IP数据包包头中的IP地址转换为另一个IP地址的协议。当IP数据包通过路由器或者安全网关时,路由器或者安全网关会把IP数据包的源IP地址和/或者目的IP地址进行转换。

说白了就是,NAT的核心将一个公网ip地址映射给多个内网机器,让多个内网机器可以共用一个IPV4出口。

NAT机器有显而易见的好处:便宜。因为你用的是共享IPV4出口,不必独自一人承担整个ip的价格,尤其是昂贵的家宽机器,动辄30刀/月的家宽ip,如果变成NAT,让10个人来使用,那么价格一下就变成了3刀/月,瞬间便宜。

当然了,NAT机因为共享ip出口,所以很容易就变成滥用ip,各种滥用报告满天飞。

举个例子:假设我有个AT&T的公网IP 1.2.3.4,成本是30刀/月。
现在我开20台NAT服务器,给第一台用户(192.168.0.2)分配端口段 30001-30100:

端口映射示例:

  • 1.2.3.4:30001192.168.0.2:22 (SSH登录)

  • 1.2.3.4:30002192.168.0.2:80 (网站)

  • 1.2.3.4:30003192.168.0.2:443 (HTTPS)

  • 1.2.3.4:30004192.168.0.2:8080 (EMBY)

  • … 还有 30005-30100 可用(共100个端口)

此时,我想SSH登录就用 ssh root@1.2.3.4 -p 30001 即可。

如果用户需要在8080端口托管服务,就将 1.2.3.4:30004 映射到 192.168.0.2:8080

  • :cross_mark: 错误:http://192.168.0.2:8080 (内网IP,外网访问不到)

  • :white_check_mark: 正确:http://1.2.3.4:30004 (公网IP + 映射端口,访问成功)

一个公网ip的65536个端口不可能全被用完,平均分给每个内网机器100个端口都绰绰有余,这也是NAT技术广泛应用的原因。

NAT服务器 vs 独立IP服务器

特性

独立IP服务器

NAT服务器

公网IP

独享

多人共享一个(10人以上)

端口数量

65536

分配 10-100 或按需分配

价格

30刀/月

3刀/月

IP被墙/滥用

独立,只和你有关

共担,一人违规全体受影响

建站

方便

困难(需要非标端口)

适用场景

正经业务

学习、轻量使用

2.NAT服务器使用大致流程和思路

既然已经知道了NAT机器和独立ip机器的区别,那么使用也很容易可以理解了。

购买NAT服务器 → 获取内网IP → 获取公网IP/域名 →
添加端口映射 → SSH登录测试 → 部署服务 → 配置DDNS(可选) → 正常使用

DDNS技术:Dynamic DNS(动态域名解析)- 当你的公网IP变化时,自动更新域名指向新IP,就不用我们每次更新后上来看新ip是多少再修改服务。有些厂商会提供DDNS,有些厂商不会。

判断你是否需要DDNS:

  • :white_check_mark: 需要:商家没提供DDNS,且公网IP会变化

  • :cross_mark: 不需要:商家提供了DDNS域名,或公网IP固定

购买厂商服务器前,确认NAT机器给几个端口,比如常见的有

Unlimited IPv4 NAT Port //不限制端口数,可以按需要自己进行映射,用多少映射多少
计算型端口映射 //商家已经提前帮你映射好了,购买后可直接使用,部署服务记得部署到对应的端口上
20 IPv4 NAT Ports //商家只给20个端口

端口映射的注意事项

购买后按照商家的说明去映射端口即可,一般而言,建议内外服务端口保持一致,即公网IP:40001 → 内网IP:40001,不然有些服务容易出bug。

为什么建议端口一致?

  • 有些应用硬编码了端口号,内外不一致会出问题

  • 配置文件更容易管理,不容易搞混

  • 排查问题时更方便,不用来回转换

什么时候端口不一致?

  • 当你的可用端口范围不包含服务默认端口时

  • 例如:你的端口是 30001-30100,但服务默认用 8080

  • 这时你可以映射 30004 → 8080,外网访问 公网IP:30004 即可

映射端口的基本步骤:

  1. 确认内网IP(邮件或面板查看)

  2. 确认要运行的服务需要什么端口

  3. 在面板添加映射规则:

    • 协议:TCP(大部分服务)或 UDP(游戏/语音)

    • 公网端口:从你的端口范围中选一个

    • 内网端口:服务实际监听的端口

  4. SSH登录测试连通性

  5. 部署服务并测试

3.NAT服务器实战使用

终于来到最喜欢的实操环节了,说一千道一万,不如做做实战看一看。

下面我会详细讲述我的思路和使用方法,并会用常见厂商作为例子,帮助小白使用。

nmcloud(牛马云)

首先来到NAT机购买页面

image

可以看到他们的政策是
Unlimited IPv4 NAT Port
No IPv6
就是无限制端口数但无IPV6

购买后第一步,先要找找我的机器的内网ip是多少,不然没有办法映射。在购买邮件中,NMcloud发来了我的内网ip172.16.1.71和ssh密码

1759837097948


接下来下一步就是找公网ip和映射方法,我在邮件中没有看到公网ip
那我们就打开产品服务中的产品面板

1759837449781

看到左下角有个DDNS,哎,这就是公网ip了,而且下方有个默认ip,就是内网ip,和邮件相同。

有些厂商面板和邮件的内网ip是不一样的,这种是面板/邮件有问题,都尝试映射一下即可。

现在有了公网ip和端口,我们现在找映射方法即可。面对一个陌生的服务商,最好的办法就是去看知识库和文档,我在公告中心里找到了这个

image

点进去看了一下,发现是手动映射的,那么我们按照操作方法一步步做即可。

1759837576995


点击右边弹出框

1759837605199


点击Domain Forwarding

image


点击ADD,并选择TCP协议,然后输入你要用的端口即可,比如一个ssh端口,让公网的30001映射到内网机器的22端口用于ssh,点击add,完成!

注意:转发的协议一般都是TCP的,有些会提供UDP,有些可以选择TCP&UDP转发,有时候你的应用连不上可能是因为你的应用要UDP,而你转发了TCP,自然不通。
ssh也不一定是22端口,默认是22,你可以改称43233,映射的时候记得也映射到43233.

//已经有了公网ip+公网端口+内网ip+内网端口,直接ssh即可
ssh root@hinet.xxxx.xyz -p 30001
//如果需要其他服务,端口映射也是同理

bytevirt

首先来到购买页面

image


商家政策为:

20 IPv4 NAT Ports
1 /64 |de/tr /80 IPv6 Addresses

就是只有20个端口,但是有独立ipv6,有时候可以借助ipv6来获取ipv4,会玩也可以单独玩ipv6.

购买后第一步还是找内网ip,我们先看看邮件,商家发来了这个

1759838172263


可以看到我的内网ip为172.16.59.73,现在我们去找公网ip,点击商家的链接

image


这就尴尬了,好像是无效的页面,没关系,我们还是点开面板

1759838286838


我们点击查看公网ipv4

1759838407458

哇哦,商家已经帮我们映射好了,公网ip为nattr7.bytevirt.net,端口36001映射到了内网机器的22端口,此时我们执行

ssh -p36001 root@nattr7.bytevirt.net

即可登录机器。和牛马云不同,这个端口已经映射好了,如果你要部署服务,就可能要更改默认端口(有些服务端口默认是8080,但你只有36001~36020的端口,你就要改到你需要的端口上)。

sudavps

同样的来到购买页面

image


商家政策是
计算型端口映射(映射规则详见群组和帮助中心)
那就是根据内网ip自动计算映射好的端口。
购买后查看商家发来的邮件

1759838639955


可以看到内网ip为10.10.18.55,公网ip为hkt-ty-line-1.sudatech.store,端口映射规则写在了下方

Use the port to calculate the mantissa of the intranet IP by yourself
SSH 10000 + intranet IP mantissa
Free port 20000+(Intranet IP mantissa*10)+0-9
like:
The internal IP is 10.0.0.14, the ssh port is 10014, and the free port is 20140-20149
The internal IP is 10.0.0.26, the ssh port is 10026, and the free port is 20260-20269

我们的内网ip是.55结尾,那么我们的ssh 端口就是10000+55=10055,自由端口即为20000+55*10+0~9 也就是20550~20559端口。
那么我们就是可以用10个端口+ssh端口

ssh root:hkt-ty-line-1.sudatech.store -p 10055

即可登录。
当然了,不想算的话可以用商家提供的工具,商家官网一般会有

image

喵云

来到NAT购买页面

image


商家政策为
10个NAT转发规则
那就是10个端口,购买后打开商家邮件

image


看到内网ip为10.102.0.99,没写怎么映射和公网ip,那就先去面板看看

image


左上角有个转发面板,点进去看看

image


下方给了公网ip,但没给DDNS,意味着如果不部署DDNS每次更换ip后你都要上来改成新的ip才能使用,这很麻烦,好在商家给了教程,那我们先看看怎么映射

image


image


这里没要我们填写内网ip,可能是面板点击进去的时候就帮我填写好了,按我们就选择一个TCP+44323+22来进行ssh登录。

image

ssh root@118.141.232.160 -p 44323

即可登录,有需要还请DDNS,不然动态ip真的很麻烦。

总结

NAT机器是很便宜的机器,不过我还是建议小白花钱买完整IPV4机器,NAT机器遇到的问题有很多,小白不一定能解决,不过你都看到这里了,算是NAT机器入门了,nat机器就是如此简单又容易。

0

评论区