#port #reverse-proxy #forward #key #key-pair #local #hf

app hafnium

A simple and secure port forward reverse proxy

1 unstable release

0.1.0 Nov 7, 2024

#149 in HTTP server

Download history 111/week @ 2024-11-05 7/week @ 2024-11-12 7/week @ 2024-11-19

125 downloads per month

Custom license

285KB
269 lines

Hafnium

Hafnium is reverse proxy, it use to expose local port over nat (ex. CGNAT)

How it work

How it works

Features

Core Features To-Do

Key Management

  • Implement hf genkey command
    • Generate private/public key pairs
    • Store keys securely
    • Export public key in shareable format

Server-side Features

  • Implement server core functionality

    • Create TCP/UDP server listener
    • Handle client connections (including forward of data)
    • Implement public key authentication
  • Implement port management commands

    • hf allow <port> [tcp/udp]
    • hf disallow <port> [tcp/udp]
    • Default allow-all ports mechanism
  • Implement connection management

    • hf list peers
    • hf list ports
    • hf disconnect [peer_public_key]
  • Configuration system

    • hf config get <key>
    • hf config set <key> <value>
    • Implement persistent configuration storage

Client-side Features

  • Implement client core functionality

    • hf connect <ip_address>:<port> <public_key>
    • Handle connection authentication
    • Maintain persistent connection
  • Port forwarding features

    • hf open <port> [tcp/udp]
    • hf close <port> [tcp/udp]
    • Port forwarding logic implementation
  • Client utilities

    • hf list peers
    • hf list ports
    • hf disconnect

Technical Infrastructure

  • Set up project structure
  • Implement logging system
  • Error handling
  • Connection security
  • Network protocol design
  • Documentation
    • Installation guide
    • Usage documentation
    • API documentation

License

the code license is AGPL-3.0 read more.

Dependencies

~14–23MB
~428K SLoC