NPS内网穿透安装配置

作者:神秘网友 发布时间:2020-10-15 20:04:06

NPS内网穿透安装配置

NPS内网穿透安装配置

NPS 内网穿透安装配置文档

 

一款轻量级、高性能、功能强大的内网穿透代理服务器。支持tcp、udp、socks5、http等几乎所有流量转发,可用来访问内网网站、本地支付接口调试、ssh访问、远程桌面,内网dns解析、内网socks5代理等等……,并带有功能强大的web管理端。

github地址: https://github.com/ehang-io/nps

说明文档: https://ehang-io.github.io/nps/#/description

① 本次记录的是使用内网穿透的供能

②原因: 因微信支付需要做回调,所以本地测试需要做内网穿透

③使用nps做内网穿透的几点要求:

要求1: 必须有一个公网的服务器,含有静态ip

要求2:熟悉linux 基础操作

要求3: 本次服务器端使用的centos7.5 x86架构系统,客户端为windows系统(官方文档有别的系统配置)

④需要下载一个服务端,一个客户端 。服务端放在公网服务器 上,客户端放在本地局域网的某台机器上或路由器上(本次放 在本机)

 

mkdir -p /nps/server  #创建多级目录
cd /nps/server
#下载到server目录下并解压
wget https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_386_server.tar.gz
tar -zxvf linux_386_server.tar.gz
#解压后会含有一下目录及文件
# conf  nps  web

下载完服务器压缩包后,解压,然后进入解压后的文件夹

执行安装命令

对于linux|darwin sudo ./nps install

 

修改配置文件

配置文件在 /etc/nps/conf/nps.conf ,只需要修改下面的web的host、账号、密码和端口号即可,其他可保持不变

appname = nps
#Boot mode(dev|pro)
runmode = dev
?
#HTTP(S) proxy port, no startup if empty
http_proxy_ip=0.0.0.0
http_proxy_port=80
https_proxy_port=443
https_just_proxy=true
#default https certificate setting
https_default_cert_file=conf/server.pem
https_default_key_file=conf/server.key
?
##bridge
bridge_type=tcp
#客户端连接端口
bridge_port=8024
bridge_ip=0.0.0.0
?
# Public password, which clients can use to connect to the server
# After the connection, the server will be able to open relevant ports and parse related domain names according to its own configuration file.
public_vkey=123
?
#Traffic data persistence interval(minute)
#Ignorance means no persistence
#flow_store_interval=1
?
# log level LevelEmergency->0  LevelAlert->1 LevelCritical->2 LevelError->3 LevelWarning->4 LevelNotice->5 LevelInformational->6 LevelDebug->7
log_level=7
#log_path=nps.log
?
#Whether to restrict IP access, true or false or ignore
#ip_limit=true
?
#p2p
#p2p_ip=127.0.0.1
#p2p_port=6000
?
#web
#面板host
web_host=39.96.87.0
#面板账号
web_username=nmy
#面板密码
web_password=nmy
#面板启动端口号
web_port = 8888
web_ip=0.0.0.0
web_base_url=
#是否开启https默认不开启
web_open_ssl=false
web_cert_file=conf/server.pem
web_key_file=conf/server.key
# if web under proxy use sub path. like http://host/nps need this.
#web_base_url=/nps
?
#Web API unauthenticated IP address(the len of auth_crypt_key must be 16)
#Remove comments if needed
#auth_key=test
auth_crypt_key =1234567812345678
?
#allow_ports=9001-9009,10001,11000-12000
?
#Web management multi-user login
allow_user_login=false
allow_user_register=false
allow_user_change_username=false
?
?
#extension
allow_flow_limit=false
allow_rate_limit=false
allow_tunnel_num_limit=false
allow_local_proxy=false
allow_connection_num_limit=false
allow_multi_ip=false
system_info_display=false
?
#cache
http_cache=false
http_cache_length=100
?
#get origin ip
http_add_origin_header=false
?
#pprof debug options
#pprof_ip=0.0.0.0
#pprof_port=9999
?
#client disconnect timeout
disconnect_timeout=60
?

启动nps 对于linux|darwin sudo nps start

如果发现没有启动成功,可以使用nps(.exe) stop,然后运行nps.(exe)运行调试,或查看日志(Windows日志文件位于当前运行目录下,linux和darwin位于/var/log/nps.log)

  • 访问服务端ip:web服务端口(默认为8080)

  • 使用用户名和密码登陆(默认admin/123,正式使用一定要更改)

  • 创建客户端

windows下载客户端地址 :https://github.com/ehang-io/nps/releases/download/v0.26.9/windows_amd64_client.tar.gz

下载完成之后解压:

