सामग्री पर जाएँ

यह पृष्ठ अभी आपकी भाषा में उपलब्ध नहीं है। आप अंग्रेज़ी पाठ पढ़ रहे हैं।

Blog

Traffic goes around a configured proxy: where the line falls

The proxy is set, its test came out green, and the site greets you by your home city. Green answers one question: the host is alive and let a request through, and whether the whole profile goes that way it does not say. The line between through the proxy and around it falls in four places on your own machine.

ARMANOS टीम7 min

What the green proxy check proves

You press Test, and a request goes through the proxy to an outside source that names the exit country. Four sources stand in the queue, and the asking stops at the first that answers. An answer means the host is alive, the password fitted and the country known.

Past that the dot promises nothing. The browser decides which connections go through the proxy, and it decides by the wording of the rule, not the colour.

  1. 1

    The host answers

    A request reached the proxy and came back.

  2. 2

    The country is named

    The exit address arrives from independent sources over a secure link.

  3. 3

    Coverage is not promised

    Which schemes go that way, green never says.

The line that sends https direct

The proxy address reaches the browser as one line of rule. Two wordings of that line exist, and the difference costs you all your real traffic.

A line like http=host:port means go through this proxy for http addresses only. Every https address then opens direct, from your home address, with no error shown.

Measured on a live launchWhat came out
Rule handed to the browserhttp=127.0.0.1:64827
Requests that went through itone: GET http://example.com
Where https wentdirect, unseen by the proxy
Same run after the rewordinghttp://127.0.0.1:64879
What the proxy saw thenGET http://example.com and CONNECT example.com:443

One typo sends the profile direct

A space at the edge, a scheme in the field, a login in the address: the browser cannot read that line. It does not complain, it goes direct, and the profile reaches the network on your own address.

So a bad address is better met with a refusal. A profile that never opened costs less than one opened on a wrong address.

  1. 1

    A space or a path inside

    The browser cannot read that line and applies no proxy.

  2. 2

    No connection kind chosen

    The address you typed would vanish whole, password included.

  3. 3

    The profile does not start

    A refusal is honest where a direct exit is not.

Exit through your own server takes the same road

A profile's proxy can be your own server over SSH, and the browser knows nothing about it. A tunnel is raised beside the profile, and the browser receives a plain socks5 on a local address.

The lock on an unusable proxy knows about SSH separately: if a launch path forgets to raise the tunnel, it runs into the lock and is refused. Quietly going direct with such a proxy is impossible on any path.

So the exit through your own server has two conditions instead of one: the host name and the port have to parse, and the tunnel has to be up before the window opens. Miss either, and the profile does not start.

Video calls take their own route

Voice and video in a browser do not travel as ordinary requests. They open a direct connection between two machines, and it finds the shortest path by itself.

So a page with a call reads your home address while the rest goes through the proxy. One browser setting closes that, forbidding the connection to leave around it.

How the call is closed on our side

In the default WebRTC mode the program gives a profile with a proxy a rule for direct connections: no UDP without the proxy. ARMANOS Browser gets it on its launch line and the built-in engine on the profile window, and the page with the call cannot see it; all it sees is the absence of your home address among the candidates.

The rule follows the profile's WebRTC mode. Real leaves it off on purpose, and an extension with the privacy permission can override it; the profile window names such an extension, and Test fingerprint measures with the profile's extensions.

Network diagnostics (Network > Run diagnostics, the WebRTC leak protection row) starts the engine your profiles open with, on a test profile behind a stand-in proxy, and asks for candidates from a STUN server on this computer's local network address: a request that reaches that server went past the proxy. Candidates are parsed line by line, and an address ending in «.local» is not counted as a leak: the browser substitutes it for the home address on its own.

When the measurement fails, the row says so: «Could not be measured». That answer and «No leak: the test request did not go past the proxy» are two different answers, and it does not pass off the first as the second. On a leak the row says the request went straight from this computer, or names the addresses that went around the proxy.

Your home city comes from elsewhere

The clock, the languages and the fonts are read straight off the browser, not the request header. They are produced on your machine and never pass through a proxy.

For them to agree with the address, the exit country has to be learned first. The profile asks for it the way it will go later, over a secure connection.

What the site reads off youWhere it comes from
The address in the requestfrom the proxy
The timezone namefrom the profile, by exit country
The language listfrom the profile, by exit country
The direct call connectionfrom your machine, until forbidden
The phone connection fieldsfrom the profile engine

No verdict without your own real address

