用闲置的阿里云服务器使用 NPS 实现内网穿透

最近有个项目需要给外地的同事预览一下,但是公司没有可以公网访问的测试服务器,所以想到用内网穿透的方式让外地同事可以访问到我的本机。刚好我有一台阿里云的服务器,双十一打折买了3年,1000左右,2核8G,买完就一直闲置,这次刚好可以用上。

服务器

首先介绍一下我的服务器:

CPU&内存:2核(vCPU) 8 GiB 操作系统:Alibaba Cloud Linux 3.2104 LTS 64位

使用 docker 安装 NPS

下载yum源采用阿里云的镜像源

sh 复制代码
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看仓库中的所有版本,默认安装最新版本

sh 复制代码
yum list docker-ce --showduplicates | sort -r

安装docker-ce

sh 复制代码
yum install docker-ce -y

配置docker镜像源

sh 复制代码
vim /etc/docker/daemon.json

启动docker服务

sh 复制代码
systemctl start docker

拉取 NPS 镜像

sh 复制代码
docker pull ffdfgdfg/nps

启动 NPS

sh 复制代码
docker run -d --name=nps --restart=always --net=host -v /opt/nps/conf:/conf ffdfgdfg/nps

配置安全组

默认的服务器不会开启这几个端口,所以你需要手动去添加:

  • 8080: NPS web 管理端口。
  • 8024: 服务端客户端通信端口。
  • 5173: 这个是我本地服务的端口,所以服务器也用了同样的,这个自定义即可。

如果端口和你现任的端口有冲突,可以查看配置文档去修改。

Web 管理

NPS 提供了 web 界面,方便配置,做好上面的步骤后,可通过,公网ip:web界面端口(默认8080),用户名 admin,密码 123 登录访问。

首先在菜单栏中进入客户端,点击新增

  • 备注:随便填
  • Basic 认证用户名:不用管
  • Basic 认证密码:不用管
  • 唯一验证密钥:不用管
  • 压缩和加密:是

创建后,可以看到新增的客户端,链接状态是离线,没有问题。点击左侧的加号,可以看到客户端命令,这个很重要,在客户端需要执行,用来与服务器链接。

还有就是看一下客户端 ID,上图中的第一列。

随后菜单选择 TCP 隧道,点击新增。

  • 模式:TCP 隧道
  • 客户端ID:填客户端页面中你创建的那个客户端 ID
  • 服务端端口:这里我选择了和我本机项目一样的端口,5173,主要是供外网访问时的端口,你可以填任何。
  • 目标 (IP:端口):这里指的是你的本机,IP 就是本机 127.0.0.1 即可,端口是你的项目端口,我这里是 5173。

状态是离线是正常的,因为我们还没有在客户端进行配置。

本机

我本机是 mac,访问 GitHub 去下载对应的客户端,github.com/ehang-io/np...

这里记得选 client 后缀的文件。

我在 ~/ 路径下创建了 npc 文件夹,并解压到这里。

进入 ~/npc 运行:

sh 复制代码
./npc -server=*.*.*.*:8024 -vkey=av3*****yiepb1 -type=tcp

这段代码就是上文提到的创建的客户端后展示的那段代码。

如果你看到 Successful connection with server 证明链接成功了。

这时看到 web 界面中,状态也变成了在线。

之后通过公网 IP+端口 访问一下,发现项目已经可以在公网正常访问了。

参考

NPS 中文文档

相关推荐
TechWayfarer4 小时前
查询IP所在地的3种方案:从API到离线库,风控场景怎么选?
开发语言·网络·python·网络协议·tcp/ip
热金鼠7 小时前
Ubuntu 22.04 Docker 完整使用手册(1)
docker
热金鼠8 小时前
Ubuntu 22.04 Docker 完整使用手册(2)
docker
小茴香3538 小时前
HTTP缓存
网络协议·http·缓存·面试
绝知此事8 小时前
Netty实战:从零构建高性能TCP通信服务(含心跳检测)
java·网络·spring boot·网络协议·tcp/ip
天才测试猿10 小时前
Jenkins+Docker自动化测试全攻略
自动化测试·软件测试·python·测试工具·docker·jenkins·测试用例
JAVA学习通11 小时前
《大营销平台系统设计实现》 - 营销服务 第8节:抽奖规则树模型结构设计
运维·决策树·docker·容器·责任链模式
甘露s14 小时前
JWT Token 机制设计演进:从单 Token 到企业级认证体系
后端·http·web
2601_9578822415 小时前
多平台数字内容集群的版权合规与风控体系:从查重检测到IP保护的技术实践
人工智能·网络协议·tcp/ip
TechWayfarer15 小时前
营销反作弊实战:用IP归属地查询平台识别虚假流量
网络·python·网络协议·tcp/ip·数据分析