whatisgithub

What is phormal?

schmi7zz/phormal — explained in plain English

Analysis updated 2026-05-18

31ShellAudience · ops devopsComplexity · 4/5LicenseSetup · moderate

In one sentence

A Bash-based Linux tool that tunnels traffic between two servers so end users only ever see the public entry node, hiding the real service's exit node.

Mindmap

mindmap
  root((Phormal))
    Modes
      Bridge IPv6
      Relay QUIC
    Features
      Multi-tunnel
      CDN WebSocket Front
      Built-in Speedtest
    Management
      Numbered Menu
      systemd Services
      Per-tunnel Config
    Requirements
      Linux Debian Ubuntu
      Root Access
      UDP Reachability

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Hide the real IP of a backend server by routing end-user traffic through a separate entry node.

USE CASE 2

Run a stable IPv6-based bridge tunnel on reliable network paths between two servers.

USE CASE 3

Use an obfuscated QUIC relay tunnel on networks that filter or throttle ordinary connections.

USE CASE 4

Run multiple independent tunnels from a single server, each with its own ports and credentials.

What is it built with?

ShellBashQUICsystemd

How does it compare?

schmi7zz/phormalflyingpenguinw/brave-originganimjeong/harness-for-codex
Stars313131
LanguageShellShellShell
Setup difficultymoderateeasyeasy
Complexity4/52/52/5
Audienceops devopsgeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires root access on two Linux servers and UDP reachability between them for the Relay mode.

GPL-3.0 license: you can use and modify the code, but if you distribute it or a derivative, you must also release that source code under the same license.

So what is it?

Phormal is a shell-based networking tool for Linux that creates a private connection between two servers, hiding your actual service behind a gateway machine. You designate one server as the entry node (the publicly visible side) and another as the exit node (where your real service runs). End users connect only to the entry node's address, keeping the exit node's IP hidden from them. The tool supports two connection modes. Bridge mode creates a direct IPv6-based link between the two servers and works best on stable network paths. Relay mode uses a different protocol (QUIC) with built-in traffic obfuscation, making it suited for networks that actively filter or throttle connections. Both modes support running multiple independent tunnels at once from the same machine, each with its own configuration, ports, and credentials. Setup is driven by a numbered text menu. You run a single install command, and after that type sudo phormal anywhere on the system to open the menu. Adding a tunnel involves picking a name, entering the other server's IP address and a shared port, and copying a password or key to the matching server. The tool creates and manages systemd services automatically so tunnels restart on boot and can be individually stopped, started, or inspected from the menu without touching the other server. Recent updates added the ability for a single exit server to serve multiple entry servers simultaneously. A CDN and WebSocket front option was also added for Relay mode, routing traffic through a content delivery network on port 80 to make connections harder to distinguish from ordinary web traffic. A built-in speedtest lets you measure throughput between two nodes by running a two-step test on each side within thirty seconds of each other. The project is written entirely in Bash and targets Debian and Ubuntu. It requires root access on both servers and UDP reachability between them for the Relay link. Configuration files are stored under /etc/phormal/ and logs go to /var/log/phormal.log.

Copy-paste prompts

Prompt 1
Explain how an entry node and exit node architecture can hide a backend server's real IP address from end users.
Prompt 2
Show me how to set up a QUIC-based tunnel with traffic obfuscation for use on networks that filter connections.
Prompt 3
How do I create and manage systemd services from a Bash script so a tunnel restarts automatically on boot?
Prompt 4
Explain the difference between an IPv6 SIT tunnel and a QUIC relay tunnel for connecting two remote servers.
Prompt 5
Show me how to write a Bash menu-driven CLI tool that lets a user add, edit, and remove named tunnel configurations.

Frequently asked questions

What is phormal?

A Bash-based Linux tool that tunnels traffic between two servers so end users only ever see the public entry node, hiding the real service's exit node.

What language is phormal written in?

Mainly Shell. The stack also includes Shell, Bash, QUIC.

What license does phormal use?

GPL-3.0 license: you can use and modify the code, but if you distribute it or a derivative, you must also release that source code under the same license.

How hard is phormal to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is phormal for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.