Repository navigation
v1.1.0
| Architecture | Windows | Linux | macOS | Android | iOS | Web |
|---|---|---|---|---|---|---|
| x86-64 (64-bit) | EXE Portable MSI | DEB RPM AppImage | DMG | APK | Go | |
| AArch64 (ARM64) | EXE Portable * | DEB RPM AppImage * | DMG | APK | Xcode project | |
| ARMv7 (32-bit) | APK | |||||
| x86-64, Windows 7 and 8 | EXE Portable * |
| Gateway for the browser version | Windows | Linux | Any system, Java 17 or newer |
|---|---|---|---|
| x86-64 (64-bit) | ZIP | TAR.GZ | JAR |
| AArch64 (ARM64) | ZIP * | TAR.GZ * |
Docker image of the gateway for amd64 and arm64: ghcr.io/vasmarfas/networkhelm-gateway:1.1.0
* Experimental: built on its own runner and not yet run on that hardware. / Экспериментально: собрано на отдельном раннере, на этом железе пока не запускалось.
🛡️ VirusTotal: 1 of 22 files flagged / помечено файлов: 1 из 22
| File | Detections | Report |
|---|---|---|
| NetworkHelm-1.1.0-linux-aarch64.AppImage | 0/62 | 6fe853e5e5ad |
| NetworkHelm-1.1.0-linux-aarch64.rpm | 0/48 | 2ad543f6e659 |
| NetworkHelm-1.1.0-linux-amd64.deb | 0/47 | bd444d9b95ec |
| NetworkHelm-1.1.0-linux-arm64.deb | 0/48 | 3ea1a67e079b |
| NetworkHelm-1.1.0-linux-x86_64.AppImage | 0/62 | 13d2db0d4010 |
| NetworkHelm-1.1.0-linux-x86_64.rpm | 0/60 | 1f46dd575aee |
| NetworkHelm-1.1.0-macos-arm64.dmg | 0/51 | fd835d5df095 |
| NetworkHelm-1.1.0-macos-x64.dmg | 1/54 | 5c1f7c1a42e8 |
| NetworkHelm-1.1.0-windows-arm64-portable.exe | 0/56 | ddca5d1918a0 |
| NetworkHelm-1.1.0-windows-arm64-setup.exe | 0/56 | ddca5d1918a0 |
| NetworkHelm-1.1.0-windows-legacy-portable.exe | 0/60 | c3179ea158c6 |
| NetworkHelm-1.1.0-windows-legacy-setup.exe | 0/60 | c3179ea158c6 |
| NetworkHelm-1.1.0-windows-portable.exe | 0/57 | b6a6204e33d6 |
| NetworkHelm-1.1.0-windows-setup.exe | 0/57 | b6a6204e33d6 |
| NetworkHelm-1.1.0-windows.msi | 0/43 | e185520f1064 |
| NetworkHelm-1.1.0.apk | 0/68 | 70c6faa994ee |
| NetworkHelm-gateway-1.1.0-linux-arm64.tar.gz | 0/52 | 6887d980b177 |
| NetworkHelm-gateway-1.1.0-linux-x64.tar.gz | 0/53 | b17a3bf841b4 |
| NetworkHelm-gateway-1.1.0-windows-arm64.zip | 0/58 | 68dc263b0337 |
| NetworkHelm-gateway-1.1.0-windows-x64.zip | 0/53 | 73eeef29f998 |
| NetworkHelm-gateway-1.1.0.jar | 0/55 | 5ccde17e1ff8 |
| NetworkHelm-web-1.1.0.zip | 0/65 | 7724d4de2aa4 |
v1.1.0
Added
- Menus of the console come from the windows of the WinBox port. Over port 8291 a menu whose window the router describes is read from that window of the object model, and its rows are written in the names and forms the console prints. The first read of a menu on a build of RouterOS is checked against the console, and the routers of one build share the result. On a lab CHR Interfaces read in 9 ms instead of 84, WireGuard peers in 12 instead of 52, IP addresses in 6 instead of 38, firewall rules in 7 instead of 50, DHCP leases in 13 instead of 57, 1,204 routes in 60 to 66 ms instead of 828 to 872. Windows of settings, as DNS, Identity, the NTP client, IP settings and the clock, are read the same way.
- The descriptions of the windows come over port 8291, so a router with www turned off gets its windows too.
- A dense Material theme on one accent. Table rows are 26 dp, fields, toolbars and window titles 32, text 13 sp; touch sizes on a phone stay at 40 dp. The palettes are built from one accent with MaterialKolor, the navy of the icon by default; the settings offer eight accents and, on Android 12 and later, the colours of the wallpaper. The title of the active window takes the colour of the accent.
- The connect screen is two panels on a window 960 dp wide and more: the form on the left, the saved routers, neighbours and the scan on the right, with a bar between the form and the lists. The saved routers show the address, the comment, the user, the platform and the protocol in columns of their own.
- Comments in tables stand above the rows, in a column or nowhere, as the comment type of WinBox 4, in the settings and in the comment menu of each table.
Changed
- A connect over port 8291 has the menu of the router ready in 1.15 to 1.2 s instead of 6.6 s on a lab CHR. The windows go over the connection of the console, so the router computes one login instead of two. The check of the windows at login is kept for the next connect and made again in the background. The console answers its first call 0.36 s after the login instead of 1.27 s: the first calls of a session each opened a console of their own one after another. The first connect to a build of RouterOS checks its windows in 0.3 s instead of 4.3 s.
- Reads of the WinBox port go side by side, up to six at a time: eight windows of a lab CHR read in 18 to 22 ms instead of 130 to 177, through a link of 50 ms in 140 to 156 ms instead of 602 to 659.
- A table is read again as often as the description of its window on the router asks: connections, ARP and pools every 5 s, the DNS cache every 3, firewall rules and simple queues every 2.
- An item window opens with the row its list has already read, and the read of the item replaces it: a WireGuard peer on a CHR with a tenth of a core in 112 to 139 ms instead of 269 to 294 over port 8291, in 80 to 134 instead of 377 to 672 over the API.
- Inspections of the console that wait go out together in one line, and the description of a menu tells which words its print takes: through a link of 50 ms the first description of the WireGuard peers takes 465 ms instead of 693, their first list 188 ms instead of 420.
- The main window of the desktop application opens where and as large as it was closed. A window that grows shows the colour of the workspace instead of white, and on macOS a 5 dp strip inside the edges takes the presses that start a resize.
- The menu of the columns of a table lists the shown columns first, with arrows that move a column left and right.
- The classic theme draws Tahoma on Windows, where Segoe UI came out thin and grey at its size.
- Text on Windows is drawn with ClearType where Windows has it on. Compose makes the layer of a window without the order of the subpixels, and without it Skia drew every glyph grey whatever smoothing the text asked for; each window now takes the order Windows uses.
- The app installs on Android 8.0 and later. The dates of the log and of the forms and the check of an SSH host key need classes that Android 7 lacks, and the app ended there at the first of them.
- A wrong password over port 8291 makes one failed login on the router instead of three, and a name the router does not know gets no proof of the password that could be tried offline.
- The menu of a router is read once, not at every return to its tab: the windows come back as they were left, and over port 8291 the check of the windows no longer runs again.
- The editor colours a text while a key stays under some 30 ms, an export of about 20 KB. A key in an export of 60 KB took 229 ms with the colours on; a larger text is shown plain, and around the current match of a search a hundred matches are painted at the least.
- A request to OpenWrt over HTTP, OPNsense, pfSense, VyOS, Keenetic and a UPnP gateway has a deadline: a router that goes silent no longer holds the call, and on OpenWrt three such calls no longer take every slot of the session.
Fixed
- A value taken off in a window of the WinBox port reaches the router. A change that only took values off sent nothing before, and the router kept them.
- A console cut off by a lost connection no longer ends the app on Android and iOS. The window says that the connection is closed and offers to open the console again.
- A session over port 8291 comes back within seconds of the network. Tries that could not get past the network were spaced out like refused logins: on a phone the banner of the lost connection stayed up to half a minute after a return from the background and over a minute after Wi-Fi came back, now 3.4 s and 1.4 to 8 s. The window of the log no longer goes to the console for good when the connection drops, and the columns read from the object model no longer stop until the window is opened again.
- The console of port 8291 and of MAC-Telnet no longer speaks of SSH while it opens or when it cannot reach the router.
- Check For Updates over port 8291 keeps its status; it lost it a second after it opened and offered all four commands. A window of settings now needs every value it shows for reading before it is read from the WinBox port.
- Parts of a big table that rows keep leaving are asked in halves instead of ending with Interrupted (#2), and a poll that such a row broke keeps the rows of the last one.
- The connections of a busy router no longer keep the rows that went during the read.
- The window of packages over port 8291 offered Check For Updates twice, the second time as a link to itself.
- A window of one row of a table showed the first row of the table.
- The bundled window of DHCP leases shows Active Class ID.
- Safe Mode stays held when its button is pressed twice. The second press made the router ask whether to take the mode from the first console, and the app showed the mode off while the router held it: everything changed after that was rolled back when the session ended.
- Closing the window of the desktop app asks about Safe Mode, as Disconnect does, instead of leaving the router to roll the changes back.
- A form asks before an action that restarts or upgrades the router. Download & Install in the window of updates and the actions that make a new software id or host key ran at one press from a form; from a list they asked.
- What was typed into a form or the editor stays when its window is minimized, covered by another one on a phone or left for the tab of another router.
- Lists over REST come back by themselves after a lost connection, under the banner of the lost link, instead of a Retry button in every window.
- Ping opened before the descriptions of the router came has its Ping To field.
- Enter in a field no longer sends a form with a value the client does not take, a second press of OK before the answer no longer writes twice, and Apply keeps what was typed while the request went.
- An upload asks before it replaces a file of the router, and so does Save as. Cancel stops a transfer over SFTP, and a file too large for the memory is refused before the transfer instead of ending the app.
- A key of AltGr types its character. On Czech, Polish and German layouts such keys opened the search, switched the windows or saved the file.
- On a phone an unencrypted session keeps More and Disconnect on the toolbar.
- A password field hides a typed character at once on the desktop, in the browser and on iOS; on Android it follows the setting of the system. The keyboard of a phone no longer corrects what is typed into fields, scripts and the editor.
- After the change of password a router asks for at the first login the app enters again with the new one; the console of port 8291 kept the old one and was refused.
- A stored password survives a failed read of the password store, and an empty password cell of a CSV no longer writes over a stored password.
- The editor no longer ends the app when text is deleted with the find bar open. Tab in the fields of Find and Replace stays out of the document, and Replace goes on when the new text holds the old one.
- OpenWrt: an edit that waits for Apply survives a call the ACL denies, Upgrade over SSH starts, Disable on a firewall rule of the unified view turns the rule off, a new interface list takes the policies of the defaults, and without rpcd an apply with a full /tmp leaves the config as it was.
- OpenWrt over ubus with the ACL of LuCI alone opens its windows. Such a login may not read the files of LuCI nor a config without an application of LuCI, and the first denial closed Interfaces, the firewall, the DHCP servers and the wireless windows with Permission denied. Now the forms open with the options as the config has them, the parts the login may not read leave the menu, and only the windows whose own data the ACL denies say so: DHCP leases, ARP and the wireless clients. The ACL file of the OpenWrt package or a login over SSH gives those too.
- A list and the log come back after the app returns from the background. On a phone a router polled over HTTP, as OpenWrt over ubus, was left with a lost connection and a Retry button after every return, and the live values of the rows stood still even after Retry.
- An SNMPv3 answer below the security of the user is refused.
- The gateway refuses a socket without a session before it reads from it, reads no more than 8 KB of a login form and writes one line to logins.log for a locked address.
- A storage file held by another program no longer ends the app: the write is tried again, and a layout that still cannot be written waits for its next change.
- A log with a day that comes a second time, as after a router lost its clock, no longer ends the app.
Full Changelog: v1.0.1...v1.1.0