NPS内网穿透安装配置

 

获得conf ,npc.exe 文件,然后登录你的nps 面板,新建一个客户端

 

NPS内网穿透安装配置

NPS内网穿透安装配置

 

配置客户端

NPS内网穿透安装配置

 

  • 下载客户端安装包并解压,进入到解压目录

  • 点击web管理中客户端前的+号,复制启动命令

  • 执行启动命令,linux直接执行即可,windows将./npc换成npc.exe用cmd执行

建议直接以客户端命令执行(将命令放入cmd 中即可)

 

没有问题的话,到这里就可以结束了

 

 

 

以下是客户端的基本配置

无配置文件模式

此模式的各种配置在服务端web管理中完成,客户端除运行一条命令外无需任何其他设置

 ./npc -server=ip:port -vkey=web界面中显示的密钥Copy to clipboardErrorCopied

注册到系统服务(开机启动、守护进程)

对于linux、darwin

  • 注册:sudo ./npc install 其他参数(例如-server=xx -vkey=xx或者-config=xxx)

  • 启动:sudo npc start

  • 停止:sudo npc stop

  • 如果需要更换命令内容需要先卸载./npc uninstall,再重新注册

对于windows,使用管理员身份运行cmd

  • 注册:npc.exe install 其他参数(例如-server=xx -vkey=xx或者-config=xxx)

  • 启动:npc.exe start

  • 停止:npc.exe stop

  • 如果需要更换命令内容需要先卸载npc.exe uninstall,再重新注册

  • 如果需要当客户端退出时自动重启客户端,请按照如图所示配置

注册到服务后,日志文件windows位于当前目录下,linux和darwin位于/var/log/npc.log

客户端更新

首先进入到对于的客户端二进制文件目录

请首先执行sudo npc stop或者npc.exe stop停止运行,然后

对于linux

 sudo npc-update updateCopy to clipboardErrorCopied

对于windows

npc-update.exe updateCopy to clipboardErrorCopied

更新完成后,执行执行sudo npc start或者npc.exe start重新运行即可完成升级

如果无法更新成功,可以直接自行下载releases压缩包然后覆盖原有的npc二进制文件

配置文件模式

此模式使用nps的公钥或者客户端私钥验证,各种配置在客户端完成,同时服务端web也可以进行管理

 ./npc -config=npc配置文件路径Copy to clipboardErrorCopied

配置文件说明

示例配置文件

全局配置

[common]
server_addr=1.1.1.1:8024
conn_type=tcp
vkey=123
username=111
password=222
compress=true
crypt=true
rate_limit=10000
flow_limit=100
remark=test
max_conn=10
#pprof_addr=0.0.0.0:9999Copy to clipboardErrorCopied
含义
server_addr服务端ip/域名:port
conn_type与服务端通信模式(tcp或kcp)
vkey服务端配置文件中的密钥(非web)
usernamesocks5或http(s)密码保护用户名(可忽略)
passwordsocks5或http(s)密码保护密码(可忽略)
compress是否压缩传输(true或false或忽略)
crypt是否加密传输(true或false或忽略)
rate_limit速度限制,可忽略
flow_limit流量限制,可忽略
remark客户端备注,可忽略
max_conn最大连接数,可忽略
pprof_addrdebug pprof ip:port

域名代理