A profile opens the ARMANOS start page, and the exit address sits on it: the one the site will see. A verdict beside it compares that address with your real one.

Addresses that match mean the proxy dropped and work has to stop. When your own real address is unknown, no verdict appears: an invented all good is worse than a blank.

  1. 1

    The addresses differ

    The proxy works, and the site is not seeing you.

  2. 2

    The addresses match

    The proxy dropped, and the site sees the real you.

  3. 3

    Your own address is unknown

    No verdict: a guess here is worse than a blank.

Three connection fields mark a phone

An Android handset hands a page three connection fields a desktop lacks. A site reads them in one line, and a profile without them answers like a desktop.

They have to appear as three, and with values of their own. A host wifi and a host infinity there give a phone profile away as loudly as their absence.

Where the three connection fields come from

A phone profile does not draw its connection kind by lot but derives it from latency by the browser's own thresholds: from 2010 ms it is slow-2g, from 1420 it is 2g, from 272 it is 3g, below that 4g. The pair «4g at 300 ms latency» does not occur in a real browser, and it will not occur here either.

The bandwidth ceiling comes from the same table the browser uses: 100 for LTE, and 11, 54 or 600 for Wi-Fi. Two rules hold the three fields together: the ceiling is never below the reported speed, and the subtype matches its kind.

A desktop profile gets none of these fields, and that is no omission: a real browser on a desktop has none of them either. An empty field is more honest here than a plausible one.

How to check this yourself in minutes

Open the profile and read the exit address on its start page. Then open any outside page about your address: the country has to be the same.

Then check what travels outside ordinary requests: a call and the profile clock. One value out of line means the site sees the same gap.

  1. 1

    Compare two addresses

    The one on the profile's start page and one from outside.

  2. 2

    Check the direct connection

    A page with a call shows where that connection leaves.

  3. 3

    Line up clock and language

    Country by clock and language has to match the address.

What this does not claim

  • It does not claim a proxy covers everything. It changes the address a request arrives from and leaves your behaviour, payment details and account history untouched.
  • The run above used a fake proxy on the same machine, not a bought address. Its port numbers are incidental: what matters is where https went.
  • The phone connection fields arrive only on a recent engine. On an older browser kernel the profile answers without them, which beats host values but stays visible.
  • The dot beside a proxy in the profile list shows that a proxy is set and configured, not that it answers right now. It is recomputed on every draw of the row from the profile fields and remembers nothing about past requests.

Where you can see this yourself

Every number above comes out of code you can open and run.

The proxy rule is built as one line and covers every scheme
apps/desktop/src/main/main.js · apps/desktop/test/proxy-covers-https.js
A bad address and a missing connection kind never reach a launch
apps/desktop/src/manager/renderer.js · apps/desktop/test/proxy-covers-https.js
Traffic from a profile with a proxy password goes through it in a real browser
apps/desktop/test/прокси-с-паролем-живьём.js
No verdict is given while your own real address is unknown
apps/desktop/src/start/start.html · apps/desktop/test/leak-verdict.js
The exit country is asked of four sources over a secure connection
apps/desktop/src/lib/exitGeo.js · apps/desktop/test/exit-geo.js
Three connection fields open only on an engine that supplies its own values
packages/shared/src/index.js · apps/desktop/test/поля-связи-телефона.js
In the default WebRTC mode a profile with a proxy sends no WebRTC request past it on either engine, measured with a STUN server on this computer
apps/desktop/src/lib/forkEngine.js · apps/desktop/test/webrtc-строка-запуска-живьём.js · apps/desktop/test/webrtc-диагностика-живьём.js

Questions

The proxy is green and the site still sees my city. Did the seller lie?
Not necessarily: the address can work honestly while a connection the browser routes its own way slips around it.
Why does https matter more than plain http here?
Almost all real traffic today is https, so a rule covering http alone covers almost nothing.
I typed an address with a space in front. What happens?
Nothing happens: the window trims spaces at the edges before saving. The danger is a typo inside the address: such a line cannot be parsed, and a refusal there beats a quiet trip straight out.
Do I have to switch calls off in a profile?
No, the direct connection keeps working, it is simply forbidden to leave around the proxy.
The start page showed no verdict. Is it broken?
No, a verdict appears only when both addresses are known, and without your own real one there is nothing to compare.
Can a profile sit on a SOCKS5 with a login and password?
Yes, the password is filled in along the way and never reaches the browser command line.

See what your own browser answers

The check reads 12 values and sends nothing anywhere.