# NSmartProxy
**Repository Path**: initial/NSmartProxy
## Basic Information
- **Project Name**: NSmartProxy
- **Description**: NSmartProxy是一款免费的内网穿透工具。采用.NET CORE的全异步模式打造。
- **Primary Language**: C#
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 93
- **Created**: 2019-09-27
- **Last Updated**: 2022-08-11
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
[](https://github.com/tmoonlight/NSmartProxy/releases)
[](https://github.com/tmoonlight/NSmartProxy/blob/master/LICENSE)
[](https://dev.azure.com/tmoonlight/NSmartProxy/_build/latest?definitionId=1&branchName=master)
中文版 | [English](https://github.com/tmoonlight/NSmartProxy/blob/master/README.md)
# NSmartProxy
#### 什么是NSmartProxy?
NSmartProxy是一款免费的内网穿透工具。
使用中如果有任何问题和建议,可以[点击这里加入Gitter群组](https://gitter.im/tmoonlight/NSmartProxy)或者[点击这里加入QQ群
(群号:813170640)](//shang.qq.com/wpa/qunwpa?idkey=139dc3d01be5cc7ac3226c022d832b8ddcc4ec4b64d8755cd4f5c669994970c7)我们一起讨论。
## 特点
1. 跨平台,客户端和服务端均可运行在MacOS,Linux,Windows系统上;
2. 使用方便,配置简单;
3. 多端映射,一个NSmart Proxy客户端可以同时映射多种服务。
4. 支持TCP协议栈下的所有协议(已经经过测试的有FTP、Telnet、SMTP、HTTP/HTTPS、POP3、SMB、VNC、RDP。暂不支持UDP协议,开发中。)
## 运行原理
NSmartProxy包含两个服务程序:
* 服务端(NSmartServer):部署在外网,用来接收来自最终使用者和客户端的反向连接,并将它们进行相互转发。
* 客户端(NSmartClientRouter):部署在内网,用来转发访问内网各种服务的请求以及响应。
## 启动准备
#### Linux/Windows/MacOS
1. 安装[.NET Core Runtime](https://dotnet.microsoft.com/download)
2. 下载最新版本的[NSmartProxy](https://github.com/tmoonlight/NSmartProxy/releases)
#### Docker
* 如果当前机器上已经有了docker运行环境,则无需安装运行时,直接拉取镜像即可运行 :
```
sudo docker pull tmoonlight/nspclient
sudo docker run --name mynspclient -dit tmoonlight/nspclient
```
## 使用方法
NSmartProxy支持各种基于TCP服务的端口映射,下面以mstsc,iis,ftp服务为例:
1. 打开安装目录下的appsettings.json文件,配置服务地址,映射地址和端口(windows版本也可直接进入界面配置):
```
{
"ProviderWebPort": 12309, //服务器端口
"ProviderAddress": "2017studio.imwork.net", //服务器地址
//反向代理客户端,可以配置多个
"Clients": [
{
"IP": "127.0.0.1", //反向代理机器的ip
"TargetServicePort": "3389" //反向代理服务的端口
"ConsumerPort":"3389" //外网访问端口,如被占用,则会从20000开始按顺序分配端口
},
{
"IP": "127.0.0.1",
"TargetServicePort": "80"
},
{
"IP": "127.0.0.1",
"TargetServicePort": "21"
}
]
}
```
2. 运行NSmartProxy
* Linux:
```
sudo unzip client.zip
cd client
sudo dotnet NSmartProxyClient.dll
```
* Windows:
解压nspclient*.zip,运行NSmartProxyWinform.exe即可:
3. 后台运行:
您还可以将NSmartProxy客户端注册为一个后台服务,方法如下:
* Linux:
* Windows:
* P.S: 以上是客户端的配置方法,一般情况下,只要用我的免费服务(2017studio.imwork.net)即可进行内网映射了,如果您还想自己搭建NSmartProxy服务端,请参考[这里](https://github.com/tmoonlight/NSmartProxy/blob/master/README_SERVER_CN.md)。
## 使用案例
以上已经讲述了将内网的服务映射到外网的方法,还有更多有趣的用法等着你发掘:
1.远程开机
2.使用windows远程控制操作办公室电脑
3.告别昂贵的vps,以极低的成本制作一个更强大的服务集群
4.使用ssh等工具在当事人毫不知情的情况下监控他们的电脑,防止妻子外遇,孩子早恋(比较不推荐)
...etc