HulyNet

Testing HulyNet

HulyNet is a private network that spans countries, and we are building it. Your computer connects to it, where no other tester’s computer can reach it, and sends all of its Internet traffic through it. Each connection leaves HulyNet where it is served best: a site in Russia is reached from Russia, the rest of the Internet from another country. A site sees HulyNet’s address, not yours. The names of the sites you open are looked up inside HulyNet too, so your provider neither sees them nor answers them.

So what your own connection does not reach opens, and a service that serves only its own country still does. The computer of ours that carries your traffic out is called the exit. Testers in Russia can also connect to HulyNet inside the country, through an entry.

If the connection breaks, nothing leaks: your computer has no Internet until the connection is back or you stop HulyNet.

This is a test version. We ask you to install it, use your computer as usual for a few days, and tell us how it went. A failed attempt helps us as much as a working one.

How HulyNet differs from OpenVPN, WireGuard, VLESS and others, and why there is no “OpenVPN file”: the comparison.

1 What we want to learn

2 Before you start

3 macOS

You need macOS 13 or newer, on Apple Silicon or Intel, and an administrator account: you type its password when a command starts with sudo.

3.1 Install and join

Open Terminal (in Applications → Utilities), paste this line, and press Return:

sh
curl -fsSL https://yl5ako37.nothing.md/install.sh | sudo sh -s -- YOUR-CODE

Terminal asks for your Mac’s password: type it and press Return. Nothing appears while you type; that is normal. The installer downloads HulyNet, checks it, installs two programs, hulyscaled (the service) and hulyscale (the command you use), starts the service, which starts again with the Mac, and connects your computer to HulyNet. When it says Done, your traffic goes through it.

macOS reports Background Items Added: that is HulyNet, leave it allowed.

Your computer gets a name, such as tester-7. To choose one yourself, add --name and the name at the end of the line, for example --name owl: up to 20 lowercase Latin letters, digits and -, starting with a letter, and nothing that identifies you.

3.2 Check that it works

3.3 Pause or stop

sh
sudo hulyscale stop     # your own connection again
sudo hulyscale start    # through the exit again

HulyNet also starts again when the Mac restarts. If it crashes, macOS restarts it within seconds, and in between you have no Internet: that is how nothing leaks. Whatever happened, sudo hulyscale stop gives you your own connection back.

3.4 Uninstall

sh
curl -fsSL https://yl5ako37.nothing.md/install.sh | sudo sh -s -- --uninstall --purge

Without --purge, your computer’s key (its ID) stays, and a new installation keeps its registration.

4 Linux

You need a 64-bit PC (x86_64 or ARM64) with a current distribution that uses systemd, and sudo. For DNS to go through the exit, the system must use systemd-resolved, as Ubuntu and its derivatives (Mint, Pop!_OS) and Fedora do: resolvectl status prints your network’s settings if it does. On Debian, install it first:

sh
sudo apt install systemd-resolved

Your network keeps working, and names now go through it. If you ran the line before that, run it again afterwards: it keeps your registration. Other systems without it (Manjaro, say) cannot use the exit yet: please do not run the line there, it would take up a registration for nothing.

4.1 Install and join

In a terminal:

sh
curl -fsSL https://yl5ako37.nothing.md/install.sh | sudo sh -s -- YOUR-CODE

It picks the right version for your computer, checks it, installs two programs in /usr/bin, hulyscaled (the service) and hulyscale (the command you use), starts the service, and connects your computer to HulyNet. When it says Done, your traffic goes through it. The service runs as root, because the system takes DNS settings only from root, and keeps a single permission: managing the network. To choose your computer’s name, add --name and the name, as on a Mac.

If your system cannot send DNS through the exit, HulyNet does not start its network: your traffic goes the ordinary way, not through the exit, and curl https://ifconfig.me; echo prints your own address. journalctl -u hulyscaled says why.

4.2 Check that it works

The same as on a Mac: curl https://ifconfig.me; echo prints the exit’s address, a site your own connection does not reach opens, a DNS leak test shows the exit’s address, and hulyscale status says via exit or via entry, and for all names on its dns line.

4.3 Pause or stop

The same as on a Mac: sudo hulyscale stop gives you your own connection back, and sudo hulyscale start sends everything through the exit again. HulyNet also starts again with the computer; if it crashes, systemd restarts it within seconds.

4.4 Uninstall