[common]
server_addr=1.1.1.1:8024
vkey=123
[web1]
host=a.proxy.com
target_addr=127.0.0.1:8080,127.0.0.1:8082
host_change=www.proxy.com
header_set_proxy=npsCopy to clipboardErrorCopied
含义
web1备注
host域名(http
target_addr内网目标,负载均衡时多个目标,逗号隔开
host_change请求host修改
header_xxx请求header修改或添加,header_proxy表示添加header proxy:nps

tcp隧道模式

[common]
server_addr=1.1.1.1:8024
vkey=123
[tcp]
mode=tcp
target_addr=127.0.0.1:8080
server_port=9001Copy to clipboardErrorCopied
含义
modetcp
server_port在服务端的代理端口
tartget_addr内网目标

udp隧道模式

[common]
server_addr=1.1.1.1:8024
vkey=123
[udp]
mode=udp
target_addr=127.0.0.1:8080
server_port=9002Copy to clipboardErrorCopied
含义
modeudp
server_port在服务端的代理端口
target_addr内网目标

http代理模式

[common]
server_addr=1.1.1.1:8024
vkey=123
[http]
mode=httpProxy
server_port=9003Copy to clipboardErrorCopied
含义
modehttpProxy
server_port在服务端的代理端口

socks5代理模式

[common]
server_addr=1.1.1.1:8024
vkey=123
[socks5]
mode=socks5
server_port=9004
multi_account=multi_account.confCopy to clipboardErrorCopied
含义
modesocks5
server_port在服务端的代理端口
multi_accountsocks5多账号配置文件(可选),配置后使用basic_username和basic_password无法通过认证

私密代理模式

[common]
server_addr=1.1.1.1:8024
vkey=123
[secret_ssh]
mode=secret
password=ssh2
target_addr=10.1.50.2:22Copy to clipboardErrorCopied
含义
modesecret
password唯一密钥
target_addr内网目标

p2p代理模式

[common]
server_addr=1.1.1.1:8024
vkey=123
[p2p_ssh]
mode=p2p
password=ssh2
target_addr=10.1.50.2:22Copy to clipboardErrorCopied
含义
modep2p
password唯一密钥
target_addr内网目标

文件访问模式

利用nps提供一个公网可访问的本地文件服务,此模式仅客户端使用配置文件模式方可启动

[common]
server_addr=1.1.1.1:8024
vkey=123
[file]
mode=file
server_port=9100
local_path=/tmp/
strip_pre=/web/Copy to clipboardErrorCopied
含义
modefile
server_port服务端开启的端口
local_path本地文件目录
strip_pre前缀

对于strip_pre,访问公网ip:9100/web/相当于访问/tmp/目录

断线重连

[common]
auto_reconnection=true

NPS内网穿透安装配置相关教程

  1. Redis的雪崩穿透击穿

    Redis的雪崩,穿透,击穿 一般正常的缓存流程图: 1.缓存雪崩 原因:大量的缓存同一时间失效,导致大量的请求都直接请求数据库,从而造成数据库挂掉,进而影响页面无法正常工作了 解决方案: 1-设置缓存失效时间,使其不在同一时间失效,随机初始化失效时间

  2. 内网服务器(不通外网)访问高德在线地图服务的方法

    内网服务器(不通外网)访问高德在线地图服务的方法 在项目部署过程中,若部署服务器处于内网环境,则无法调用高德服务。需要通过搭建代理实现请求的转发,从而获取到在线服务内容。下面的记录解决了内网服务器访问高德地图服务的问题。 内网服务器(项目所需

  3. 【好奇心驱动力】树莓派+内网穿透(cpolar)做网络摄像头

    【好奇心驱动力】树莓派+内网穿透(cpolar)做网络摄像头 0.前言 最近想法比较多,突然想到的就记到便笺里,抽时间再实践一下 后面还有修改esp8266+oled显示(micropython) 买了树莓派的CSI摄像头,10几块钱,拿回来拍照试了下还可以,想了一下还能有什么用

  4. 多台Exchange服务器设置内网MX记录

    多台Exchange服务器设置内网MX记录 MX记录(邮件交换记录)用于指出某个DNS区域中的邮件服务器的主机名(A记录),所以在创建MX记录之前先为邮件服务器创建A记录,现在绝大部分企业都采用了多台邮件服务器做高可用户设置,所以你可以在同一个DNS域内配置多个

  5. 滚动吸顶加锚点跳转及其滚动穿透案例

    滚动吸顶加锚点跳转及其滚动穿透案例 主要用到两个知识点position: sticky; a标签的描点 index.html !DOCTYPE htmlhtml lang=zhheadmeta charset=UTF-8meta name=viewport content=width=device-width, initial-scale=1.0meta http-equiv=X-UA-Compatible con

  6. 记一次内网建站的过程

    记一次内网建站的过程 背景: 一直想搭建个人的博客,但是买云服务器一年动则几千少则几百,想到家里有一台空闲的笔记本,于是乎想到了内网穿透~ 准备工作: 个人电脑一台,小蝴蝶内网穿透 步骤一: 搭建好内网博客此时内网效果如下: 步骤二: 通过小蝴蝶

  7. 两分钟教你使用natfrpc搭建内网服务器

    两分钟教你使用natfrpc搭建内网服务器 1、选择需要的下载 2、使用方法可参考帮助文档 访问密匙 [Unit]Description=Frp Client ServiceAfter=network.target[Service]Type=simpleUser=nobodyExecStart=/home/ndsc/frpc_linux_amd64 -f 密匙:445796Restart=alwa

  8. 阿里云OSS通过服务器ESC内网流量访问文件(使用免费带宽,不使用

    阿里云OSS通过服务器ESC内网流量访问文件(使用免费带宽,不使用收费流量) 关于OSS的购买我以前写过:https://blog.csdn.net/lianzhang861/article/details/82776197 关于oss的使用收费需要说一下: 对象存储OSS服务的基础计费项包括: 存储容量,流量,请求