NPS内网穿透部署

本文环境

CentOS Linux release 7.8.2003
Nps 0.26.9

NPS介绍

Nps是一个内网穿透工具,开源。
Github:https://github.com/ehang-io/nps

特征:
全面的协议支持,与几乎所有常用协议兼容,例如tcp,udp,http(s),socks5,p2p,http代理…
全面的平台兼容性(Linux,Windows,MacOS,Synology等),仅支持将安装作为系统服务进行。
全面控制,允许客户端和服务器控制。
Https集成,支持将后端代理和Web服务转换为https,并支持多个证书。
只需在Web ui上进行简单配置即可完成大多数要求。
完整的信息显示,例如流量,系统信息,实时带宽,客户端版本等。
强大的扩展功能,一切可用(缓存,压缩,加密,流量限制,带宽限制,端口重用等)
域名解析具有诸如自定义标题,404页面配置,主机修改,站点保护,URL路由和全景解析之类的功能。
服务器上的多用户和用户注册支持。

服务端部署

下载安装包并解压:

wget https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_arm64_server.tar.gz

tar -zxvf linux_arm64_server.tar.gz

进入解压后的conf目录,编辑nps.conf配置文件,可修改其中部分配置,本文根据需要修改了如下配置:

# 修改http和https端口号
http_proxy_port=82
https_proxy_port=445

# 修改web的密码和端口占用等信息
web_host=nps.xxx.cn
web_username=admin
web_password=xxx
web_port=10001

nps安装:
这不是一个必须的步骤,但是安装后nps将被拷贝到/bin目录,其他文件拷贝到/etc/nps目录,修改解压路径的文件将不再生效了。

./nps install

启动:
也许这是当前版本的一个bug,亲测使用nps start命令是无法启动的,但是直接nps是可以启动的。

# 未安装则在解压目录启动
./nps

# 安装后可直接使用命令
nps
进阶部署

nps直接启动时不是后台运行,而且不能输出日志,不能设置为开机自启啥的,不怎么方便。所以本文将nps做成了linux的服务,用于保证开机自启。

为实现将程序输出写入文件功能,编写实现了如下脚本,放在nps根目录:
该脚本实现创建logs目录,每次启动将程序输出写入日志文件功能。

#!/bin/bash

home_dir=$(dirname $(readlink -f "$0"))
logs_dir=$home_dir/logs
if [ ! -d $logs_dir ]; then
  sudo mkdir -p -m 755 $logs_dir
fi
$home_dir/nps >> $logs_dir/run-$(date "+%Y%m%d%H%M%S").log

使用vim创建service文件

sudo vim /etc/systemd/system/nps.service

nps.service内容:

[Unit]
Description=Nps Service
Documentation=https://nps.nineya.com
After=network-online.target
Wants=network-online.target

[Service]
User=root
Type=simple
ExecStart=/bin/bash /www/wwwroot/nps.nineya.com/run.sh
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target
web配置

打开浏览器,登录nps的web端:
进入客户端选项,点击左上角新增按钮,选择默认配置即可,添加一个客户端。

本文目的是实现windows远程桌面功能,远程桌面的端口是3389,所以本文添加了一个TCP隧道,配置如下:

  • 客户端ID:刚刚添加的客户端的ID

  • 服务端端口:访问nps服务端的端口

  • 目标 (IP:端口):被穿透的目标机子ip和被穿透的端口号,如果是nps客户端所在的机子可以不填写ip

客户端配置

下载安装包解压,打开cmd,定位到解压路径。

进入web的客户端界面,查看启动命令,将该命令复制到终端执行即可:
在这里插入图片描述

可通过修改conf/npc.conf配置启动参数,无须在启动时添加参数。

同样可以将客户端做成服务用于开机自启,windows本文提供了一个服务制作的工具(SRVINSTW.EXE),在本文提供的压缩包里。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值