ProxyNT is a reverse proxy server that can expose a local server to the internet through NATs and firewalls
Features
- Open port mapping via browser anytime and anywhere
- Encrypted transmission between public network server and local network client via WebSocket
- Few dependencies, one-click installation via pip
- Stable, automatically reconnect, and already in production environment
- Support for rate limiting
Common Scenarios
- Hosting website server at home
- 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 portpassword: Connection passwordpath: WebSocket pathadmin: Management page configuration (optional)admin.enable: Whether to enable management pageadmin.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:
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
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.
Metadata
Release files for proxynt 2.0.60
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| proxynt-2.0.60.tar.gz | 1.7 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| proxynt-2.0.60-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.5 MB
Release files / proxynt-2.0.60.tar.gz
| Download URL | proxynt-2.0.60.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25a45ac13696374462dcb532fbf396be0b2ada8841ae42d11b48cf76695425b5
|
|
BLAKE2b-256 checksum How to use checksums |
d6a36744a0336480f748eb8e5a00f1c6bd90f5552030e4b3023d67a623efff50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|
Release files / proxynt-2.0.60-py3-none-any.whl
| Download URL | proxynt-2.0.60-py3-none-any.whl |
|---|---|
| Size | 1.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
979467ce0c78ab3773234bf9d6bf0a50b38097796903f2220e3c05d7a18a829f
|
|
BLAKE2b-256 checksum How to use checksums |
9cc69f74d9b258e258635d6ba42e466d543cf7f5a313140baca13c1921c70e8b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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
|