现在国内大多数用户使用VPS的主要功能就是科学上网,但是一台VPS,只挂一个科学上网的进程,白白地浪费了性能,还多花了不必要的钱。而Nat小鸡就解决了资源浪费的问题:Nat小鸡是在一台母鸡(VDS)上对资源进行分割,将性能,端口等分成多份。所以Nat小鸡配置看起来很高,但其实你分配到的性能并不高。但这也满足科学上网或一些其他小占用程序使用了。本篇文章主要介绍Nat小鸡正确的使用方式
Nat主机商的选择
市面上有许多可供选择的Nat主机,少至1元,多至上百(/月)。那么,我们要如何选择适合我们的主机呢?首先可以先看地理位置,例如香港,台湾,韩国,日本的主机,由于地理距离原因,一般延迟都比较低。但这类普遍比美国等不具备距离优势的鸡要贵(当然美国也有快的),例如香港台湾和韩国Nat主机价格一般都在50-100/permonth。日本的价格相对较低。目前博主个人使用过的Nat只有Nathost。Nathost主打香港的小鸡,个人已经稳定使用半年+。如果不追求低延迟可以看看梨园的机子,虽然一直超售而且老是没货,但价格还是很香的。
端口映射
Nat鸡的食用方式与普通的VPS有挺大的区别。在购买后并不能直接使用,我们需要将小鸡内网的端口映射到外网才能进行使用。如果不添加端口映射,甚至无法链接VNC。每台小鸡一般都是自带20个端口,可以通过付费来获取更多的端口。所以端口映射对于Nat鸡是必要的。
首先,我们需要找到你所购买的Nat鸡的端口映射管理界面。我们需要先添加一个SSH的端口,以便使用Putty等软件进行连接。
添加端口映射的界面一般都是这样。左边是内网的端口,右边是你要转发出来的端口。如我们要添加一个VNC的端口以供连接,则在内网端口填写22。22端口想必大家都不陌生,而右边则该填写的是你想要转发的端口,例如10000,那么你在连接VNC的时候,端口就得使用10000而不是22。
如果在添加端口映射的过程中提示端口被占用,那是因为已经有其他用户使用了这个端口,你只需要更换一个端口就可以了
既然懂得了如何转发VNC,那么科学上网的转发也不是很难,这里建议科学上网程序使用单端口,教程不放,自行摸索。这里讲单用户单端口的使用方法:在创建了一个用户之后,我们只需要将该用户的端口填写到内网端口一栏,再将外网端口填写相同的端口,记得要分别添加TCP和UDP端口,这样才能正常使用。
DDNS
Nat鸡大多数都是动态IP,一般每天都会换一次,那么每天都手动换IP则十分麻烦。这时我们就需要DDNS了,DDNS脚本可以自动检测IP的更换,并且将更换的IP自动更新到你的域名,这样我们只需要通过域名访问而不用每日更换IP。这里使用的是ilemonrain的AliDDNS,作者博客https://ilemonrain.com 。特此感谢
安装依赖
Centos:
yum install -y wget curl cronie
Debian 8+:
apt install -y wget curl cron
Ubutun与Debian7:
apt-get install -y wget curl cron
下载AliDDNS
wget -O /usr/sbin/AliDDNS.sh [版本对应的下载地址]
这里提供两个版本:V2与V3.V3是测试版。建议V3
下载地址
V2:http://file.zoi.red/Jio/AliDDNSv2.sh
V3:http://file.zoi.red/Jio/AliDDNSv3.sh
为脚本文件加上可执行属性
chmod +x /usr/sbin/AliDDNS.sh
执行脚本
/usr/sbin/AliDDNS.sh
这时会弹出脚本菜单
AliDDNS 工具 (阿里云云解析修改工具) 使用方法 (Usage): AliDDNS.sh run 配置并运行工具 (如果已有配置将会直接运行) AliDDNS.sh config 仅配置工具 AliDDNS.sh clean 清理配置文件及运行环境 AliDDNS.sh version 显示版本信息 [Info] 选择你要使用的功能: 配置并运行 AliDDNS 仅配置 AliDDNS 清理环境 退出
输入 1 后按下回车,进入AliDDNS配置向导:
[Info] 请输入一级域名 (比如 example.com) (此项必须填写,查看帮助请输入“h”):
假如你需要设置AliDDNS的域名为ddns.example.com,那么请在这里输入 example.com
分解开就是 [ddns] . [example.com]
同时,登录阿里云云解析,在需要DDNS的域名上,添加一个记录:
记录类型:A
主机记录:[请填写你的二级域名]
解析线路:默认
记录值:127.0.0.1 (或者随便填写一个IP地址)
TTL: [请根据实际需要选择合适的TTL]
**同步默认线路**:是 (勾选)
完成后按下回车键,继续填写二级域名
[Info] 请输入二级域名 (比如 ddns) (此项必须填写,查看帮助请输入“h”):
同上面的范例,我们输入 ddns ,之后按下回车键继续
[Info] 请输入记录的TTL(Time-To-Live)值: (默认为600,查看帮助请输入“h”):
如果你使用的是免费版的阿里云云解析,此处可以填写的数值范围为:600~86400;
如果你使用的是收费版(企业版)的阿里云云解析,此处可以填写的数值范围为:1~86400 (根据你购买的产品类型决定)。
填写完成后,按下回车键继续:
[Info] 请输入阿里云AccessKey ID (此项必须填写,查看帮助请输入“h”):
这里为了省事我直接使用的是全局key,不过为了安全我们最好还是使用子用户Key
全局控制台:https://usercenter.console.aliyun.com/#/manage/ak
子用户控制台:https://ram.console.aliyun.com/
使用子用户AccessKey,请分配 AliyunDNSReadOnlyAccess(只读访问云解析(DNS)的权限) 和 AliyunDNSFullAccess(管理云解析DNS的权限) 这两个权限。推荐有动手能力的用户使用子用户AccessKey。
填写完成后,按下回车键继续:
[Info] 请输入阿里云Access Key Secret (此项必须填写,查看帮助请输入“h”):
同上
后面一路回车即可
定时任务
为了让AliDDNS定时检查IP是否更换,我们需要利用定时任务来定时开启AliDDNS
首先,在命令行执行命令:
crontab -e
有时会弹出一个提示,问选择哪个编辑器。我们直接随便选择一个,这里推荐vim
Select an editor. To change later, run 'select-editor'. /bin/nano <---- easiest /usr/bin/vim.basic /usr/bin/vim.tiny Choose 1-3 [1]:
选择完成后,会打开一个文本编辑器。我们在最后一行添加下面这一条定时任务:
*/5 * * * * /usr/sbin/AliDDNS-v2.0.sh run >/dev/null 2>&1 &
添加完成后,:wq保存退出。并重启定时命令
CentOS:
service crond restart
Ubuntu/Debian:
service cron restart
将定时任务加入开机启动项:
CentOS:
chkconfig crond on
For Ubuntu/Debian:
systemctl enable cron
这里一切配置就完成了