Skip to main content

No project description provided

Project description

中文

ProxyNT is a reverse proxy server that can expose a local server to the internet through NATs and firewalls

原理

Features

  1. Open port mapping via browser anytime and anywhere
  2. Encrypted transmission between public network server and local network client via WebSocket
  3. Few dependencies, one-click installation via pip
  4. Stable, automatically reconnect, and already in production environment
  5. Support for rate limiting

Common Scenarios

  1. Hosting website server at home
  2. Managing IoT devices

Installation

pip install -U proxynt

Example: Accessing an Internal Network Machine via SSH

Suppose the public server's IP is 192.168.9.224.

1. Create config_s.json file on the public network machine

config_s.json content:

{
  "port": 18888,
  "password": "helloworld",
  "path": "/websocket_path",
  "admin": {
    "enable": true,  
    "admin_password": "new_password"  
  }
}

Then start: nt_server -c config_s.json

Explanation:

  • port: Listening port
  • password: Connection password
  • path: WebSocket path
  • admin: Management page configuration (optional)
  • admin.enable: Whether to enable management page
  • admin.admin_password: Management password

2. Create config_c.json file on the local network computer that needs to be accessed

config_c.json content:

{
  "server": {
    "url": "ws://192.168.9.224:18888/websocket_path",
    "password": "helloworld"
  },
  "client_name": "home_pc"
}

Then start: nt_client -c config_c.json

Explanation:

  • server: Configuration of the server to be connected, including port, IP address, whether to use HTTPS, password, and WebSocket path.
  • client_name: Client name, needs to be unique.
  • client: Empty array.

3. Open the server webpage http://192.168.9.224:18888/websocket_path/admin and add a port:

VWCvq.md.png

Explanation: The management page path is WebSocket path + /admin .

4. Configuration succeeded, use SSH to connect:

ssh -oPort=12222 test@192.168.9.224

Complete Configuration Instructions (please delete the comments when using)

  • Client config_c.json
{
  "server": {  // Server configuration to connect to
    "port": 18888,  // Port
    "host": "192.168.9.224",  // IP address
    "https": false,  // Whether the server is using HTTPS
    "password": "helloworld",  // Password
    "path": "/websocket_path"  // WebSocket path
  },
  "client": [  // List of forwarding configurations
    {
      "name": "ssh",
      "remote_port": 1222,
      "local_port": 22,
      "local_ip": "127.0.0.1"
    },
    {
      "name": "mongo",
      "remote_port": 1223,
      "local_port": 27017,
      "local_ip": "127.0.0.1"
    }
  ],
  "client_name": "ubuntu1",  // Client name, must be unique
  "log_file": "/var/log/nt/nt.log"  // Path to log file
}
  • Server config_c.json
{
    "port": 18888,  // Listening port
    "password": "helloworld",  // Password
    "path": "/websocket_path",  // WebSocket path
    "log_file": "/var/log/nt/nt.log",  // Path to log file
    "admin": {  
        "enable": true,  // Whether to enable admin page
        "admin_password": "new_password"  // Password for admin page
    }
}

Stargazers over time

Stargazers over time

Update history

  • 1.1.9: Bandwidth limitation
  • 1.1.8: Display client version
  • 1.1.7: Fixed duplicate client_name
  • 1.1.6: Fixed client WebSocketException: socket is already opened.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

proxynt-2.0.46.tar.gz (395.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

proxynt-2.0.46-py3-none-any.whl (434.0 kB view details)

Uploaded Python 3

File details

Details for the file proxynt-2.0.46.tar.gz.

File metadata

  • Download URL: proxynt-2.0.46.tar.gz
  • Upload date:
  • Size: 395.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for proxynt-2.0.46.tar.gz
Algorithm Hash digest
SHA256 e28bc79d0d6cced1c5ac3d87219952e333b9bc753b82690d0c24fb806982094e
MD5 23f4d0e857da8a4ceccf252eabe91b84
BLAKE2b-256 c87bcd1546c5f43387595a877cce2cb527a7e6a40a6a5d4c561345a95e598a99

See more details on using hashes here.

File details

Details for the file proxynt-2.0.46-py3-none-any.whl.

File metadata

  • Download URL: proxynt-2.0.46-py3-none-any.whl
  • Upload date:
  • Size: 434.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for proxynt-2.0.46-py3-none-any.whl
Algorithm Hash digest
SHA256 d1c9348e1da2a12958e3e10a0bce52e5e9ab9267813a84e8096034a0aeb90956
MD5 7e3328a5be271d15bc4b1d9e4612260f
BLAKE2b-256 08ee56c346d4cb157fb265a591d2495d1bee6a3a3f0830dc3bb88338550ac6d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page