转载前请联系站长进行授权!授权方式见文章底部!
0. 引言
服务器的租赁,从最开始的整台物理服务器出租,到虚拟化技术出现后,出租服务器中的部分资源,
租赁服务器的成本越来越低,也使得各种各样的服务器得以走向大众化,使得人人都能用得起服务器。
但不过话说回来……现在的服务器价格还是有点贵……
以腾(liang)讯(xin)云(yun)为例吧,我们购买一台1核心,1G内存,50M硬盘,1Mbps固定带宽的服务器,大致的配置单及价格如下 ↓↓↓↓↓
77软妹币的价格……确实……有点贵?
这种独立IP的服务器,一般适合于跑站用途(因为是独立的IP,相对来讲建站稳定)
但,更多人的要求往往是,
我买这台服务器,是为了科学*上网,我并不需要用这么奢华的服务器吧?
本着共享经济的理念,现在又出现了一种新的服务器销售方法:NAT服务器。
1. 服务器的类别
在开始本篇教程前,我们先来了解下现在所提供的可供租赁的服务器的种类。
(1) 独立服务器
独立服务器(又叫母鸡,独服,杜甫),是指服务商提供给你一整台物理服务器的资源供你使用,整台服务器上的资源全部供你使用,不会有任何人跟你抢占服务器资源。
优点:
- 服务器性能强大,资源充足
缺点:
- 价格过于昂贵 (往往性能不错的杜甫必定3XX软妹币起步,更高性能的经常出现四位数)
(2) 虚拟服务器 (VPS)
虚拟服务器(又叫VPS、小鸡),是指服务商通过虚拟化技术(比如KVM、OpenVZ、Xen等),分割一整台(或者多台)物理服务器的资源,取其中的一部分资源供你使用。相对于独立服务器来讲价格要低廉不少,而且配置可以自己选择,相对灵活。
优点:
- 资源可以灵活分配,按需选择配置
缺点:
- 宿主物理服务器(母鸡)阵亡,当前服务器下所有的虚拟机(小鸡)全部跟着阵亡(极少发生,但也分商家)
- 部分服务商会选择超售,或者你遇到一个恶意长时间占用资源的邻居,导致实际性能不如标称配置性能,甚至发生宕机
(3) 基于NAT的虚拟服务器 (NAT-VPS)
基于NAT的虚拟服务器(又叫NAT鸡),是在虚拟服务器(VPS)的基础上,通过共享IP的方式,为这个IP下的服务器提供外网访问能力。
优点:
- 相对于虚拟服务器(VPS)来讲,价格更加低廉(因为几乎没有IP的费用)
缺点:
- 同上,如果你碰到一个折腾的邻居(尤其是拿到服务器就装PPTP等VPN的),会导致服务器IP被墙
- 服务器IP一旦被墙,会导致同IP下所有的服务器全部无法连接(有DDNS的话这点还能好点)
- 只能使用固定的端口访问服务器,而且无法用来建站(强行信仰建站当我没说)
2. NAT VPS的原理
在传统的有独立IP的服务器中,我们访问一台服务器,基本上就是直接访问服务器的域名,然后域名解析成IP地址。
大概就是如图所示:
但在使用NAT的服务器中,我们访问一台服务器,并不能直接去访问这个服务器的IP地址,而且需要由目标服务器的前一级设备(路由器,服务器上的映射插件),告诉我们哪个端口能够到达这台服务器。
大概是如图所示:
也就是说,我们访问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服务了。
但反过来,如果是内网的服务器主动访问外部网络,则不需要建立映射关系。
3. 实战操作
说了这么多理论的东西,我们是时候开始一波骚操作了(逃)
因为不同家提供的NAT服务器,使用的面板不同,本教程以Nathosts的NAT服务器作为演示,其他家提供的NAT服务器和本教程操作大同小异,只是按钮位置略有不同。
首先,登录到你的服务器后台:
我们有两种方式来开始配置端口映射:
一种是点击后台界面的 产品服务 - NAT VPS端口映射管理:
或者在产品详情页面点击 请点击此处获取公网IP (NAT端口映射):
之后会打开NAT VPS端口映射的界面。
在左侧点击你想要配置NAT端口映射的服务器,右面会弹出新的列表:
我们点击 添加规则 + ,开始创建第一条映射记录。
首先,我们需要(而且是必须)创建一个SSH端口的映射关系(除非你是用VNC维护的硬核操作党,否则这一步是必须的),
按照如下关系填写表格:
内网端口 | 外网端口 | 协议 |
---|---|---|
22 | 10022 | TCP |
填写完成后应该是这个样子的:
之后点击提交应用改动。
不过在这里要注意,在一台NAT服务器上,端口全局唯一(仅在一台服务器或者一个独立IP上唯一),如果你点击提交后出现这样的结果:
则说明这个外网端口已经被人先下手为强,已经占用了。你需要更换其他的端口做映射。
如果点击提交后,出现这样的提示:
则说明端口添加成功,映射关系已经正确建立。
同时主界面会提示端口正在创建:
当变成已创建时,说明端口映射关系已经建立完成:
之后你就可以使用你喜欢的SSH工具(比如Xshell)访问服务器了。
访问时候输入的地址格式为 【外网地址】:【外网映射IP】
如图例,则需要输入的地址为:1.2.3.4:14832
按照上面的流程,添加自己所有需要的端口即可开始使用服务器。
4. 协议?TCP?UDP?
很多人看到协议的时候都说不会选择协议。在这里我给一个定律式的建议:如果你不确定你添加的端口是为了做什么,或者为什么用这个协议,请直接果断TCP协议!
那什么时候会用到UDP协议呢?
比如你使用的酸酸,需要用来进行网游加速,这时候你应该建立一条同端口的UDP规则的映射(同外网端口不同协议算两条规则,不会发生冲突,请放心添加):
内网端口 | 外网端口 | 协议 |
---|---|---|
8888 | 18888 | TCP |
8888 | 18888 | UDP |
同时,内网端口和外网端口,可以是一样的!比如这样:
内网端口 | 外网端口 | 协议 |
---|---|---|
38888 | 38888 | TCP |
(更多教程内容我会在我想到的时候继续补充)
5. 关于授权
本篇文章为极光星空 (iLemonrain's Blog) 原创文章,遵循BY-CC-SA-4.0协议,请在保留原始出处的情况下自由转载!
6. 联系作者&吃土少年求打赏!
Telegram:@ilemonrain (https://t.me/ilemonrain)
Telegram个人频道:@ilemonrain_channel (https://t.me/ilemonrain_channel)
E-Mail:[email protected]
打赏方式:点击博客下方的红色的赞赏按钮,扫描二维码打赏(Telegram上请私信我获取打赏方式)