sh
curl -fsSL https://yl5ako37.nothing.md/install.sh | sudo sh -s -- --uninstall --purge

5 Windows

You need Windows 10 or 11 on a 64-bit PC (x64), and an administrator account. Windows on ARM does not work yet.

5.1 Install and join

Open a terminal as administrator: right-click the Start button, choose Terminal (Admin) (on Windows 10: Windows PowerShell (Admin)), and let it make changes. Paste this line and press Enter:

powershell
& ([scriptblock]::Create((irm https://yl5ako37.nothing.md/get.ps1))) YOUR-CODE

The installer downloads HulyNet, checks it, and installs it in C:\Program Files\HulyNet: two programs, hulyscaled (the service) and hulyscale (the command you use), with Wintun, WireGuard’s network driver. It starts the service, which starts again with Windows, and connects your computer to HulyNet. When it says Done, your traffic goes through it.

To choose your computer’s name, add -Name and the name at the end of the line, for example -Name owl, with the same rules as on a Mac.

5.2 Check that it works

In a terminal opened as administrator:

Printers, shared folders and the other devices at home stay reachable: HulyNet lets your local network through.

5.3 Pause or stop

In a terminal opened as administrator:

powershell
hulyscale stop     # your own connection again
hulyscale start    # through the exit again

HulyNet starts again with Windows. If it crashes, Windows restarts it within seconds, and in between you have no Internet: that is how nothing leaks. For the same reason, right after Windows starts it may show No Internet for a few seconds, until HulyNet is up. Whatever happened, hulyscale stop gives you your own connection back.

5.4 Uninstall

In a terminal opened as administrator:

powershell
& ([scriptblock]::Create((irm https://yl5ako37.nothing.md/get.ps1))) -Uninstall -Purge

Without -Purge, your computer’s key (its ID) stays, and a new installation keeps its network.

6 The entry: connecting inside Russia

Your computer reaches HulyNet at one of our servers: the exit, or, for testers in Russia, an entry, a server of ours inside the country. It chooses between them by itself: the one that answers faster over a working connection. You can also hold it to one.

6.1 Why

6.2 What the entry sees

6.3 Choose the server yourself

Your computer moves to another server of ours only when that one has answered clearly faster for a couple of minutes, and it waits for a quiet moment, so that open connections are not cut. If its server stops answering, it moves at once.

To hold it to one server, on macOS and Linux:

sh
sudo hulyscale exit entry    # hold to the entry
sudo hulyscale exit exit     # hold to the exit
sudo hulyscale exit auto     # let your computer choose again

On Windows, the same in a terminal opened as administrator, without sudo.

The command takes effect at once, without a restart. While that server cannot be reached, your computer uses the other, and comes back when it answers again. The command is still called exit: it names the server of ours that carries your traffic.

Check: hulyscale status says via entry or via exit, and on the next line why: pinned to entry, or by measurement. hulyscale peers shows the server in use with the path direct. If it says relay, your traffic makes a detour through another server of ours: send us a report. curl https://ifconfig.me; echo prints the exit’s address either way: sites outside Russia see the exit.

In a version installed before 12 November, hulyscale exit takes effect only after sudo hulyscale stop and sudo hulyscale start, and it does not know auto: install the new version first (the note at the top of this page).

7 Tell us how it went

sh
hulyscale report --private > hulyscale-report.txt

On Windows, in a terminal opened as administrator:

powershell
hulyscale report --private | Out-File -Encoding utf8 hulyscale-report.txt

Send us the file in the testers’ chat, with a few words:

8 If something goes wrong

9 Files, for installing by hand

The installer above downloads the right one of these for your computer. Each archive carries the configuration for this server. To install by hand, unpack it and run sudo hulyscale/install.sh --system on a Mac, or sudo hulyscale/install.sh on Linux; on Windows, in a terminal opened as administrator, powershell -ExecutionPolicy Bypass -File hulyscale\install.ps1 -Config hulyscale\hulyscale.toml. Then run the install line above with your code, which connects it.

SystemFile
macOS 13 or newer, Apple Silicon and Intelhulyscale-macos.tar.gz
Linux, x86_64hulyscale-linux-x86_64.tar.gz
Linux, ARM64hulyscale-linux-aarch64.tar.gz
Windows 10 and 11, x64hulyscale-windows-x86_64.zip

Checksums: SHA256SUMS. The installers themselves: install.sh, and for Windows get.ps1.