文章目录

  • 前言
  • 一、NPS概述
  • NPS的原理
  • 二、NPS服务器搭建
  • 1、下载软件
  • 2、云服务器配置
    • 2.1、防火墙配置
    • 2.2、用WinSCP远程上传服务文件
    • 2.3、使用SSH终端安装启动
    • 2.4、如何解决无法启动nps的问题
    • 2.5、修改配置文件
  • 三、客户端连接
  • 总结

前言

本教程就是教大家使用NPS搭建一个内网穿透服务。


一、NPS概述

NPS是一款轻量级、高性能、功能强大的内网穿透代理服务器,支持tcp、udp、http等几乎所有流量转发,支持WEB界面管理主机连接。

NPS的原理

运行NPS服务的云服务器和运行NPS客户端的主机之间会创建一条TCP或UDP隧道,可以映射云服务器上的某个端口到客户端主机的指定端口,其他主机访问云服务器的这个端口的流量都会通过创建的这条隧道转发到映射的主机端口,实现内网穿透效果。

二、NPS服务器搭建

1、下载软件

本教程使用的是github上面的一款开源工具,具体链接附在下面。下载与自己服务器和客户端的系统相对应的版本,如果无法访问,也可以通过我的网盘分享下载,网盘里面有linux和windows的64位服务端,还有windows64位的客户端。

https://github.com/ehang-io/nps/releases

网盘链接:https://pan.baidu.com/s/10a6RQPi16ivwjHt5qPKEFA
提取码:zx68

2、云服务器配置

首先需要一台云服务器,可以选择腾讯云或者阿里云等云服务器厂商,通常有很大的折扣力度,我选的是腾讯云的轻量应用服务器ubuntu20.04系统。

2.1、防火墙配置

需要放行以下端口(后文会描述如何自行更改端口,增加安全性)
TCP22:用于远程SSH连接
TCP8080:用户NPS管理界面的默认登录端口

2.2、用WinSCP远程上传服务文件

  • 使用WinSCP通过22端口以root身份连接服务器,再上传服务器文件linux_amd64_server.tar.gz。
  • 如果你的云服务器是windows系统,可以直接使用windows自带的远程桌面把软件复制过去。

2.3、使用SSH终端安装启动

使用MobaXterm、SecureCRT或PUTTY等终端ssh连接云服务器,进行配置。

  • 安装
mkdir nps //创建nps使用的文件夹
mv linux_amd64_server.tar.gz ./nps //把软件移动到创建好的nps文件夹中
cd nps //进入创建的nps文件夹
tar -zxvf linux_amd64_server.tar.gz //解压压缩包,使用"ls"命令就能看到目录下面多了conf和web的文件夹,还有一个可执行文件nps

  • 启动
./nps install //输入安装命令
nps start //启动nps服务

如果是windows系统,管理员身份运行cmd,安装时输入nps.exe install,启动需要进入程序目录输入nps.exe start。
安装后windows配置文件位于C:\Program Files\nps,linux位于/etc/nps

2.4、如何解决无法启动nps的问题

=====================
How to resolve the issue?

Step 1:
run nps, it will show the log

we can see the 80 port have been used by other program, so we need to change the port.

Step 2:
chang the 80 port to 81 port, if the 81 port, you have been used, you can change to other port.
vi /ect/nps/conf/nps.conf


Step 3:
nps restart
ps -ef|grep nps
netstat -anp|grep “:81”

Step 4:
check the “IP:8080” in browser.
If you use the aliyun, you need to open the 8080 port and 81 port in aliyun security policy(安全策略).

Also if the 8080 port has been used , you also need change the 8080 port to other port.

=====================

  • 浏览器打开IP+8080端口,即可看到nps管理界面,用户名和密码默认是admin/123,请及时修改。

2.5、修改配置文件

  • 如果需要修改登录用户名、密码、网页登录端口等信息,可以修改/etc/nps下的nps.conf文件,相关的参数信息可以看表格。

名称 含义
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
  • 仪表盘里面可以看到客户端的连接端口默认为8024,需要在云服务器的防火墙放行此端口才能正常工作。

三、客户端连接

  • 点击仪表盘里面的客户端,按图片所示新增一个客户端。

  • 填写备注,下面的压缩和加密选择“是”。

  • 添加好后就会得到一个客户端ID为2。

  • 点击左边的加号,会出现下面的一条客户端命令,这个命令是在windows系统下面执行的,执行的时候不需要前面的"./"。

  • 在保存了nps客户端的文件里按住shift键点击鼠标右键,打开Powershell

  • 输入命令cmd,和从网页上获取到的命令,出现Successful就可以了。

  • 此步骤可以修改conf里面的配置,直接将vkey写入配置文件,点击nfc运行即可。

  • 可以看到网页上的状态显示在线

  • 创建TCP隧道

  • 客户端ID写之前创建客户端得到的ID,服务端端口写一个没有用过的端口就行,当然防火墙里面也要放行这个端口。目标端口写需要访问的端口。

  • 这样所有访问服务端端口的流量就会被转发到客户端端口,也就成功连接上了处于内网的主机。
  • 目标(IP:端口):127.0.0.1.3389(windows远程端口为3389,这个不能改)

