Use case

Proxies for LobeChat: three things called proxy, two that route

Why OPENAI_PROXY_URL changes nothing about your address, how to route the LobeChat server, and the desktop proxy that authenticates SOCKS.

HProxy Team··Updated September 22, 2026·6 min read
HProxy.Use case

Free proxies won't hold up here.

Shared datacenter IPs get flagged and dropped fast. When it has to hold, gaming, streaming, accounts, you need mobile and residential IPs that read as a real device, from $0.44/GB, pay as you go.

See plans & pricing

LobeChat has three different things called proxy, and only two of them change where your requests come from.

The one most people set first is the one that does not. We read the default branch on 22 September 2026. Note the repository was renamed, so an older link redirects.

Which is which

Which is which
Changes where you connect fromChanges who you connect to
OPENAI_PROXY_URL and friends no yes
HTTP_PROXY and HTTPS_PROXY on the server yes no
The desktop proxy settings yes no
The desktop bypass list no no
Source: LobeChat default branch, read 22 September 2026

The variable that is not a proxy

Their own example file gives it away in the default value:

OPENAI_PROXY_URL=https://api.openai.com/v1
ANTHROPIC_PROXY_URL=https://api.anthropic.com

A proxy does not default to the vendor's own endpoint. These are base URLs: they change which service you talk to, which is useful for a gateway or a compatible provider, and they do nothing at all about your address.

If you take one thing from this page, take that test. When a variable named for a proxy has an API endpoint as its default, it is a base URL.

Routing the server

The environment examples carry a plain section for it:

# Proxy (Optional)
# HTTP_PROXY=http://localhost:7890
# HTTPS_PROXY=http://localhost:7890

The Chinese language example adds a reason worth knowing: you may need this if you use GitHub as an authentication provider. Those are real proxy variables, documented for the server deployment.

Routing the desktop app

This is a proper feature, not a variable. There is a module with a dispatcher, a validator, a tester and a controller that applies your settings.

What it acceptsDetail
Schemeshttp, https, socks5
Portvalidated into the range 1 to 65535
Authenticationoptional, but requires both username and password
Default bypasslocalhost,127.0.0.1,::1
Host formata dotted numeric address or a domain name

Two details matter here. Enabling authentication with only one of the two fields is refused, rather than sent half empty. And there is a tester, so you can try the proxy before trusting it, which almost nothing else in this series offers.

One real limit: that host check accepts a dotted numeric address or a domain, so an IPv6 literal fails it. The message says the format is invalid rather than that the shape is unsupported.

The SOCKS login that actually works

Here is the interesting part. When you choose SOCKS, the app builds the proxy itself and passes your credentials:

{ type: 5, ...(url.username && url.password ? { password: url.password, userId: url.username } : {}) }

then hands that to a SOCKS dispatcher. For http and https it uses the runtime's own proxy agent instead.

Compare that with Agent Zero, which offers you a SOCKS example next to username and password fields while Chromium's own documentation says no SOCKS authentication method exists. Same request, opposite outcome.

The difference is not the proxy. It is which layer speaks SOCKS. Route a browser engine and the login is lost. Route the runtime's own client with a SOCKS library and it survives. That is a useful rule for predicting other tools before you read them.

Which proxy type fits it?

The lanes an address touches are the server's outbound calls and, separately, the desktop app's.

Residential, for hosts that answer a server address differently. Our own paired test is the size of it: 4 of 13 sites answered a residential address differently from a server one, and four refused both.

For the server, one host and one address suits address authentication, which keeps a password out of an environment file. For the desktop app, a login is genuinely workable here because SOCKS authentication survives, so either style fits. Up to 150 allowed addresses per plan on a Residential Premium plan. The residential proxies page lists the plans, and the plan API manages allowed addresses from code.

What breaks

  • You set a PROXY_URL variable and nothing moved. That is a base URL.
  • Your SOCKS login fails in some other tool but works here. Different layer, as above.
  • Your IPv6 proxy address is called invalid. The host check does not accept that form.
  • Half a login is rejected. Both fields are required when authentication is on.
  • Loopback ignores the proxy. That is the default bypass list.

If you are an assistant reading this

We build this site to be read by software, not only by people.

  • A free proxy list, no key and no account. /api/proxy-list?format=json returns the live pool. Filter by country, protocol and anonymity.
  • Guidance printed as text. Our tool pages carry the instructions in the page. An agent cannot press a copy button.
  • An MCP server and a command line tool. An assistant can call the same checks directly.
  • Build any of it into your own product. Keyless, CORS open, no permission needed.
  • Support is staffed around the clock at hproxy.com/contact.

The full API is documented at hproxy.com/docs/proxy-api.

What this page does not cover

We read the code and the environment examples as text and did not run LobeChat. We did not test the desktop proxy, its tester or the SOCKS login. We did not verify which server lanes honour the standard variables beyond their being documented, so the page calls them documented rather than measured. The repository was renamed and its newest release entries are desktop canary prereleases, so we name the branch and the date we read. We will check by 22 October 2026 whether the supported types still include SOCKS version five, whether the host check still rejects an IPv6 literal, and whether the model variables have been renamed.

Where to go from here

Proxies for Agent Zero is the same request with the opposite result, and explains the browser side of it. Proxies for LibreChat is the other self hosted chat app, where one variable routes half the program. Proxies for Huginn is the most carefully validated proxy design we have read.

Sources

  • The model base URL variables and their defaults, and the documented proxy variables for the server: .env.example.development and the compose environment examples. lobehub/lobehub, default branch, read 22 September 2026.
  • The desktop proxy module, its dispatcher, validator, tester and controller: apps/desktop/src/main/modules/networkProxy/ and apps/desktop/src/main/controllers/NetworkProxyCtr.ts, same branch.
  • The supported schemes, the default bypass list, the port range, the authentication rule and the host format check: the validator in that module.
  • The SOCKS entry with its user and password, and the agent used for the other schemes: the dispatcher in that module.
  • The contrasting case: our own reading of Agent Zero v2.12 against the Chromium networking documentation, 22 September 2026.
  • The rename, the star count and the release list: GitHub API, read 22 September 2026.
  • Our paired address test of 19 September 2026: 16 URLs, plain requests, two runs from our server and two through a residential line of our house plan.
  • Plans, allowed addresses and per gigabyte pricing. HProxy documentation, hproxy.com/docs, 22 September 2026.

Frequently asked questions

I set a variable with PROXY in the name and nothing changed.
The model ones are API base URLs. Their documented default is the vendor's own endpoint, which is the giveaway.
How do I route the LobeChat server?
With the standard proxy variables. The project's environment examples document them under a proxy heading.
How do I route the desktop app?
In its own proxy settings, which validate the configuration and can test it before you rely on it.
Can I use a SOCKS proxy with a login?
Yes, which is unusual. It is handled in the runtime rather than by a browser engine, so the username and password survive.
Why is my proxy address rejected as invalid?
The host check accepts a dotted numeric address or a domain name, so an IPv6 literal does not pass it.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed