1. 为什么需要内网穿透?
很多开发者都遇到过这样的场景:你在家里搭建了一个Jellyfin媒体服务器,或者部署了一个内部使用的GitLab,但出门在外想访问时却束手无策。这是因为家庭网络通常没有固定公网IP,运营商也屏蔽了入站连接。这时候就需要内网穿透技术来打通内外网。
传统的内网穿透方案如frp、ngrok都很优秀,但配置起来相对复杂。而nps/npc这对组合最大的优势就是简单易用,配合Docker部署更是能实现一键启动。我在实际项目中测试过多种方案,最终选择nps是因为它的几个独特优势:
- 配置可视化:自带Web管理界面,不用反复修改配置文件
- 协议全面:支持TCP/UDP/HTTP/HTTPS等多种协议
- 资源占用低:实测单核1GB内存的云服务器就能稳定运行
- Docker友好:官方提供现成镜像,部署只需几条命令
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 服务端部署nps
2.1 准备工作
首先需要一台有公网IP的云服务器(腾讯云、阿里云等均可)。我推荐使用Ubuntu 20.04 LTS系统,对Docker兼容性最好。登录服务器后执行以下基础命令:
bash复制# 更新系统
sudo apt update && sudo apt upgrade -y
# 安装Docker
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
2.2 配置nps容器
nps的Docker部署比源码安装简单很多,关键是要做好配置持久化。我习惯将配置文件放在/opt/docker/nps目录下:
bash复制mkdir -p /opt/docker/nps/{conf,logs}
然后拉取官方镜像并首次运行:
bash复制docker run -d --name nps \
--net=host \
-v /opt/docker/nps/conf:/conf \
ffdfgdfg/nps
这里有几个关键点需要注意:
--net=host让容器使用主机网络,避免端口映射的麻烦- 首次运行会自动生成默认配置文件,之后需要停止容器修改配置
2.3 安全配置
首
