Skip to content

Releases: freeb5d/regionhop

regionhop v1.24.0 — 3x-ui integration

Choose a tag to compare

@freeb5d freeb5d released this 20 Oct 15:38

Settings → 3x-ui panel: paste a 3x-ui API token and every location is added to 3x-ui as a SOCKS outbound named regionhop-, automatically on add, remove and panel start.

regionhop v1.23.0 — choose the SOCKS port range at install

Choose a tag to compare

@freeb5d freeb5d released this 16 Oct 09:20

The installer now asks for the SOCKS port range. Press Enter for the default (19000-19999) or type your own, e.g. 30000-30999.

regionhop v1.22.0 — redesigned Settings page, Upstream Test button

Choose a tag to compare

@freeb5d freeb5d released this 16 Oct 08:33

Upstream Test. In Settings → Upstream, the new Test button tries what is currently in the form — without saving — and shows a green ✓ with the exit IP and time, or a red ✕ with the reason. A SOCKS5 or HTTP proxy is tested by fetching the exit IP through it; a V2Ray link or Xray JSON is run for a few seconds in a temporary Xray on a spare local port (the same config that saving would run), then stopped. socks4a:// can't be tested this way.

Settings page redesign. A section sidebar (a row of chips on phones), consistent cards with a header, body and action footer, and Auto restart organised into Schedule / Which locations / Restart again until. Proper checkboxes and number inputs, and right-to-left languages mirror correctly. The dashboard button is now labelled Settings.

Stale styles fixed. After an update, browsers could keep the old stylesheet and show the new pages with old CSS until a hard refresh. Static files now carry a version, so this no longer happens.

Run psictl update.

regionhop v1.21.0 — Google test tab, smarter auto restart, latest core

Choose a tag to compare

@freeb5d freeb5d released this 16 Oct 04:54

Google test tab. The latency toolbar has a new Google tab. It loads Gemini through each location's tunnel and shows a green OK or a red Blocked (hover for the reason), with the exit IP underneath. A blocked exit IP — for example one that gets Google's 403 page — shows as Blocked, as does a CAPTCHA/429, an unexpected page, or Google being unreachable. OK requires positive evidence that the real Gemini app was served.

Auto restart can restart again until a location is good. On the Settings page, tick any of:

  • real delay under N ms,
  • the exit IP differs from before the restart,
  • Gemini is not blocked on the new exit IP.

After each restart the panel waits for the location to reconnect and runs the ticked checks. If one fails it restarts that location again, up to give up after N tries (default 5, max 20) so a condition that can never be met cannot loop forever, then moves on. Each extra try is another restart. Outcomes appear in psictl panel-logs. Schedules without conditions behave exactly as before.

Core. Rebuilt against the latest psiphon-tunnel-core, and the current Xray-core.

Run psictl update, then restart your locations (or let auto restart do it) so running tunnels switch to the new core.

regionhop v1.20.1 — Logs button fix, auto restart for chosen locations

Choose a tag to compare

@freeb5d freeb5d released this 12 Oct 13:42

Layout fix. The Logs button no longer drops onto its own line below Restart/Stop/Remove in the locations table (it happened when the table was squeezed, and the exit IP under the latency made it more likely). Phone widths behave as before.

Auto restart can cover chosen locations. On the Settings page, pick All locations (the default; schedules saved earlier keep meaning this) or Only the ones I choose and tick them. Locations added later are not added to a selection automatically, and choosing "selected" with nothing ticked is rejected. The selection is included in backups.

Run psictl update.

regionhop v1.20.0 — exit IP in the latency test, scheduled auto restart

Choose a tag to compare

@freeb5d freeb5d released this 12 Oct 13:13

Exit IP next to latency. After a successful latency test, the panel now also shows the address websites see for traffic through that location, under the latency. It is looked up through the same tunnel with api.ipify.org (falling back to checkip.amazonaws.com); those services see only the exit address. It is a separate request after the measurement, so the latency number is unchanged, and a failed lookup just leaves the latency as before.

Auto restart. Settings has a new schedule: every N hours, days or weeks (1 hour to 365 days). The panel restarts every running location one at a time, about 3 seconds apart; stopped locations stay stopped. The page shows the last and next restart (UTC). Enabling or changing the schedule starts the countdown from now. It is included in backups. Each restart briefly drops that location's connections.

Run psictl update.

regionhop v1.19.9 — 'Show panel address' in the menu

Choose a tag to compare

@freeb5d freeb5d released this 06 Oct 16:29

The installer menu now has 11) Show panel address, which prints the panel's full URL (Quit is now 12; options 1–10 are unchanged). The same address also appears at the top of 7) Show status. The shell command sudo psictl panel-url does the same.

Run psictl update, then re-run the installer to see the new menu.

regionhop v1.19.8 — find your panel address again

Choose a tag to compare

@freeb5d freeb5d released this 06 Oct 16:13

If you lose the panel's address (it includes a random port and path), run sudo psictl panel-url on the server, or choose Show status in the installer menu. Previously it was printed only once at the end of the first setup.

Run psictl update to get the command.

regionhop v1.19.7 — security hardening

Choose a tag to compare

@freeb5d freeb5d released this 02 Oct 17:40

Fixes from a security review of the panel.

  • Connection exhaustion: the panel had no network timeouts, so anyone able to reach the port could hold connections open and knock it over without logging in. It now has read/write/idle timeouts and request-size limits.
  • Headers: every response now sends no-referrer (keeps the panel's address out of requests to the font and flag CDNs), nosniff, X-Frame-Options: DENY, a framing-restricting CSP, and no-store (so pages and the backup download aren't cached).
  • Dashboard: the exit region taken from a tunnel's log is now validated as a two-letter code and shown without innerHTML.
  • Password change: changing the admin password now also signs out every existing login.
  • Failed-login tracking no longer grows without bound; the backup page warns the file contains credentials.

Still open: the panel is served over plain HTTP, so the password and session cookie are readable by anyone on the network path. The README now says so and lists ways to reduce the exposure. Run psictl update.

regionhop v1.19.6 — don't block other software's ports (fixes 3x-ui panel unreachable)

Choose a tag to compare

@freeb5d freeb5d released this 01 Oct 16:34

Fixes other software on the same server (a 3x-ui panel, for example) becoming unreachable while regionhop is installed.

Cause: regionhop's firewall blocked outside access to the whole 19000–19999 range, which also caught any other program using a port in it. 3x-ui picks random ports, so its panel or inbounds can land there.

Fix:

  • Firewall rules now cover only each location's own SOCKS port, in a dedicated REGIONHOP-SOCKS chain. The old range-wide rule is removed on update.
  • A port something else is already listening on is left alone, and the update prints a warning naming the location (remove and re-add it to get a free port).
  • New locations skip any port that something else is listening on.

Run psictl update, then x-ui restart if the 3x-ui panel was affected.

Right now, without updating:

iptables -D INPUT ! -i lo -p tcp --dport 19000:19999 -j DROP
iptables -D INPUT -p tcp --dport 19000:19999 -j DROP
systemctl disable --now regionhop-firewall.service