LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

【C#】NSmartProxy:一款.NET开源、跨平台的内网穿透工具

admin
2024年8月27日 21:34 本文热度 665

前言

今天给大家分享一款.NET开源、免费(MIT License)、跨平台的内网穿透工具,采用.NET Core的全异步模式打造:NSmartProxy。

内网穿透工具介绍

内网穿透工具是一种能够允许用户从互联网上的任何地方安全地访问并管理处于内网(如家庭网络、公司局域网等)中的设备的工具。

特点与优势

  • 易用性:配置简单,用户友好。
  • 多端映射:用户只需安装一个NSmartProxy客户端,即可映射整个局域网内的多种服务,极大简化了配置过程。
  • 协议支持:支持TCP协议栈下的多种协议(如FTP、Telnet、SMTP、HTTP/HTTPS等)以及部分基于UDP的协议(如DNS查询、mosh服务),满足不同服务需求。

运行原理

  • 服务端(NSmartProxy.ServerHost):部署在外网,用来接收来自最终使用者和客户端的反向连接,并将它们进行相互转发。
  • 客户端(NSmartProxyClient):部署在内网,用来转发访问内网各种服务的请求以及响应。


项目源代码

项目源码地址

客户端安装

NSmartProxy支持各种基于TCP和UDP服务的端口映射,下面以mstsc,iis,ftp以及mosh服务为例:


启动准备

NSmartProxy的客户端被打包成三种发布方式:第一种是跨平台包,需要预先安装.NET Core环境。 第二种是SCD包(包名带"scd"),无需安装.net环境,用户需要根据自己的平台和架构选择相应的压缩包。第三种是Windows窗体版本(包名带"winform"):

Windows

  1. 确保客户端的环境在.NET Framework 4.6.1 以上。

  2. 下载最新的窗体版本https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspclient_winform_v1.2_final4.zip

Linux

  • 下载最新版本的NSmartProxyClient,以SCD发布下的linux x64系统为例:

wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_linux_v1.2_final4.zip

MacOS

  • 下载最新版本的NSmartProxyClient:

wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspclient_scd_osx_v1.2_final4.zip

Docker

  • 如果当前机器上已经有了docker运行环境,则无需安装运行时,直接拉取镜像即可运行,如下脚本在Docker CE 17.09下测试通过:

sudo docker pull tmoonlight/nspclient
sudo docker run --name mynspclient -dit tmoonlight/nspclient

使用方法

  1. 打开安装目录下的appsettings.json文件,配置服务地址,映射地址和端口(winform版本也兼容这种配置方式,也可直接进入界面配置):

{
  "ProviderWebPort": 12309,         //服务器端口
  "ProviderAddress": "2017studio.imwork.net",   //服务器地址
  //反向代理客户端列表
  "Clients": [
    {//mstsc远程控制服务
      "IP": "127.0.0.1",           //反向代理机器的ip
      "TargetServicePort": "3389" //反向代理服务的端口
      "ConsumerPort":"3389" //外网访问端口,如被占用,则会从20000开始按顺序分配端口
    },
    {//网站服务
      "IP": "127.0.0.1",
      "TargetServicePort": "80"
    },
    {//ftp服务
      "IP": "127.0.0.1",
      "TargetServicePort": "21",
      "IsCompress" : true,      //表示启动传输压缩
      "Description": "这是一个ftp协议。" //描述字段,方便用户在服务端界面识别
    },
    {//mosh服务 
      "IP": "192.168.0.168",    //安装mosh服务的受控端地址
      "TargetServicePort": "60002",
      "ConsumerPort": "30002",  
      "Protocol": "UDP" //表示是一个UDP协议,如果不加以配置,则以TCP协议来转发
    }
  ]
}


