搭建内网穿透服务器教程,NPS搭建和使用教程(docker下安装)-技术组论坛-其他-MTgame

搭建内网穿透服务器教程,NPS搭建和使用教程(docker下安装)

在这个高度互联的时代,我们越来越依赖互联网来实现工作和生活的各种需求。然而,随着一些省份逐步收回家庭用户的公网IPv4地址(目前国内大部分地方都是多个用户共用一个公网IPv4地址),我们无法直接通过公网访问家里的设备和服务,这给我们带来了一定的困扰。但是别担心,内网穿透技术就是解决这个问题的绝佳方案。

在本教程中,我们将介绍一款名为NPS的轻量级内网穿透工具,它不仅支持多平台,包括X86、ARM和MIPS,而且还提供了便捷的WEB管理界面,使得搭建和配置内网穿透服务器变得简单而直观。

内网穿透简介

内网穿透是一种将内部网络的服务暴露到公网的技术,使得外部用户可以通过互联网访问内部网络中的服务。它允许在没有公网 IP 地址或端口转发的情况下,通过一个中间代理服务器将内部网络的服务暴露给外部用户。

内网穿透通常用于以下场景:

  1. 远程访问:当内部网络中的设备需要被外部用户远程访问时,可以使用内网穿透技术。例如,通过内网穿透可以将家庭网络中的个人电脑、NAS(网络附加存储)等设备暴露给外部用户,实现远程访问和控制。
  2. 远程办公:在企业中,员工可能需要从外部网络访问内部网络中的办公应用、文件共享等资源。内网穿透可以提供一种安全的方式,让员工能够远程访问这些资源,实现远程办公。
  3. 数据备份和同步:内网穿透可以用于将内部网络中的文件、数据库等数据备份到外部云存储服务或同步到其他设备。这样即使内部网络出现故障,数据仍然可以从外部网络进行恢复和同步。
  4. 搭建网站和应用程序:内网穿透可以用于将内部网络中的网站、应用程序等服务暴露给外部用户。通过内网穿透,开发者可以在本地搭建并测试自己的网站或应用程序,而无需购买公网 IP 地址或使用其他复杂的端口转发设置。

常见的内网穿透工具包括 ngrok、frp、nps 等。这些工具提供了简单易用的界面和配置选项,可以帮助用户快速搭建内网穿透环境。然而,需要注意的是,在使用内网穿透技术时,安全性是非常重要的考虑因素,应该采取适当的安全措施来保护内部网络的安全。

NPS介绍

nps是一款轻量级、高性能、功能强大的内网穿透代理服务器。目前支持TCP、UDP流量转发,可支持任何tcp、udp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、游戏私服、我的世界服务器 等等……),此外还支持内网http代理、内网socks5代理p2p等,同时支持snappy压缩、站点保护、加密传输、多路复用、header修改等。支持web图形化管理,集成多用户模式。

案例:

  1. 做微信公众号开发、小程序开发等—-> 域名代理模式
  2. 想在外网通过ssh连接内网的机器,做云服务器到内网服务器端口的映射,—-> tcp代理模式
  3. 在非内网环境下使用内网dns,或者需要通过udp访问内网机器等—-> udp代理模式
  4. 在外网使用HTTP代理访问内网站点—-> http代理模式
  5. 搭建一个内网穿透ss,在外网如同使用内网vpn一样访问内网资源或者设备—-> socks5代理模式

NPS项目Github地址:https://github.com/yisier/nps 4

NPS官方中文文档:https://ehang-io.github.io/nps/#/ 7

特点

  • 协议支持全面,兼容几乎所有常用协议,例如tcp、udp、http(s)、socks5、p2p、http代理…
  • 全平台兼容(linux、windows、macos、群辉等),支持一键安装为系统服务
  • 控制全面,同时支持服务端和客户端控制
  • https集成,支持将后端代理和web服务转成https,同时支持多证书
  • 操作简单,只需简单的配置即可在web ui上完成其余操作
  • 展示信息全面,流量、系统信息、即时带宽、客户端版本等
  • 扩展功能强大,该有的都有了(缓存、压缩、加密、流量限制、带宽限制、端口复用等等)
  • 域名解析具备自定义header、404页面配置、host修改、站点保护、URL路由、泛解析等功能
  • 服务端支持多用户和用户注册功能

原文链接

使用NPS搭建内网(穿透[保姆级教程])_nps教程-CSDN博客

雨云服务器搭建内网穿透服务器教程,NPS搭建和使用教程 – 综合讨论 – 雨云论坛 (rainyun.com)

准备

首先需要一台云服务器,要有公网IP的,并安装一个Linux系统,推荐ubuntu20.04

安装Docker

如果选择了预安装Docker环境就直接跳过安装这一步,直接Docker换国内源那一步。

Docker是一种流行的容器化平台,它能够简化应用程序的部署和管理。本文将介绍在Ubuntu操作系统上安装Docker的步骤,以便我们可以开始使用Docker来构建和运行容器化应用程序。

系统版本

本文以Ubuntu20.05系统为例安装docker,Ubuntu官方下载地址

检查卸载老版本docker

ubuntu下自带了docker的库,不需要添加新的源。
但是ubuntu自带的docker版本太低,需要先卸载旧的再安装新的。

注:docker的旧版本不一定被称为docker,docker.io 或 docker-engine也有可能,所以我们卸载的命令为:

$ apt-get remove docker docker-engine docker.io containerd runc

如果不能正常卸载,出现如下情况,显示无权限时,需要添加管理员权限才可进行卸载:

v2-90241efe0f829a37c1db3fad3349c849_b

使用root权限来进行卸载。

sudo apt-get remove docker docker-engine docker.io containerd runc

安装步骤

  1. 更新软件包

