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

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

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 16:56:14 +0800 CST
liunx宝塔php7.3安装mongodb扩展
2024-11-17 11:56:14 +0800 CST
markdowns滚动事件
2024-11-19 10:07:32 +0800 CST
Vue3中如何处理异步操作?
2024-11-19 04:06:07 +0800 CST
2025,重新认识 HTML!
2025-02-07 14:40:00 +0800 CST
从Go开发者的视角看Rust
2024-11-18 11:49:49 +0800 CST
Vue3中的自定义指令有哪些变化?
2024-11-18 07:48:06 +0800 CST
mysql关于在使用中的解决方法
2024-11-18 10:18:16 +0800 CST
Vue3 组件间通信的多种方式
2024-11-19 02:57:47 +0800 CST
`Blob` 与 `File` 的关系
2025-05-11 23:45:58 +0800 CST
JavaScript 的模板字符串
2024-11-18 22:44:09 +0800 CST
Requests库详细介绍
2024-11-18 05:53:37 +0800 CST
使用Python实现邮件自动化
2024-11-18 20:18:14 +0800 CST
CSS 奇技淫巧
2024-11-19 08:34:21 +0800 CST
npm速度过慢的解决办法
2024-11-19 10:10:39 +0800 CST
Vue中的样式绑定是如何实现的?
2024-11-18 10:52:14 +0800 CST
程序员茄子在线接单