2. 运行NSmartProxy客户端

  • Linux:

    sudo unzip nspclient_scd_linux_v1.2.zip
    cd nspclient_scd_linux_v1.2
    chmod +x ./NSmartProxyClient
    ./NSmartProxyClient
  • MacOS:

    sudo unzip nspclient_osx_linux_v1.2.zip
    cd nspclient_scd_osx_v1.2
    chmod +x ./NSmartProxyClient
    ./NSmartProxyClient
  • Windows: 解压后运行NSmartProxyWinform.exe即可:

  1. 后台运行:
    您还可以将NSmartProxy客户端注册为一个后台服务,方法如下:

  • Windows:

    • 方法一

    • 方法二

    rem 注册客户端windows服务
    .\NSmartProxyClient action:install
    rem 卸载客户端windows服务
    .\NSmartProxyClient action:uninstall
  • MacOS/Linux 暂略


客户端登陆

默认情况下,客户端以匿名登陆,这种方式会在NSmartProxyServer端创建一个随机匿名用户(前提是服务端配置了允许匿名登陆),如果想显式使用特定用户登陆,需要在第一次运行时增加-u 用户名 -p 密码参数,程序会在当前目录生成一份凭据(.usercache)方便下次自动登陆。 例如输入以下指令来生成一个用户名admin,密码admin123的凭据:

./NSmartProxyClient -u admin -p admin123

下次仅需使用:

./NSmartProxyClient

自动采用上次的admin用户登陆,如需恢复匿名登陆,则需要删除当前目录下的.usercache文件。

  • P.S: 以上是客户端的配置方法,一般情况下,只要用我的免费服务(2017studio.imwork.net)即可进行内网映射了,如果你还想自己搭建服务端,请接着往下看。


服务端安装

这里介绍NSmartProxy服务端的安装方法(linux,windows,MacOS均适用)


启动准备

  • 首先你需要一台具备独立IP的服务器,以下安装过程均在此机器上执行:

Linux/Windows/MacOS

  1. NSmartProxy的服务端程序被打包成两种发布方式。第一种是跨平台包,需要预先安装.NET Core环境。 第二种是SCD包(包名带"scd"),无需安装.net环境,用户需要根据自己的平台和架构选择相应的压缩包。

  2. 下载最新版的NSmartProxy服务端:

  • Linux:wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_linux_v1.2_final4.zip

Docker

  • 无需安装运行时,直接拉取镜像即可运行,运行镜像时需要4组端口:配置端口,反向连接端口,API服务端口,以及使用端口,如下脚本在Docker CE 17.09下测试通过:

sudo docker pull tmoonlight/nspserver
sudo docker run --name mynspserver -dit -p 7842:7842 -p 7841:7841 -p 12309:12309 -p 20000-20050 tmoonlight/nspserver

使用方法

  1. 解压缩NSmartProxy服务端的压缩包,以下以SCD发布下的linux系统为例

unzip nspserver_scd_linux_v1.2_final4.zip
  1. 打开安装目录下的appsettings.json文件,设置反向连接端口和配置服务端口,如果没有特殊需求,默认就好:

{
  "ReversePort": 7842, //反向连接端口
  "ConfigPort": 7841, //配置服务端口
  "WebAPIPort": 12309         //API服务端口
}
  1. 运行NSmartProxy

第一步 cd到安装目录
第二步 执行以下命令

  • Linux/MacOS:

chmod +x ./NSmartProxy.ServerHost
./NSmartProxy.ServerHost
  • Windows: 点击 Win+R 打开运行窗口. 输入 "cmd" 按下Ctrl+Shift+Enter打开管理员身份运行的命令行窗口。cd到安装目录,运行如下指令:

NSmartProxy.ServerHost

第三步 登陆http://ip:12309 进入web端,出厂用户密码为admin/admin

第四步 进入服务端对用户进行各种管理操作

注册为后台服务

NSmartProxy客户端和服务端均可以注册为一个后台服务,方法如下:

  • Windows 以管理员身份打开命令行后,cd到程序运行目录,运行以下指令进行服务的注册和卸载:

rem 注册服务端windows服务
.\NSmartProxy.ServerHost action:install
rem 卸载服务端windows服务
.\NSmartProxy.ServerHost action:uninstall


使用案例

以上已经讲述了将内网的服务映射到外网的方法,还有更多有趣的用法等着你发掘:

  1. 远程开机

  2. 使用windows远程控制操作办公室电脑

  3. 告别昂贵的vps,以极低的成本制作一个更强大的服务集群


该文章在 2024/8/28 9:50:53 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved