综合 Docker搭建轻量高性能的内网穿透代理服务

2024-11-17 07:40:19 +0800 CST views 838

Docker搭建轻量高性能的内网穿透代理服务

系统介绍

内网穿透NPS(Network Penetration Server)是一款由TalentYoung开发的轻量级、高性能的内网穿透代理服务器。NPS 支持TCP、UDP、HTTP等多种协议,并提供了强大的功能和灵活的配置选项,能够帮助用户轻松实现公网对内网服务的访问。

基本特点

  • 轻量级与高性能:NPS 采用 Go 语言编写,性能优异且轻量。
  • 多协议支持:支持 TCP、UDP、HTTP 协议,甚至提供 socks5 代理,适合不同内网穿透场景。
  • 跨平台使用:支持 Windows、Linux、MacOS、Android 等多个平台。
  • 易于部署:支持源码、安装包、Docker 等多种部署方式。
  • 功能强大的 Web 管理端:NPS 提供直观易用的 Web 界面进行客户端与隧道管理。

使用场景

  • 访问内网网站:外网用户通过 NPS 访问内网中的网站。
  • 本地支付接口调试:开发者调试内网支付接口。
  • SSH 访问:安全地通过 SSH 访问内网服务器。
  • 远程桌面:外网用户远程访问内网计算机桌面。
  • 内网 DNS 解析:支持内网 DNS 解析,方便内网用户访问外部资源。

项目优势

  • 简单易用:提供简洁的配置文件和命令行工具,配置简单。
  • 安全可靠:支持 SSL/TLS 加密传输,保障数据安全。
  • 开源免费:遵循 MIT 许可证,开源免费。

官方文档: NPS官方文档
GitHub地址: NPS GitHub
Docker镜像: NPS Docker镜像
下载客户端: NPS 客户端下载


安装教程

服务端部署(Docker方式)

  1. 安装Docker

    首先更新系统并安装 Docker 及 Docker Compose:

    sudo apt update
    sudo apt install -y docker.io docker-compose
    
  2. 安装 NPS 服务端

    使用 Docker 拉取并运行 NPS 服务端镜像:

    sudo docker run -d --name nps --net=host -v /root/docker/nps/config:/nps/conf oldiy/nps-server
    
  3. 停止运行容器

    修改配置前,需要先停止容器:

    sudo docker stop nps
    
  4. 修改配置文件

    打开配置文件 nps.conf 进行修改:

    sudo vim /root/docker/nps/config/nps.conf
    

    配置示例:

    bridge_port=8024    # 客户端连接端口
    web_username=admin   # 后台管理用户名
    web_password=123     # 后台管理密码
    web_port=8080        # 后台管理端口
    
  5. 启动容器

    配置修改完毕后,重启 NPS 容器:

    sudo docker start nps
    
  6. 访问管理页面

    服务启动后,浏览器访问 http://服务器IP:8080,使用配置文件中的 admin/123 进行登录。


客户端部署

  1. 下载客户端

    根据操作系统下载对应的 NPS 客户端:NPS 客户端下载

  2. 编写启动脚本

    编写启动脚本 start.bat,内容如下:

    npc.exe -server=xxx.xxx.xxx.xxx:8024 -vkey=0vkyonemij0f4r64
    

    vkey 为客户端秘钥,可以通过 NPS 管理后台获取。

  3. 启动客户端

    双击 start.bat 启动客户端连接。


总结

通过 Docker 部署 NPS 内网穿透服务,可以轻松实现内网服务的公网访问,并支持多种协议的灵活配置。NPS 的轻量级、高性能、多平台支持使其成为内网穿透服务的理想选择,同时提供了强大的安全性和简单易用的管理界面。

images

复制全文 生成海报 网络 代理 开源软件 Docker 安全

推荐文章

Vue3如何执行响应式数据绑定?
2024-11-18 12:31:22 +0800 CST
PHP 压缩包脚本功能说明
2024-11-19 03:35:29 +0800 CST
Go 单元测试
2024-11-18 19:21:56 +0800 CST
OpenCV 检测与跟踪移动物体
2024-11-18 15:27:01 +0800 CST
PHP设计模式:单例模式
2024-11-18 18:31:43 +0800 CST
在 Vue 3 中如何创建和使用插件?
2024-11-18 13:42:12 +0800 CST
Python Invoke:强大的自动化任务库
2024-11-18 14:05:40 +0800 CST
五个有趣且实用的Python实例
2024-11-19 07:32:35 +0800 CST
Vue3 vue-office 插件实现 Word 预览
2024-11-19 02:19:34 +0800 CST
全栈利器 H3 框架来了!
2025-07-07 17:48:01 +0800 CST
16.6k+ 开源精准 IP 地址库
2024-11-17 23:14:40 +0800 CST
MySQL 1364 错误解决办法
2024-11-19 05:07:59 +0800 CST
Vue3中如何处理路由和导航?
2024-11-18 16:56:14 +0800 CST
Vue3结合Driver.js实现新手指引功能
2024-11-19 08:46:50 +0800 CST
html一些比较人使用的技巧和代码
2024-11-17 05:05:01 +0800 CST
pin.gl是基于WebRTC的屏幕共享工具
2024-11-19 06:38:05 +0800 CST
程序员茄子在线接单