Cross-platform file sharing via QR code with ngrok and SSH tunneling
Project description
QRTunnel
Cross-platform file sharing via SSH reverse tunneling and QR codes. Allows sharing files with mobile devices anywhere in the world, even behind NAT/firewalls.
Features
- Simple File Sharing: Share one or more files directly from your command line.
- Secure Tunnels: Utilizes ngrok for secure, public HTTPS tunnels, even behind NATs and firewalls.
- No-Auth Alternative: For Mac/Linux users, an SSH-based tunnel (localhost.run) is available, requiring no ngrok account.
- QR Code Display: Generates a scannable QR code in your terminal for easy access on mobile devices.
- Web Interface: Provides a simple web page for recipients to download shared files, individually or as a ZIP archive.
- Ngrok Authtoken Management: Interactive setup and status check for your ngrok authentication token.
Installation
- Clone the repository:
git clone https://github.com/AniruthKarthik/qrtunnel.git cd qrtunnel
- Install dependencies:
pip install pyngrok qrcode[pil]
Usage
Basic Sharing
To share one or more files:
python qr.py <file_path1> [<file_path2> ...]
Example:
python qr.py mydocument.pdf myimage.jpg
This will start a local HTTP server, create a public tunnel (using ngrok by default), and display a QR code. Scan the QR code with your phone to access the files.
Ngrok Authentication Setup
qrtunnel uses ngrok for reliable public tunnels. The first time you use it, or if you need to update your token, you'll be prompted to set up your ngrok authtoken. You can also do this manually:
python qr.py --setup
Follow the on-screen instructions to get and save your ngrok authtoken.
Check Ngrok Status
To check if your ngrok authtoken is configured:
python qr.py --status
No-Auth Sharing (Mac/Linux Only)
If you're on Mac or Linux and prefer not to use an ngrok account, you can use the --noauth flag. This will attempt to create an SSH tunnel via localhost.run.
python qr.py <file_path1> [<file_path2> ...] --noauth
Note: This option is not supported on Windows.
Quitting the Server
The server will run until you press q in the terminal or use Ctrl+C.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qrtunnel-1.0.2.tar.gz.
File metadata
- Download URL: qrtunnel-1.0.2.tar.gz
- Upload date:
- Size: 10.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b9e15b58eb89578100a7c5e7ec0a8ea0837ad2c39e4aa2efbc20413ef29809d
|
|
| MD5 |
103f08025c31600b9f30889f4d70c128
|
|
| BLAKE2b-256 |
c25cc22e7393be4217f843bb0dea018e8e1f5fff18cf4852db90ddaa2b905bfa
|
File details
Details for the file qrtunnel-1.0.2-py3-none-any.whl.
File metadata
- Download URL: qrtunnel-1.0.2-py3-none-any.whl
- Upload date:
- Size: 10.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
85e1eae7355c5efceade3886b2b753d323d2cd3b3d46940d009c2fa4bb743992
|
|
| MD5 |
9111d0f7bf25093f8e565cb233432997
|
|
| BLAKE2b-256 |
27b3a131fa542cb932d8420c5d0ce2f57b82099c30d58a60d4563d89a33c43af
|