Docker安装一个带web界面的内网穿透工具-nps

2019-3-19 作者更新0.18.0以上版本默认暂不支持中文UI,想用的可以使用0.16.0

2019-3-19 更新视频教程:https://odcn.top/2019/03/20/2955/

经过博主测试,nps客户端无需任何设置,全部设置均可在服务器web页面设置完成!可以说相当方便,适合小白使用~!

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持tcp、udp流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析等等……),此外还支持内网http代理、内网socks5代理,可实现在非内网环境下如同使用vpn一样访问内网资源和设备的效果。

目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。

Docker

https://hub.docker.com/r/oldiy/nps-server

https://hub.docker.com/r/oldiy/npc-client

 

本项目地址:https://github.com/cnlh/nps

今天我们只讲以Centos7作为服务器群晖作为客户端为例的一个教程,其他环境请到页面下方加入群聊一起讨论!

由于是内网穿透服务,所以一定会有一个服务器端和一个客户端,好了,我们按步骤开始安装走起!使用Docker安装服务器端。

1.安装docker

  • 执行以下几条命令
  • 安装并启动Docker

2.安装nps服务器

  • 执行以下命令安装nps服务器端
  • 将<本机conf目录>修改为你自己需要保存conf文件的目录
  • 修改并输入以下命令启动nps服务器

如果运行成功就可以通过 http://<Centos7 IP>:8080 访问管理服务器,默认密码123。

如果测试无误后,可以添加如下参数,让nps总是可以自动重启(听不懂这条可以无视)

特殊情况(已安装过其他服务占用了80等端口)

安装完毕后如果服务器端口已经被占用的情况,服务会启动失败,同时<本机conf目录>下面已经有了nps.conf文件,如果本机端口被占用,服务启动失败,此时我们编辑conf文件,修改被占用的默认端口,再重新执行以上命令即可。

输入下面命令查看已经使用的端口

对照conf文件查找冲突端口,并修改

编辑conf方法如下

进入后按Ins键进入编辑,编辑结束后按 Esc,之后输入:wq 回车保存退出

重新执行第2步命令即可!

之后就可以通过http://<Centos7 IP>:8080 访问服务器web管理界面,默认密码123。

服务端配置文件

  • nps.conf
名称 含义
httpport web管理端口
password web界面管理密码
bridePort 服务端客户端通信端口
pemPath ssl certFile绝对路径
keyPath ssl keyFile绝对路径
httpsProxyPort 域名代理https代理监听端口
httpProxyPort 域名代理http代理监听端口
authip web api免验证IP地址
bridgeType 客户端与服务端连接方式kcp或tcp
publicVkey 客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式
ipLimit 是否限制ip访问,true或false或忽略
flowStoreInterval 服务端流量数据持久化间隔,单位分钟,忽略表示不持久化
logLevel 日志输出级别

3.设置防火墙

如果开了防火墙,我们需要关闭防火墙或者放行8080、8284、80、443端口,如需要其他端口,自己放行!

  • 关闭防火墙执行以下命令

此时服务器端安装完毕!

4.在web界面新建一个客户端(只做http内网网页穿透演示)

添加客户端——设置备注名和链接秘钥!并牢记你设置的<秘钥>,客户端连接需要使用!

之后添加要穿透内网使用的域名。并确认域名已经解析到你的nps服务器IP。

点击新增

这里添加需要绑定的域名(域名需解析到nps服务器),并填写内网IP+端口

  • 如果需要其他穿透服务,可以查看 http://<服务器IP>:8080/index/help 有详细官方教材

按操作添加客户端和域名后,我们进行客户端的安装

5.群晖安装客户端教程

群晖打开Docker并注册表搜索 oldiy,找到项目

下载之后,到镜像——找到项目选中——启动——高级设置——环境——修改服务器IP 和秘钥,然后应用启动容器。

此时容器启动后,我们回到nps服务器——客户端管理,可以看到群晖客户端已经连接成功,可以点击后面的 (域名、隧道)添加穿透类型!(可以点击左下方使用说明查看详细介绍)

 

经过测试使用,nps的最大优点就是客户端无需任何设置,无需编写conf文件,直接连接到服务器之后,全部穿透和隧道均可以在服务器web端操作添加!相当方便!并且支持https,支持socks5等等。

作者更新也很频繁,相信nps以后一定会越来越好用,越来越强大的!


常见问题

docker run 命令无法启动容器,使用 docker ps 看不到启动容器

可以使用  docker ps -a  查看未启动的容器,docker logs –tail -tf  容器名/容器ID  查看日志,找出错误原因,一般都是 cp xxxxxx Permission denied 这个错误

