NSmartProxy是一款开源的内网穿透工具。采用.NET CORE的全异步模式打造。(NSmartProxy is an open source reverse proxy tool that creates a secure tunnel from a public endpoint to a locally service.)
MIT License
中文版 | English
NSmartProxy是一款免费的内网穿透工具。 使用中如果有任何问题和建议,可以点击这里加入Gitter群组或者点击这里加入QQ群 (群号:813170640)我们一起讨论。
NSmartProxy包含两个服务程序:
NSmartProxy支持各种基于TCP和UDP服务的端口映射,下面以mstsc,iis,ftp以及mosh服务为例:
NSmartProxy的客户端被打包成三种发布方式:第一种是跨平台包,需要预先安装.NET Core环境。 第二种是SCD包(包名带"scd"),无需安装.net环境,用户需要根据自己的平台和架构选择相应的压缩包。第三种是Windows窗体版本(包名带"winform"):
wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_linux_v1.2_final4.zip
wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspclient_scd_osx_v1.2_final4.zip
sudo docker pull tmoonlight/nspclient
sudo docker run --name mynspclient -dit tmoonlight/nspclient
{
"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客户端
sudo unzip nspclient_scd_linux_v1.2.zip
cd nspclient_scd_linux_v1.2
chmod +x ./NSmartProxyClient
./NSmartProxyClient
sudo unzip nspclient_osx_linux_v1.2.zip
cd nspclient_scd_osx_v1.2
chmod +x ./NSmartProxyClient
./NSmartProxyClient
Windows: 解压后运行NSmartProxyWinform.exe即可:
方法一
方法二
rem 注册客户端windows服务
.\NSmartProxyClient action:install
rem 卸载客户端windows服务
.\NSmartProxyClient action:uninstall
默认情况下,客户端以匿名登陆,这种方式会在NSmartProxyServer端创建一个随机匿名用户(前提是服务端配置了允许匿名登陆),如果想显式使用特定用户登陆,需要在第一次运行时增加-u 用户名 -p 密码参数,程序会在当前目录生成一份凭据(.usercache)方便下次自动登陆。 例如输入以下指令来生成一个用户名admin,密码admin123的凭据:
./NSmartProxyClient -u admin -p admin123
下次仅需使用:
./NSmartProxyClient
自动采用上次的admin用户登陆,如需恢复匿名登陆,则需要删除当前目录下的.usercache文件。
这里介绍NSmartProxy服务端的安装方法(linux,windows,MacOS均适用)
wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_linux_v1.2_final4.zip
MacOS:
wget https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_osx_v1.2_final4.zip
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
unzip nspserver_scd_linux_v1.2_final4.zip
{
"ReversePort": 7842, //反向连接端口
"ConfigPort": 7841, //配置服务端口
"WebAPIPort": 12309 //API服务端口
}
第一步 cd到安装目录 第二步 执行以下命令
chmod +x ./NSmartProxy.ServerHost
./NSmartProxy.ServerHost
NSmartProxy.ServerHost
第三步 登陆http://ip:12309 进入web端,出厂用户密码为admin/admin
第四步 进入服务端对用户进行各种管理操作
NSmartProxy客户端和服务端均可以注册为一个后台服务,方法如下:
rem 注册服务端windows服务
.\NSmartProxy.ServerHost action:install
rem 卸载服务端windows服务
.\NSmartProxy.ServerHost action:uninstall
以上已经讲述了将内网的服务映射到外网的方法,还有更多有趣的用法等着你发掘: