Metadata-Version: 2.4
Name: py-simple-nat-tunnel
Version: 0.5.3
Summary: A small Python TCP reverse tunnel compatible with common frp/rathole config subsets.
Author: GGN_2015
License-Expression: MIT
Project-URL: Homepage, https://github.com/GGN-2015/py-frp
Project-URL: Repository, https://github.com/GGN-2015/py-frp
Project-URL: Issues, https://github.com/GGN-2015/py-frp/issues
Keywords: frp,rathole,reverse-proxy,tunnel,nat-traversal
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: AsyncIO
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Topic :: System :: Networking
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography>=43.0.0
Requires-Dist: packaging>=24.0
Requires-Dist: py-admin-launch>=0.1.3
Requires-Dist: tomli>=2.0.1; python_version < "3.11"
Dynamic: license-file

# py-frp

A small Python TCP reverse tunnel for exposing a service behind NAT through a
public server.

## Quick Start

Install py-frp on both the public server and the private client:

```bash
pip install py-simple-nat-tunnel
```

Start the public server with the example configuration:

```bash
py-frp server -c examples/frps.toml
```

Start the private client and confirm that the TLS fingerprint matches the one
printed by the server:

```bash
py-frp client -c examples/frpc.toml
```

The example exposes the client's `127.0.0.1:22` as port `6000` on the public
server. Connect to it with:

```bash
ssh -p 6000 user@your-server
```

Replace `127.0.0.1`, the ports, and `change-me` in the example files before
using them outside a local test.

For every command, option, and supported configuration format, see the
[CLI manual](https://github.com/GGN-2015/py-frp/blob/main/docs/cli.md). The
[configless deployment tutorial](https://github.com/GGN-2015/py-frp/blob/main/docs/tutorial.md)
covers production setup and automatic update restart. For the tunnel lifecycle,
protocol, allocation, and security design, see the
[algorithm manual](https://github.com/GGN-2015/py-frp/blob/main/docs/algorithm.md).