总结

使用nps这样一款小工具实现了内网穿透的效果,可以实现出门在外用轻薄本连接家里游戏主机快乐玩耍的需求,当然其他TCP和UDP的连接也都是可行的,看个人的具体需求,也不会占用云服务太多的资源,非常值得推荐。

【精】如何搭建NPS进行内网穿透相关推荐

  1. centos7搭建nps实现内网穿透

    nps下载地址:https://github.com/ehang-io/nps/releases 一:server端启动nps [root@tiger opt]# tar xzvf linux_amd ...

  2. 树莓派使用NPS实现内网穿透

    :# 树莓派使用NPS实现内网穿透 前言 之前想实现内网穿透,折腾过花生壳,不过有限制.后面又尝试了FRP,不过还没有成功过. 这次使用NPS实现内网穿透,主要看上了它的图形化配置界面. 准备 服务端 ...

  3. frps搭建自己的内网穿透服务器

    开发过程中,很多时候我们需要用到内网穿透,将自己的服务器映射到外网,下面说一下怎么用frps搭建自己的内网穿透服务器 frps Github地址 里面有中文文档,大家可以参考 服务器搭建 服务器搭建 ...

  4. 从创建服务器到搭建一台内网穿透服务器

    文章目录 创建服务器到搭建一台内网穿透服务器 解决VMware虚拟机ip地址经常变化的问题 安装lrzsz Linux中rz和sz命令用法详解 安装插件 安装jdk 安装maven 安装git 安装n ...

  5. 树莓派操作及搭建frp实现内网穿透

    买了个树莓派4b,折腾玩玩 一.安装 安装方法都一样,下载镜像,烧录到内存卡,将内存卡插入树莓派,启动即可 我试过的有ubuntu,centos8,树莓派官方系统(应该是Debian的),还有个复古游 ...

  6. 使用frp搭建自己的内网穿透

    背景 微信开发等场景需要使用公网地址,但开发者本地通常没有公网IP,需要搭建内网穿透来方便调试.通常可以使用花生壳.Ngrok.frp等.花生壳需要实名认证, 需要6块钱,且使用别人服务器有一定的安全 ...

  7. 阿里云服务器搭建frp -实现内网穿透

    阿里云服务器搭建frp -实现内网穿透 什么是frp 准备工作 开始搭建 服务端 客户端 什么是frp frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, ...

  8. Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  9. 快速搭建使用FRP内网穿透服务

    快速搭建使用FRP内网穿透服务 frp是一款流行的跨平台开源免费内网穿透工具,支持 Windows.macOS 与 Linux.你只需一台快速稳定的服务器即可愉快地进行内网穿透,实现家中设备公网直接访 ...

最新文章

  1. 【每日一题】剑指 Offer 10- I. 斐波那契数列
  2. 【c语言】蓝桥杯入门训练 Fibonacci数列
  3. 用户空间增加、缩减内存
  4. 【嵌入式开发】 ARM 关闭 MMU ( 存储体系 | I/D-Cache | MMU | CP15 寄存器 | C1 控制寄存器 | C7 寄存器 | 关闭 MMU )
  5. 百度资源管理平台 站长工具 批量添加主站域名 子站域名 域名主动推送
  6. C#获取类名为Internet_Explorer_Server控件的内容
  7. 数据中心不再有空调、风扇等冷却装置会怎样?
  8. 杰克·韦尔奇语录-世界第一CEO
  9. Project Euler Problem 27 Quadratic primes
  10. was supplied but isn‘t a known config
  11. phpwamp mysql_PHPWAMP配置修改与Web服务器和php以及mysql的具体配置修改
  12. 论文阅读_无监督知识图对齐PRASE
  13. 轻松搭建一个BI销售数据分析系统
  14. Linux虚拟机基本操作、Xshell连接、更改IP
  15. C++实现Socket连接通信
  16. Anchor-based和Anchor-free优缺点对比
  17. matlab特征值归一化,如何用matlab将特征向量归一化呢?
  18. MySQL 亿级数据的迁移、清洗、与审计分析
  19. win10笔记本外接屏幕不清晰的解决方法
  20. Linux人机界面用什么软件,浙江Linux人机界面品牌,人机界面界面设计品牌

热门文章

  1. Python - 操作txt文件
  2. flowable的多人会签和一票否决
  3. VUE3中,使用.env.development和.env.production
  4. unittest用例前后置(testFixture测试夹具)
  5. Java 基础面试之集合
  6. Mac远程桌面连接Windows
  7. MindSpore分类指标之准确率、AUC/ROC详解(一)
  8. oracle 光纤盘,IBM 5773 4GB PCI-E HBA光纤通道卡 10N7249 HBA
  9. 2020 物联网架构成长之路-物联网架构小结
  10. 北斗GNSS卫星导航定位芯片架构和设计发展趋势