{"id":43074146,"url":"https://github.com/ssut/WSL2-HyperV-Firewall-Manager","last_synced_at":"2026-02-11T10:00:43.668Z","repository":{"id":334920528,"uuid":"1142223419","full_name":"ssut/WSL2-HyperV-Firewall-Manager","owner":"ssut","description":"WSL2 Hyper-V Firewall Management GUI for mirrored WSL2 networking","archived":false,"fork":false,"pushed_at":"2026-01-27T15:38:21.000Z","size":342,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-28T01:35:27.468Z","etag":null,"topics":["firewall-rules","gui","hyperv","windows","wsl2"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssut.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-26T05:42:34.000Z","updated_at":"2026-01-27T20:00:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ssut/WSL2-HyperV-Firewall-Manager","commit_stats":null,"previous_names":["ssut/wsl2-hyperv-firewall-manager"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ssut/WSL2-HyperV-Firewall-Manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssut%2FWSL2-HyperV-Firewall-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssut%2FWSL2-HyperV-Firewall-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssut%2FWSL2-HyperV-Firewall-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssut%2FWSL2-HyperV-Firewall-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssut","download_url":"https://codeload.github.com/ssut/WSL2-HyperV-Firewall-Manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssut%2FWSL2-HyperV-Firewall-Manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29331588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T06:13:03.264Z","status":"ssl_error","status_checked_at":"2026-02-11T06:12:55.843Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firewall-rules","gui","hyperv","windows","wsl2"],"created_at":"2026-01-31T14:00:23.616Z","updated_at":"2026-02-11T10:00:43.659Z","avatar_url":"https://github.com/ssut.png","language":"Rust","funding_links":[],"categories":["Apps"],"sub_categories":["System Utilities"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/icon.png\" alt=\"WSL2 Hyper-V Firewall Manager\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eWSL2 Hyper-V Firewall Manager\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  A Rust desktop application for managing WSL2 Hyper-V firewall rules with a git-like draft/commit workflow and full rollback capability.\n\u003c/p\u003e\n\n---\n\n![Screenshot](docs/screenshot.png)\n\n## Overview\n\nThis application provides a graphical interface to manage Windows Hyper-V firewall rules specifically for WSL2. It uses the `Get-NetFirewallHyperVRule`, `New-NetFirewallHyperVRule`, and `Remove-NetFirewallHyperVRule` PowerShell cmdlets under the hood.\n\n## Why\n\nRunning servers inside WSL2 is easy.\nAccessing them from outside your machine is not.\n\nWSL2 relies on Hyper-V networking, which means exposing ports often requires manual firewall configuration using PowerShell commands — and those settings are fragile and repetitive.\n\nThis project was built to make WSL2 port exposure trivial:\njust click, enter, and your WSL2 service is reachable from the outside.\n\n## Features\n\n### Core Features\n\n- **Visual Rule Management** - View and manage all Hyper-V firewall rules for WSL2\n- **Git-like Safe Workflow** - Stage changes (add/remove/modify) before committing them\n- **Snapshot History** - Automatic snapshots before each commit with full rollback capability\n- **UAC Elevation on Demand** - Read rules without admin rights; elevation requested only for mutations\n- **WSL Config Validation** - Checks for `networkingMode=mirrored` in `.wslconfig`\n\n### Auto-Discover\n\n- **WSL Status Monitoring** - Real-time indicator showing whether WSL is running\n- **Automatic Port Discovery** - Detects listening TCP ports inside WSL using `lsof`\n- **One-Click Rule Creation** - Suggests firewall rules for discovered ports with a single click to add\n- **Smart Filtering** - Skips ports that already have rules or were dismissed\n\n## Requirements\n\n- Windows 11 with WSL2 installed (Version 22H2 or higher)\n- WSL2 configured with mirrored networking mode\n\n### WSL2 Configuration\n\nThis application requires WSL2 mirrored networking mode. Add to `~/.wslconfig`:\n\n```ini\n[wsl2]\nnetworkingMode=mirrored\n```\n\nThen restart WSL: `wsl --shutdown`\n\n## Installation\n\nDownload the latest release from the [Releases](https://github.com/ssut/wsl2-hyperv-firewall-manager/releases) page.\n\n## Building from Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/ssut/wsl2-hyperv-firewall-manager\ncd wsl2-hyperv-firewall-manager\n\n# Build in release mode\ncargo build --release\n\n# The binary will be at target/release/wsl2-hyperv-firewall-manager.exe\n```\n\n## Usage\n\n1. **Launch the application** - Rules are loaded automatically (no admin required for viewing)\n2. **Stage changes** - Add, remove, or modify rules; changes are staged but not applied\n3. **Commit changes** - Click \"Commit\" to apply all staged changes (requires admin elevation)\n4. **Rollback if needed** - Use the History panel to restore any previous snapshot\n\n### Auto-Discover Ports\n\n1. Start WSL and run your services (e.g., `python -m http.server 8000`)\n2. The status bar shows WSL status with a green indicator when running\n3. Auto-discover activates automatically when WSL starts\n4. Floating notifications appear for newly detected ports\n5. Click \"Add\" to stage a firewall rule, or dismiss to ignore\n\n## Architecture\n\n### Technology Stack\n\n| Component              | Technology            | Version       |\n| ---------------------- | --------------------- | ------------- |\n| UI Framework           | gpui + gpui-component | 0.2.2 / 0.5.0 |\n| PowerShell Integration | rustclr               | 0.3.4         |\n| State Persistence      | sled                  | 0.34          |\n| Serialization          | serde + serde_json    | 1.x           |\n| Async Runtime          | tokio                 | 1.x           |\n| Error Handling         | anyhow + thiserror    | 1.x / 2.x     |\n\n## License\n\nMIT License\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssut%2FWSL2-HyperV-Firewall-Manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssut%2FWSL2-HyperV-Firewall-Manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssut%2FWSL2-HyperV-Firewall-Manager/lists"}