Connect applications to a trusted Portal through a local SOCKS5 ingress.
- Before you begin
- Build and create a key
- Start Portal
- Establish trust
- Connect applications
- Verify the connection
- Choose the exit
Use a stable Rust toolchain and a reachable Portal host. The examples use TCP
port 2000 and UDP port 2001; permit both through the Portal host's firewall.
Run each service in its own terminal or process supervisor.
Replace KEY with the same generated value on each peer. Replace
relay.example with the Portal host and TRUSTED_SHA256 with its verified
certificate fingerprint. See Platforms for Windows and
container command lines.
Build from the repository root:
cargo build --release --lockedGenerate a Shared Key of 32 lowercase hexadecimal characters:
./target/release/nowhere generate-keyListen for TLS on TCP 2000 and QUIC on UDP 2001:
./target/release/nowhere "portal://KEY@*/tcp:2000/udp:2001"Portal uses a generated certificate by default. Its startup log includes the fingerprint needed for the next step.
Read the presented certificate over TCP/TLS:
./target/release/nowhere fingerprint "nowhere://KEY@relay.example:2000?morph=1"Compare the result with Portal's fingerprint obtained through a trusted channel,
such as its startup log on a host you control. Use the matching value for pin.
A CA-issued certificate with a matching hostname can be used instead; see
certificate trust.
Run Vector with a local SOCKS5 listener:
./target/release/nowhere "vector://KEY@relay.example/tcp:2000?in=127.0.0.1:1080&pin=TRUSTED_SHA256"Point applications at SOCKS5 127.0.0.1:1080. The example selects dedicated
TLS on TCP 2000; use relay.example/udp:2001 to select QUIC.
Perform one TCP Flow setup through the QUIC path:
./target/release/nowhere probe "vector://KEY@relay.example/udp:2001?pin=TRUSTED_SHA256" "example.com:443"Probe sends no target payload and does not require in. Read local instance identity and traffic statistics on either host:
./target/release/nowhere statusBoth commands work without a terminal. Status reads one snapshot and exits.
Portal forwards directly by default. Use a SOCKS5 upstream through out, or
register a remote Egress with out=egress.
| Next step | Guide |
|---|---|
| Choose listeners, transports or a SOCKS5 upstream | Configuration |
| Place target access on another host | Egress |
| Diagnose setup or observe a service | Operations |