使用nps内网穿透的问题记录
实现目标:将局部网(可访问互联网)设备的端口映射到公网服务器上
1.资料准备
下载nps(server)和npc(client)安装包:https://github.com/ehang-io/nps/releases
文档:https://ehang-io.github.io/nps/#/
安装包版本(0.26.10 核心版本0.26.0)
补充:公网服务器一般使用x64 的服务端,由于我的客户端是jetson nano 所以我选择了arm的客户端进行安装
2.公网服务器端的操作:
- 建好nps文件夹,进入文件夹,下载好nps服务端,移入文件夹中并进行安装
tar xzvf linux_amd64_server.tar.gz ./nps install nps start ps -ef|grep nps # 查看进程 nps --version # 查看版本
- 卸载命令
nps uninstall
-
公网服务器上加安全组开放所需要的端口(或者全部打开1-65535),打开类型可以是UDP类型,也可以是TCP类型、HTTP类型
- 出方向: 是指 本ECS 实例访问内网或私网中其他 ECS 实例或者公网上的资源。 入方向: 是指内网或私网中的其他 ECS 实例或公网上的资源访问 本ECS 实例
3.用浏览器配置nps 的操作:
- 公网服务器IP+8080 例如我的:47.113.149.105:8080 用户名 admin 密码123
- 添加客户端
- 给该客户端加TCP隧道
4.客户端的操作:
- 建立nps文件夹,将客户端压缩包放入文件夹中,解压nps客户端(arm64)
tar xzvf linux_arm64_client.tar.gz ./npc -server=47.113.149.105:8024 -vkey=br0auqkcoat879fs -type=tcp
- 运行上面生成的需要在客户端执行的命令,8024端口(nps默认的桥接端口)
- web端显示在线
- 注册系统(自启动,守护进程)
- 可以直接将启动命令放入rc.local 中,前npc是一个目录 后一个npc是命令
5.验证是否成功
- 我用的MobaXterm进行ssh连接,填访问客户端的用户名和密码,不要填服务器的
- 可以通过ssh连服务器端口 连接到客户端 证明服务器8003和本地局域网设备的22端口互通
6. 服务器端 nps停止运行
- 客户端打印
- web端进入不了服务器8080端口
- nps会出现断连的情况,不过会重新连接上,像是服务端挂了,暂时未找到原因
- connection refuse 是服务端tcp端口未被监听,也就是nps端挂了,一般会重启
- connection reset by peer 是nps服务端tcp连接出现异常给npc发了reset信号,让npc关闭tcp连接
- connetion time out 是网络不通,客户端连不上服务器
- close mux 关闭多路复用器
本文来自博客园,作者:变秃了也就变强了,转载请注明原文链接:https://www.cnblogs.com/lichangyi/p/17812579.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战