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

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

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 安全

推荐文章

WebSQL数据库:HTML5的非标准伴侣
2024-11-18 22:44:20 +0800 CST
H5端向App端通信(Uniapp 必会)
2025-02-20 10:32:26 +0800 CST
CentOS 镜像源配置
2024-11-18 11:28:06 +0800 CST
XSS攻击是什么?
2024-11-19 02:10:07 +0800 CST
使用 Go Embed
2024-11-19 02:54:20 +0800 CST
jQuery `$.extend()` 用法总结
2024-11-19 02:12:45 +0800 CST
nginx反向代理
2024-11-18 20:44:14 +0800 CST
关于 `nohup` 和 `&` 的使用说明
2024-11-19 08:49:44 +0800 CST
支付轮询打赏系统介绍
2024-11-18 16:40:31 +0800 CST
55个常用的JavaScript代码段
2024-11-18 22:38:45 +0800 CST
Python 获取网络时间和本地时间
2024-11-18 21:53:35 +0800 CST
记录一次服务器的优化对比
2024-11-19 09:18:23 +0800 CST
Vue3中如何扩展VNode?
2024-11-17 19:33:18 +0800 CST
总结出30个代码前端代码规范
2024-11-19 07:59:43 +0800 CST
Vue中的样式绑定是如何实现的?
2024-11-18 10:52:14 +0800 CST
阿里云免sdk发送短信代码
2025-01-01 12:22:14 +0800 CST
程序员茄子在线接单