← Back to Projects

Why BlarisVPN?

A developer's solution to unreliable VPN access in China

The Problem

Claude Code is not supported in China. Every time I tried to use it in the terminal, I was greeted with the same frustrating error:

$ claude
Error: API request failed with status 403
Access denied. This service is not available in your region.

Even with a VPN running, the terminal seemed to bypass the proxy routing entirely. The browser worked fine, but command-line tools? Blocked.

API Error 403 Screenshot

What Didn't Work

I tried the obvious solutions first:

  • NordVPN: Completely blocked in China. Couldn't even connect.
  • Astrill: Works for browsers, but terminal apps don't route through it properly. Claude Code still saw my China IP.
  • Shared VPN services: Constant server surfing to find one that works. Too many users, unreliable connections.

The frustrating part: Even when connected to Astrill with a foreign IP, Google and Claude could still detect I was in China. Some servers worked, others didn't. No consistency.

The Core Issue

Most VPN apps only proxy browser traffic. They don't properly configure system-wide proxy settings that terminal applications respect.

SSH, curl, and CLI tools like Claude Code need the actual system proxy to be configured, or they'll bypass your VPN entirely.

The Discovery

I discovered that the VLESS protocol with Reality actually works reliably in China. It disguises traffic as regular HTTPS to microsoft.com, making it nearly impossible to detect or block.

Phone First

Free apps like v2box let you scan a QR code and connect instantly. VLESS worked perfectly on my phone.

Server Setup

I set up a Hetzner server for about $5/month. Installed Xray-core with VLESS+Reality. Single user, dedicated connection.

Remote Development

I installed Claude Code directly on the server. Now I can access it via Termius from my phone, bypassing China's restrictions entirely.

The Missing Piece

But I still needed a way to run Claude Code on my Mac. Manually configuring VLESS on macOS was tedious. I needed automation.

The Missing Clue

In October 2025, a developer named Eldorado-ling posted a solution on the Claude Code GitHub issues. The insight was simple but crucial:

$ curl ifconfig.me
203.xxx.xxx.xxx
# Still showing China IP despite VPN "global mode"

The problem wasn't the VPN itself. Terminal apps like Claude Code don't follow browser proxy settings. They need the system HTTP proxy configured, or they'll connect directly and expose your real IP.

This confirmed what I needed to build: a VPN that actually configures macOS system proxy settings.

Source

Thanks to Eldorado-ling for documenting this fix in the Claude Code issue tracker.

View original comment →

The Solution: Vibe-Coded VPN

🎯

One-Click Setup

Enter server IP and password. Click "Setup Server". Done. The app handles SSH, Xray installation, and credential generation automatically.

One-Click Connect

Click the menu bar icon to connect. The app configures macOS system proxy settings, so all apps including terminal route through the VPN.

🔒

Single User Reliability

Your own server, your own connection. No sharing bandwidth with thousands of users. No server surfing to find one that works.

The Result

No more API 403 errors. Claude Code works in the terminal. I can code without constantly fighting my internet connection.

What I built: A macOS menu bar app that turns any Hetzner server into a personal VPN in under 60 seconds. VLESS+Reality protocol for reliability. System-wide proxy configuration so terminal apps actually work.

Why it matters: Developers in restricted regions shouldn't have to choose between their location and their tools. This solution gives you control over your own infrastructure.

← Back to All Projects