家庭宽带无公网ip内网穿透部署记录

平时没事喜欢折腾一些乱七八糟的东西,在云服务器上部署一些网站、应用程序等等。由于云服务器是阿里云的2h2G的超低配小霸王游戏机的性能,内存不够用以及不能跑一些大型程序。在网上看过一些物理主机内网穿透当服务器使用的教程,去年在咸鱼上300块淘了一个Mini小主机,由于机器比较旧安装Pve失败了于是又退货了。

前几天又突然心血来潮,想在本地跑AI大模型Ollama,于是又逛了好几天的咸鱼淘了个二手Mni主机,这次配置比上次高点,Pve虚拟主机也很安装完成。同通过Pve搞个all in one安装Debian、windows、openwrt、飞牛私有云等等,然后通过内网穿透到公网,能随时随地访问这些网站应用以及远程访问控制家里的电脑。

本来在1Panel应用商店有NPS这个docker应用能直接部署的后来的发现它只有docker版本能在linux系统里运行,没有windows版本(版本地的windows电脑穿透出去)。没办法只能重新安装官方的低版本,而且官方的Docker版本也没有,页面404了。只有手动下载对应系统的安装包、上传到服务器、解压、运行、配置等等,感觉好麻烦,还是Docker好用。下面是我内网穿透的记录:

1.穿透工具

穿透功能使用的是NPS。一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。

2.下载安装包

2.1手动下载安装包

安装包下载地址:前往下载
目前最新的版本是:V0.26.10 -20210408,好久没更新了,不过能用
我云服务器是Debian系统,服务端安装包为【linux_amd64_server.tar.gz
本地windows系统客户端安装包为【windows_386_client.tar.gz
本地Debian系统客户端安装包为【linux_amd64_client.tar.gz

2.2直接通过命令下载

1
2
3
linux系统服务端 wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
windows系统客户端 wget https://github.com/ehang-io/nps/releases/download/v0.26.10/windows_386_client.tar.gz
Debian系统客户端 wget https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_client.tar.gz

3. 服务端

3.1 安装服务端

将下载的安装包上传至服务器并进行解压,并进入解压目录运行

1
2
3
linux|darwin: sudo ./nps install

windows:管理员身份运行cmd,进入安装目录 nps.exe install

3.2 启动服务端

1
2
3
linux|darwin: sudo nps start

windows:管理员身份运行cmd,进入程序目录 nps.exe start

3.3 进入服务端页面

访问服务端ip:服务端口(默认为8080)
使用用户名和密码登陆(默认admin/123,正式使用一定要更改,修改目录为/etc/nps/conf/nps.conf)

3.4 服务端配置

  • 点【客户端】-客户端列表-【新增】,填写备注(用于识别)点【新增】,新增后会生成客户端命令
    1
  • 新建隧道。点【隧道】-【新增】-TCP隧道,输入服务端端口(未被使用的端口)、目标 (IP:端口),再点【新增】
    1

4. 客户端

4.1 运行客户端

【—server=服务端ip:服务端口 -vkey=42f*cw -type=tcp】实际内容为新增客户端后自动生成的【客户端命令: 】
注意:运行命令后如提示端口占用,可前往/etc/nps/conf/nps.conf进行修改。

4.1.1 运行

1
2
3
4
5
对于linux、darwin 
sudo ./npc install --server=服务端ip:服务端口 -vkey=42f*******cw -type=tcp

对于windows,使用管理员身份运行cmd
npc.exe -server=服务端ip:服务端口 -vkey=42f*******cw -type=tcp

运行后可前往服务端查看对应的连接状态是否为【在线】

4.2 注册到系统服务(开机启动、守护进程)

这是开机启动后每次服务重启后可自动进行连接,无需再手动运行

1
2
3
4
5
6
7
8
9
10
11
对于linux、darwin
注册:sudo ./npc install 其他参数(例如-server=xx -vkey=xx或者-config=xxx)
启动:sudo npc start
停止:sudo npc stop
如果需要更换命令内容需要先卸载./npc uninstall,再重新注册

对于windows,使用管理员身份运行cmd
注册:npc.exe install 其他参数(例如-server=xx -vkey=xx或者-config=xxx)npc.exe install -server=服务端ip:服务端口 -vkey=42f*******cw -type=tcp
启动:npc.exe start
停止:npc.exe stop
如果需要更换命令内容需要先卸载npc.exe uninstall,再重新注册