在终端中执行以下命令来更新Ubuntu软件包列表和已安装软件的版本:

sudo apt update sudo apt upgrade
  1. 安装docker依赖

Docker在Ubuntu上依赖一些软件包。执行以下命令来安装这些依赖:

apt-get install ca-certificates curl gnupg lsb-release
  1. 添加Docker官方GPG密钥

执行以下命令来添加Docker官方的GPG密钥:

v2-0bd38706177023cfe438258e1009d83a_b

  1. 添加Docker软件源

执行以下命令来添加Docker的软件源:

sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

v2-cbcdc65224f69f4e6c3c5ee5ac696012_b

  1. 安装docker

执行以下命令来安装Docker:

apt-get install docker-ce docker-ce-cli containerd.io
  1. 配置用户组(可选)

默认情况下,只有root用户和docker组的用户才能运行Docker命令。我们可以将当前用户添加到docker组,以避免每次使用Docker时都需要使用sudo。命令如下:

sudo usermod -aG docker $USER

注:重新登录才能使更改生效。

运行docker

我们可以通过启动docker来验证我们是否成功安装。命令如下:

systemctl start docker

安装工具

apt-get -y install apt-transport-https ca-certificates curl software-properties-common

重启docker

service docker restart

验证是否成功

sudo docker run hello-world

运行命令后,结果如下:

v2-97314d2165190bb4a6926facc7e77eeb_b

因为我们之前没有拉取过hello-world,所以运行命令后会出现本地没有该镜像,并且会自动拉取的操作。

查看版本

我们可以通过下面的命令来查看docker的版本

sudo docker version

v2-89ef2e517ffd86d80f65b6a0d2a0b159_b

查看镜像

上面我们拉取了hello-world的镜像,现在我们可以通过命令来查看镜像,命令如下:

sudo docker images

结果如下图:

v2-240135177c5b1fbe9d8897dac4beec4c_b

出现上述情况,即表示我们成功在Ubuntu系统上安装了docker。

搭建NPS服务端

安装NPS服务端:

 
# 创建 /opt/nps 目录存放配置文件
mkdir /opt/nps

# 安装wget并且下载配置文件
apt install -y wget && wget https://cn-sy1.rains3.com/rainyun-assets/Pic/2023/11/conf_1b8df8f61551218f81065d9b20288371.zip

# 解压配置文件到 /opt/nps 目录
apt install unzip && unzip conf_1b8df8f61551218f81065d9b20288371.zip -d /opt/nps

# 拉取 yisier1/nps 镜像
docker pull yisier1/nps

# 运行 nps 容器,配置文件夹 conf 在 /opt/nps/conf 目录下
docker run -d --name=nps --restart=always --net=host -v /opt/nps/conf:/conf yisier1/nps

# 查看日志
docker logs nps

安装完后在浏览器打开:http://你服务器IP:8080 4

使用用户名和密码登陆(默认admin/123,正式使用一定要更改,修改/opt/nps/conf/nps.conf配置文件中的web_password)

修改密码:

 
# 安装nano编辑器,编辑nps.conf文件
apt install nano && nano /opt/nps/conf/nps.conf

# 找到web_password这一项,修改密码,修改完后按Ctrl+O,然后回车保存,接着按Ctrl+X退出编辑器
# 建议将public_vkey设置为空

# 修改完后重启NPS容器
docker restart nps

服务端配置文件解析:

名称 含义
web_port web管理端口
web_password web界面管理密码
web_username web界面管理账号
web_base_url web管理主路径,用于将web管理置于代理子路径后面
bridge_port 服务端客户端通信端口
https_proxy_port 域名代理https代理监听端口
http_proxy_port 域名代理http代理监听端口
auth_key web api密钥
bridge_type 客户端与服务端连接方式kcp或tcp
public_vkey 客户端以配置文件模式启动时的密钥,设置为空表示关闭客户端配置文件连接模式
ip_limit 是否限制ip访问,true或false或忽略
flow_store_interval 服务端流量数据持久化间隔,单位分钟,忽略表示不持久化
log_level 日志输出级别
auth_crypt_key 获取服务端authKey时的aes加密密钥,16位
p2p_ip 服务端Ip,使用p2p模式必填
p2p_port p2p模式开启的udp端口
pprof_ip debug pprof 服务端ip
pprof_port debug pprof 端口
disconnect_timeout 客户端连接超时,单位 5s,默认值 60,即 300s = 5mins

客户端安装使用

首先登陆进来NPS服务端的WEB管理页面,找到【客户端】,点击【新增】。

备注这里就根据需要写,其他的看着来就行。最后点击【新增】

刷新一下就能看到我们添加的客户端了,目前是处于离线状态。左边有一个小加号,点击可以展开。下面的客户端命令我们一会要用。下面是各种客户端安装方法,选一种适合的就行。

Windows

首先下载Windows版的客户端:

github下载地址:https://github.com/yisier/nps/releases 6

雨云ROS下载地址:https://cn-sy1.rains3.com/rainyun-assets/Pic/2023/11/windows_amd64_client.tar.gz

我在需要运行NPS客户端的Windows设备的C盘根目录下建立一个名字叫【npc】的目录,将刚才下载的NPS客户端的文件解压后放到里面。这里注意,我们只要【npc.exe】文件即可。

然后以管理员身份运行命令提示符,输入 cd /npc 跳转到npc目录下,输入以下命令:

npc.exe -server=你的IP:8024 -vkey=新增客户端生成的密钥 -type=tcp

这样我们的npc就添加到系统服务里了,再找到 控制面板 – 管理工具 – 服务 里找到【nps内网穿透客户端】,找到【恢复】选项卡,按照下图中设置即可。设置完成后就可以启动服务了。

这样客户端就连接到了NPS的服务端了

请登录后发表评论

    没有回复内容