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

app hafnium

A simple and secure port forward reverse proxy

1 unstable release

0.1.0 Nov 7, 2024

#4 in #hf

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

~15–24MB
~440K SLoC