[ Docker ] 部署 nps 和 npc 实现内网穿透

这篇具有很好参考价值的文章主要介绍了[ Docker ] 部署 nps 和 npc 实现内网穿透。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

https://www.cnblogs.com/yeungchie/

nps 原作者已停止维护,现在用 yisier1/nps

云主机上运行 nps

创建目录

mkdir -p /root/docker/nps
mkdir /root/repo

下载必要文件

Docker 镜像

docker pull yisier1/nps

Git 仓库

git clone https://github.com/yisier/nps.git /root/repo
cp -r /root/repo/nps/conf /root/docker/nps/config

修改配置

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

打开后重点关注下面这几项:


bridge_port=8024    # 客户端连接端口

web_username=admin  # 后台管理用户名
web_password=123    # 后台管理密码
web_port=8080       # 后台管理端口

以上是默认的配置,建议改掉。

运行容器

docker run -d --restart=always --name nps --net=host -v /root/docker/nps/config:/conf -v /etc/localtime:/etc/localtime:ro yisier1/nps

现在 nps 已经开始运行了。

现在可以在网页端访问 <ip_addr>:<web_port>,并通过用户名 <web_username> 和密码 <web_password> 登录后台管理界面了。
能够成功访问后,继续下面的步骤。

添加客户端

点击左侧菜单栏的 客户端 选项,再点击新增。

[ Docker ] 部署 nps 和 npc 实现内网穿透

设置一个 客户端验证密钥,这里可以随便填。压缩、加密愿意的话也可以选 yes。

[ Docker ] 部署 nps 和 npc 实现内网穿透

设置好后点击 新增 即可。

[ Docker ] 部署 nps 和 npc 实现内网穿透

留意一下这里的 idvkey

本地机上运行 npc

本地机建议选择一台 7*24 小时运行的设备,一般是路由器或者 NAS。

下载必要文件

Docker 镜像

docker pull yisier1/npc

创建容器

docker run -d --restart=always --name npc --net=host yisier1/npc -server=$ip:$ridge_port -vkey=$vkey

服务端功能创建运行后,在 nps 后台可以看到客户端已经在线。

[ Docker ] 部署 nps 和 npc 实现内网穿透

后台配置 nps

前面部署 nps 时候已经配置了一部分了,接下来要配置的就是具体需要穿透的端口了。

添加 tcp 隧道

这里举例配置一下 Jellyfin 的 http 端口 8096
进入 nps 后台管理,点击左侧菜单栏的 客户端 选项,再点击新增。

[ Docker ] 部署 nps 和 npc 实现内网穿透

  • 类型
    这里选 tcp 不用动它。
  • 备注
    随便填,方便自己记就行。
  • 服务器端口
    指外放访问端口,我这里跟 Jellyfin 内网一致了,这里只是为了演示用默认,等下就会改掉。
  • 目标
    指内网对应服务的地址和端口。
  • 客户端 id
    就是上面我说了要留意一下的 id,我这里是 3

[ Docker ] 部署 nps 和 npc 实现内网穿透

然后点击 新增

[ Docker ] 部署 nps 和 npc 实现内网穿透

这样一条隧道就添加好了。

至此内网穿透算是部署好了。

尝试访问一下 Jellyfin。

[ Docker ] 部署 nps 和 npc 实现内网穿透

容器保活

有时候运行的容器会自己挂掉,虽然不经常发生,但是偶尔来一次,遇上刚好要用的时候就很烦人。
下面演示我在服务端如何让容器保活的,方法比较粗暴但有效。

创建目录

创建目录来存放脚本和日志文件。

mkdir -p /root/docker/nps/script
mkdir -p /root/docker/nps/log

获取容器 ID

docker ps -a --no-trunc | perl -alne 'print $F[0] if /\bnps$/'

会得到一长串 ID,记下来 <nps_id>

keepActive.sh

创建 bash 脚本,放到 /root/docker/nps/script/keepActive.sh

#!/bin/bash
cur=$(cd $(dirname $0); pwd -P)
log="$cur/../log/log"
a=$(docker ps -q --no-trunc | grep '<nps_id>')  # 这里其实就是去匹配看看当前运行中的容器有没有nps,<nps_id>改成上一步获取到的。
if [[ "_$a" == "_" ]]; then
    docker restart nps  # 第一次重启 nps
    if [[ $? == 0 ]]; then
        echo "Revive  $(date +'%F %T')" >> $log
    else
        echo "Failed  $(date +'%F %T')" >> $log
        systemctl restart docker.service  # 重启失败大概率是 docker 服务挂了,这里重启服务
        docker restart nps
        echo "Restart $(date +'%F %T')" >> $log
    fi
else
    echo "Active  $(date +'%F %T')" >> $log
fi

如果是服务器 docker 挂了,且重启失败,那就不是保不保活的问题了,登上服务器检查吧。

crontab.set

创建一个 crontab.set,用来配置定时任务。这个文件就随便放了,一次性的。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