出现这个问题都是因为在挂载主机目录的到容器后,操作挂载的目录出现权限问题导致

原因是CentOS7中的安全模块selinux把权限禁掉了,提供2个方法解决该问题

docker rm 容器ID  删除创建失败的容器

方法1

添加 –privileged=true  参数,使用高权限(因为很多人使用的vps都有selinux安全模块,所以此方法已经更新到教程里!)

方法2

临时关闭selinux:

其他系统安装Docker方法

安装好docker之后,直接跳转到第2步安装nps即可

 


  • 本站教程,未注明转载均为原创内容,仅做为学习参考使用,切勿用于非法及商业用途!造成的后果作者不承担任何责任!
  • 如果转载请注明出处!oD^Blog
  • 本文如果需要更新,或者失效请联系微信 : oldiy2018 【微信不解答任何问题,不接收任何红包!】
  • 如果支持作者,请点击下方赞赏,支持一杯饮料!
  • 如果有问题可以点击【加入电报群】和我一起沟通或者下方留言讨论!
赞赏

微信赞赏支付宝赞赏

You may also like...

33 Responses

  1. zhouhui说道:

    oldiy出品必属精品,现在好了,可以免费直接使用一级域名了,是这样的么?打脸不?

  2. 孙先生说道:

    群晖docker中搜索到不能下载,nps-client提示没有标签

  3. x说道:

    请教一个新手问题,群辉的docker是图形界面,如何执行类似这种命令行
    docker run -d \
    –name=xware \
    -m 256m \
    -p 9000:9000 \
    -v ~/data:/data \
    –mac-address 00:1A:2B:3C:4D:5E \
    –privileged \
    keli/xiazaibao-xware

  4. garry说道:

    nps不稳定,开了个sock5代理,然后通过sock5代理开远程桌面,在远程桌面里面拷贝文件到本地多次都是直接异常断开.用frps就完全没问题

  5. 木子说道:

    群晖只是安装的客户端, 那服务的只能安装在linux 服务器下吗?
    我想使用一个群晖是用不了的把。还要linux 服务器是吗?

  6. zehuali说道:

    请问下,我添加域名代理的时候,显示添加失败是咋回事?

  7. 胖胖说道:

    请问debian 上如何安装的

  8. 追风说道:

    您好,请教个小白问题,本机conf目录怎么填

  9. 说道:

    Unable to find image ‘oldiy/nps-server:latest’ locally
    Trying to pull repository docker.io/oldiy/nps-server …
    latest: Pulling from docker.io/oldiy/nps-server
    c87736221ed0: Pull complete
    566dc862703e: Pull complete
    f81da1b20dea: Pull complete
    eb96cc262e5c: Pull complete
    Digest: sha256:067e0128ea2f8ca4be912866de682e506e347a395584245cba1d20fda508d9ff
    Status: Downloaded newer image for docker.io/oldiy/nps-server:latest
    /usr/bin/docker-current: Error response from daemon: error creating overlay mount to /var/lib/docker/overlay2/bb6698b41b0fccbcec89d97ed89d68cc5475b6185e20628b33d3450cd509ca6b-init/merged: invalid argument.
    See ‘/usr/bin/docker-current run –help’.

    什么问题啊,不成功

  10. complexray说道:

    疑问:
    1.公网主机和内网群晖之间可以成功通讯吗?
    2.公网主机和内网服务器之间可以成功通讯吗?

  11. 随便说道:

    请问怎样获得一个centos7的服务器呢?

  12. jiulinxiri说道:

    你好,nps内网穿透已经做好,请问这个能解决 PLEX 的远程访问问题吗?

  13. 伊阳说道:

    博主好,照着你的方法服务器端装了nps,监听端口因和宝塔冲突给改了88,在宝塔面板里和ecs里都对监听、隧道、web端口做了放行,但就是打不开,也不知道啥原因

  14. 玉米说道:

    楼主你好,我是小白,按照你的步骤操作,最后用地址访问链接不上
    vps:阿里云vps
    端口:应该没有冲突,显示的80 以及 8080 后面对应的是nps
    防火墙,按照你给的命令运行过一遍

  15. 刘世超说道:

    通过docker 安装的服务器端目录安装在哪里,后续要更新版本呢。
    还有如何起停nps服务呢,直接起停容器么?

  16. 666说道:

    不行啊 ,客户端显示nas外网ip已经更新上去 内网ip+端口也检查过没错 但是我的域名 就是访问不了nas

发表评论

电子邮件地址不会被公开。 必填项已用*标注