1.1.3 • Published 3 years ago
nat-server v1.1.3
核心代码部分,分为服务端和客户端
Server 服务端
bootstrap.js
封装了http、tcp、udp
Client 客户端
client.js
nodejs 版客户端,封装了http、tcp、udp
通信流程
http 走websocket,Many-Server-Many
tcp 走websocket,Many-Server-One-Many
udp 走websocket,Many-Server-One-Many
特殊
http 的headers中:
- host=目标服务器的host
- v-host=nat服务器host
作用是为了防止大部分服务器的nginx判断了host, 如果不是自己的域名,会造成无限301, 或者会跳转出nat域名,这样做是为了兼容。
http 传输 request和response都是流式操作,能达到100%兼容http
而且还减少了爆内存的几率,大文件双向传输最多只占用带宽,对CPU和内存没过多的占用。
部署
需要关闭服务器的防火墙,并且保证10000-65536的TCP端口没有被占用。这些区间的端口,将会根据数据库中已有端口进行随机分配。
# 安装
npm install nat-server -g
# 启动
nat-server 9000
# pm2 启动
pm2 start "nat-server 9000" --name nat-server
pm2 save
pm2 startup