什么是NAT VPS
NAT VPS是共享同一个公网IP(v4)地址,通过端口映射方式与外界通信和提供服务的VPS。NAT VPS的主要缺点是能使用的端口有限制,一般10-20个,并且大多数商家不允许选择端口号。但NAT VPS有它盖不住的优点:便宜。NAT VPS省去了IP费用,带宽也是共享的,价格一般比普通vps要便宜不少。
NAT VPS的原理
在传统的有独立IP的服务器中,我们访问一台服务器,基本上就是直接访问服务器的域名,然后域名解析成IP地址。
大概就是如图所示:
![](https://www.gwzjcp.com/wp-content/uploads/2023/11/image-4.png)
但在使用NAT的服务器中,我们访问一台服务器,并不能直接去访问这个服务器的IP地址,而且需要由目标服务器的前一级设备(路由器,服务器上的映射插件),告诉我们哪个端口能够到达这台服务器。
大概是如图所示:
![](https://www.gwzjcp.com/wp-content/uploads/2023/11/image-5.png)
也就是说,我们访问NAT服务器,需要由NAT服务器的前一级路由器(或者网络设备),建立一个对应的映射关系。
比如我们要绑定1.2.3.4的10001端口,到NAT内网里面的172.16.1.101服务器上的22端口(SSH),我们需要建立一条这样的映射关系:
外网服务器地址 | 外部端口号 | 内网服务器地址 | 内部端口号 | 协议 |
---|---|---|---|---|
1.2.3.4 | 10001 | 172.16.1.101 | 22 | TCP |
有了这条映射关系,我们就可以通过 1.2.3.4:10001 来访问我们的服务器上的SSH服务了。
但反过来,如果是内网的服务器主动访问外部网络,则不需要建立映射关系。
NAT VPS使用教程
端口映射
如果服务商提供了固定的端口映射,就不需要这一步,如果服务商没有提供,就需要自己主动去后台面板添加端口映射,每家的后台面板添加方式有所不同,但是大同小异,你只需要添加外网到内网的端口映射即可。
![](https://www.gwzjcp.com/wp-content/uploads/2023/11/image-6.png)
不过在这里要注意,在一台NAT服务器上,端口全局唯一(仅在一台服务器或者一个独立IP上唯一),如果你点击提交后出现这样的结果:
![](https://www.gwzjcp.com/wp-content/uploads/2023/11/image-7.png)
这说明这个外网端口已经被人先下手为强,已经占用了。你需要更换其他的端口做映射。
添加完映射之后即可使用外网IP:外网端口来登陆ssh了,当然如果商家给出了固定的端口映射,那么其中会有一个专门的端口来映射ssh的22号端口。
另外添加端口映射的时候会需要选择协议类型,如果你不知道该选什么协议类型,那么最好是TCP+UDP都选,大部分科学上网使用的是TCP协议,也有一部分如Hysteria等用的是UDP协议,还有游戏加速等也是UDP协议。
实战教程
以X-UI搭建科学节点为例,会需要用到2条端口映射,一条为面板的端口,一条为节点的端口。
我们假设做好了2条端口映射如下:
外网IP为A,内网IP为B(基本不会用到),外网端口为C1,映射到的内网端口为D1。外网端口为C2,映射到的内网端口为D2。
安装X-UI面板
先通过映射好的ssh端口连接NAT VPS,通过如下脚本安装X-ui:
bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)
![](https://www.gwzjcp.com/wp-content/uploads/2023/11/image-8.png)
设定好账户、密码和端口号,此处的端口号为内网端口号D1(因为你是在内网架设面板)
然后通过访问外网地址:外网IP A:外网端口C1 来访问并登录面板以添加节点。即访问http://A:C1
添加节点
在X-UI入站列表里添加节点:
![](https://www.gwzjcp.com/wp-content/uploads/2023/11/image-9.png)
上述端口也只能填节点的内网端口号D2,原因同上。
其余的就和独立IP添加节点一样,填入相关的信息之后提交就可以了。
使用节点的时候也和独立IP的节点差不多,只需要将节点的IP和端口号换成节点的外网IP A,端口换成节点的外网端口C2,即A:C2
使用NAT VPS时如何套CF?
在我们使用CloudFlare CDN的时候,我们只能使用CloudFlare指定的CDN的端口:(HTTP:80,8080,8880,2052,2082,2086,2095;HTTPS:443,2053,2083,2087,2096,8443)但是我们有NAT机器只能使用一些非常规的端口,但是又需要使用CloudFlare CDN(俗称套CF)的情况呢?这时候我们可以使用CloudFlare推出的Origin Rules,来让CDN回源到任意一个端口。
详细可参见:《通过Origin Rules使CloudFlare CDN回源以使用任意的端口》
总结
NAT VPS的使用其实并不复杂,现在大多数服务商给出的内外网映射端口都是一致的,即C1==D1,这样既不用自己去添加端口映射,也不用记什么内网端口或外网端口了。如果你的内网和外网端口不一致,你只需要记住一条准则,就是本机架设服务都是用内网端口,外网访问服务都是用对应的外网端口,所有发送到该外网端口的数据都会转发到你映射的内网端口,这样就比较好理解了。
除了商家直接给出端口映射和自行添加之外,有的商家还需要你去他的网站上自行输入内网IP来计算端口范围,如阿三Webhorizon家的,所以记得购买了相关服务后留意邮件信息,里面一般会写明该商家提供端口映射的方法。
另外如果你选择使用NAT VPS,那么那个共享的IPv4大概率会是被墙的,所以你需要套CF或者中转使用,中转时记得目标IP和端口都得是外网的哦。
由于最近有很多商家上了NAT VPS,价格便宜,所以才写了这篇内容,主要是面向小白的,不周之处请各位大佬勿喷。
发表回复