*  *  *  *  * /root/docker/nps/script/keepActive.sh

接着运行:

crontab crontab.set

这里是配置一分钟运行一次 keepActive.sh 脚本,所以如果 nps 挂了,一分钟内它就会重启了。

如果你还配置了其他的定时任务,那你应该知道怎么设置 crontab,别把以前配置的任务给覆盖了。文章来源地址https://www.toymoban.com/news/detail-423013.html

到了这里,关于[ Docker ] 部署 nps 和 npc 实现内网穿透的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【内网安全-隧道搭建】内网穿透_Nps配置、上线

    目录 Nps(自定义上线) 1、简述: 2、工具的配置:  1、准备: 2、服务端配置: 3、客户端配置 3、工具的使用: 1、web管理界面 2、客户端上线  3、msf后门 1) nps: 是一款轻量级、高性能、功能强大的内网穿透代理服务器 2) 功能: 目前支持 tcp、udp 流量转发,可支持任何

    2024年02月03日
    浏览(38)
  • 使用NPS搭建内网(穿透[保姆级教程])

    服务端的配置 下载的zip文件先解压(太慢了我是在外面下载的 拖进去的) 成功开启后在web端访问vpsip:8080,进入npsweb控制端。 然后点击客户端,新建一个客户端的链接方式。 点击隧道,添加各种自己想设置的代理。 Sockets代理 Sockets代理设为1998端口。 端口转发 把内网靶机的

    2024年02月11日
    浏览(42)
  • 内网穿透代理服务器nps使用初探(三)微信小程序内网穿透

    已完成NPS 的部署,部署教程请参照:https://gaoming.blog.csdn.net/article/details/128203454 内网IP 系统 内核 192.168.1.113 win11 windows_amd64_client 公网IP 系统 内核 39.97.238.139 CentOS linux_amd64_server 内网网站(内网机器 192.168.1.113 上部署的 Web 服务,因微信小程序开发需要采用 https 协议, https 端

    2024年02月09日
    浏览(81)
  • 如何在Docker部署Drupal并结合内网穿透实现远程访问

    Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它的学习曲线可能相对较陡,但一旦熟悉了它的工作方式,用户就能够充分利用其功能和灵活性。在本文中,我们将介绍如何使用Docker快速部署Drupal,并且结合cpolar内网穿透工具实现公

    2024年02月07日
    浏览(43)
  • 使用docker部署RStudio容器并结合内网穿透实现公网访问

    RStudio Server 使你能够在 Linux 服务器上运行你所熟悉和喜爱的 RStudio IDE,并通过 Web 浏览器进行访问,从而将 RStudio IDE 的强大功能和工作效率带到基于服务器的集中式环境中。 下面介绍在Linux docker中安装RStudio Server并结合cpolar内网穿透工具,实现远程访问,docker方式安装可以避免

    2024年01月19日
    浏览(49)
  • 内网安全-隧道搭建&穿透上线&FRP&NPS&Ngrok

    目录 环境介绍 内网穿透-Ngrok-入门-上线--tcp协议 内网穿透-Frp-简易型-上线 内网穿透-Nps-自定义-上线  环境介绍 实验目的:让msf上线外网,通常情况下,内网可以访问外网,但是外网无法访问到内网,所以外网的木马通常情况下不可能链接到内网。 红色的云作为跳板机,通过

    2023年04月08日
    浏览(96)
  • 使用nps搭建内网穿透并配置泛域名解析

    nps是什么? nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议,此外还支持内网http代理、内网socks5代理、p2p等,并带有功能强大的web管理端。 一台拥有公网IP的云服务器,我这里使用的是腾讯云轻量应用服务

    2024年02月05日
    浏览(81)
  • 使用Docker本地部署Jupyter Notebook并结合内网穿透实现远程访问

    本文主要介绍如何在Ubuntu系统中使用Docker本地部署Jupyter Notebook,并结合cpolar内网穿透工具实现任意浏览器公网远程访问Jupyter登录界面。 Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言。可以使用它来创建和共享程序文档,支持实时代码,数学方程,可视化和 ma

    2024年02月02日
    浏览(54)
  • 使用Docker部署Apache Superset结合内网穿透实现远程访问本地服务

    Superset是一款由中国知名科技公司开源的“现代化的企业级BI(商业智能)Web应用程序”,其通过创建和分享dashboard,为数据分析提供了轻量级的数据查询和可视化方案。Superset在数据处理和可视化方面具有强大的功能,能够满足企业级的数据分析需求,并为用户提供直观、灵

    2024年01月23日
    浏览(66)
  • Docker部署MinIO对象存储服务器结合内网穿透实现远程访问

    MinIO是一个开源的对象存储服务器,可以在各种环境中运行,例如本地、Docker容器、Kubernetes集群等。它兼容Amazon S3 API,因此可以与现有的S3工具和库无缝集成。MinIO的设计目标是高性能、高可用性和可扩展性。它可以在分布式模式下运行,以满足不同规模的存储需求。 MinIO是

    2024年02月04日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包