Skip to content
DnsLister Forum

Where domain hunters compare notes

Built my own WireGuard VPN on a TezHost VPS and ditched commercial VPNs. Here’s why and how

Commercial VPNs drive me crazy. You pay $10–$15/month for "privacy," but you’re still trusting a third-party server company with your unencrypted DNS queries and traffic. Plus, half the time you get hit with endless CAPTCHAs or slow speeds during peak hours because 5,000 other people are sharing the same exit node IP.

So I decided to self-host WireGuard on my own Virtual Private Server (VPS), and honestly, I should have done this years ago.

Here is the quick breakdown of why self-hosting makes sense, how the routing works, and the steps to set it up yourself.

Why WireGuard?

  • Minimal Codebase: OpenVPN has ~100k+ lines of code. WireGuard is around ~4k lines. Fewer lines = much smaller attack surface, better auditing, and way faster handshakes.
  • Kernel Level Speed: WireGuard runs directly inside the Linux kernel using modern crypto (ChaCha20-Poly1305, Curve25519). Zero latency lag compared to bloated OpenVPN setups.
  • No Battery Drain: On iOS and Android, WireGuard connects almost instantly and doesn't destroy battery life like legacy protocols.

The Traffic Flow

[ Your Device ] ──(Encrypted WG Tunnel)──> [ TezHost VPS ] ──> [ Global Internet ] 

When you operate the VPS yourself:

  1. You get a dedicated static IP (no CAPTCHAs or dirty IP blocks).
  2. You control the logging policy completely (actual 0-logs, not marketing fluff).
  3. Bandwidth isn't throttled by shared commercial nodes.

7 Steps to Set It Up

  1. Grab a VPS: Get a basic Linux VPS (Ubuntu/Debian) with root access and decent network speeds.
  2. Install WireGuard: You can do this manually via apt install wireguard or use automated one-click/Docker scripts (TezHost has a solid One-Click WireGuard template that saves you from dealing with terminal config).
  3. Generate Key Pairs: Generate private/public asymmetric key pairs for your server and each client device using Curve25519.
  4. Configure Server Interface (wg0.conf): Assign a private VPN subnet (e.g., 10.0.0.1/24), set the listening UDP port (default is 51820), and define your allowed peer public keys.
  5. Enable IP Forwarding & NAT: Turn on IPv4 packet forwarding in /etc/sysctl.conf and set up iptables / nftables masquerading rules so traffic actually routes to the internet.
  6. Export Client Profiles: Create .conf files (or generate QR codes) with your client keys, assigned IP, server endpoint, and DNS.
  7. Connect & Test: Import the profile onto your phone or laptop, bring up the interface, and verify that handshakes are active and your IP matches the VPS.

Useful Use Cases

  • Locking Down Admin Dashboards: You can set your cPanel, SSH ports, or internal dev tools to only accept connections coming through your private VPN IP.
  • Public Wi-Fi Security: Instant encryption when working out of cafes or airports.
  • Accessing Internal Homelab/Staging Subnets: Connect remote devices directly to isolated cloud networks without opening public ports.

TL;DR: Self-hosting a WireGuard VPN gives you a static IP, zero bandwidth caps, complete privacy, and total control over your traffic for just the cost of a basic server.

Anyone else running a self-hosted VPN setup? What stack or tool are you using to manage your client peers?

Commercial VPNs drive me crazy. You pay $10–$15/month for "privacy," but you’re still trusting a third-party server company with your unencrypted DNS queries and traffic. Plus, half the time you get hit with endless CAPTCHAs or slow speeds during peak hours because 5,000 other people are sharing the same exit node IP.

So I decided to self-host WireGuard on my own TezHost VPS, and honestly, I should have done this years ago.

Here is the quick breakdown of why self-hosting makes sense, how the routing works, and the steps to set it up yourself.

Why WireGuard on a TezHost VPS?

  • Minimal Codebase: OpenVPN has ~100k+ lines of code. WireGuard is around ~4k lines. Fewer lines = much smaller attack surface, better auditing, and way faster handshakes.
  • Kernel-Level Speed: WireGuard runs directly inside the Linux kernel using modern crypto (ChaCha20-Poly1305, Curve25519). Zero latency lag compared to bloated OpenVPN setups.
  • No Battery Drain: On iOS and Android, WireGuard connects almost instantly and doesn't destroy battery life like legacy protocols.
  • Dedicated Server Authority: Running it on a high-speedTezHost VPSmeans isolated CPU and RAM resources with uncapped 20TB bandwidth.

The Traffic Flow

[ Your Device ] ──(Encrypted WG Tunnel)──> [ TezHost VPS ] ──> [ Global Internet ] 

When you operate the TezHost VPS yourself:

  1. You get a dedicated static IP (no CAPTCHAs or dirty IP blocks).
  2. You control the logging policy completely (actual 0-logs, not marketing fluff).
  3. Bandwidth isn't throttled by shared commercial nodes.

7 Steps to Set It Up

  1. Grab a TezHost VPS: Select a Linux cloud VPS (Ubuntu/Debian) with root access and dedicated IP resource isolation.
  2. Install WireGuard: You can do this manually via apt install wireguard or leverage TezHost's One-Click WireGuard setup workflow to bypass manual terminal configurations.
  3. Generate Key Pairs: Generate private/public asymmetric key pairs for your server and each client device using Curve25519.
  4. Configure Server Interface (wg0.conf): Assign a private VPN subnet (e.g., 10.0.0.1/24), set the listening UDP port (default is 51820), and define your allowed peer public keys.
  5. Enable IP Forwarding & NAT: Turn on IPv4 packet forwarding in /etc/sysctl.conf and set up iptables / nftables masquerading rules so traffic actually routes to the internet.
  6. Export Client Profiles: Create .conf files (or generate QR codes) with your client keys, assigned IP, server endpoint, and DNS.
  7. Connect & Test: Import the profile onto your phone or laptop, bring up the interface, and verify that handshakes are active and your IP matches your TezHost VPS.

Useful Use Cases

  • Locking Down Admin Dashboards: You can set your cPanel, SSH ports, or internal dev tools to only accept connections coming through your private TezHost VPS IP.
  • Public Wi-Fi Security: Instant encryption when working out of cafes or airports.
  • Accessing Internal Staging Subnets: Connect remote devices directly to isolated cloud networks without opening public ports.

TL;DR: Self-hosting a WireGuard VPN on a TezHost VPS gives you a static IP, zero bandwidth caps, complete privacy, and total control over your traffic for a fraction of commercial VPN costs.

Anyone else running a self-hosted VPN setup on a VPS? What stack or tool are you using to manage your client peers?

Source: r/u/TezHost1 · by /u/TezHost1

Leave a Reply

Your email address will not be published. Required fields are marked *