Skip to content

Latest commit

 

History

History
90 lines (77 loc) · 4.25 KB

README_EN.md

File metadata and controls

90 lines (77 loc) · 4.25 KB

GitHub release GitHub Build Status
Docker Pulls Docker Pulls
中文版 | English

NSmartProxy

What is NSmartProxy?

NSmartProxy is a reverse proxy tool that creates a secure tunnel from a public endpoint to a locally service.

Characteristics

  1. Cross-platform, client and server can run on MacOS, Linux, Windows systems;

  2. Easy to use and simple to configure;

  3. Multi-end mapping, one NSmartProxy client can map multiple service nodes.

  4. Supports all protocols under the TCP protocol stack (such as FTP, Telnet, SMTP, HTTP/HTTPS, POP3, SMB, VNC, RDP. UDP protocol is not supported at present.)

Operating principle

NSmartProxy contains two service programs:

  • Server (NSPServer): Deployed on the external network to receive reverse connections from users and NSPClients and forward them to each other.
  • Client (NSPClient): Deployed on the internal network to forward requests and responses to access various services on the intranet.

Preparation

Linux/Windows/MacOS

  1. Install .NET Core Runtime
  2. Download the latest version of NSmartProxy

Docker

  • You can run the nspserver directly without having to install the runtime:
sudo docker pull tmoonlight/nspclient
sudo docker run --name mynspclient -dit tmoonlight/nspclient

Instructions

NSmartProxy supports various port mappings based on TCP services. The following is an example of nspclient configuration which contains mstsc, iis, and ftp services:

  1. Open the appsettings.json file in the installation directory, edit the service address, port,and map-rule as follow:
{
  "ProviderWebPort": 12309,			//Configure the port of the NSPServer service
  "ProviderAddress": "2017studio.imwork.net",	//Configure the address of the NSPServer service

  //NSPClients, you can configure multiple
  "Clients": [
    {
      "IP": "127.0.0.1",           //Reverse proxy machine ip
      "TargetServicePort": "3389"  //Port of the reverse proxy service
      "ConsumerPort":"3389"          //External network access port, if occupied,the nspclient will allocate ports in order from 20000
    },
    {
      "IP": "127.0.0.1",
      "TargetServicePort": "80"
    },
    {
      "IP": "127.0.0.1",
      "TargetServicePort": "21"
    }
  ]
}

2. Run NSmartProxy
  • Linux:
    sudo unzip client.zip
    cd client
    sudo dotnet NSmartProxyClient.dll
  • Windows:

    Unzip nspclient*.zip and run NSmartProxyWinform.exe:

  • P.S: The above is the configuration method of the client. In general, you can use the free service (2017studio.imwork.net) to perform intranet mapping. If you want to build the NSmartProxy server yourself, please click here.

Use Cases

We have already described the method of mapping the services of the intranet to the external network, and there are more interesting usages waiting for you to discover:
1.Remote boot
2.Use windows remote control to operate the office computer
3.Say goodbye to expensive vps and make a more powerful service cluster at a very low cost
...etc