Fort Firewall User Guide - tnodir/fort GitHub Wiki

Fort Firewall User Guide

Applies to Fort Firewall 3.20.6.

Fort Firewall is a firewall for Windows 7 and later. It allows or blocks network access per program. It can also filter by address, port, protocol, direction, network area and network profile, and limit bandwidth.

Fort uses its own Windows Filtering Platform (WFP) driver; it does not configure Windows Defender Firewall.

Contents

Getting started

How it works

Features

Reference

Help

Tip

Most windows open from the tray menu (right-click the Fort icon). Most windows also have three buttons in the top-right corner:

  • a cog button, which opens Options;
  • a chart button, which opens Traffic; its arrow opens the Statistics menu (Traffic, Connections, Filter Simulator);
  • a menu button, which opens the tray menu.

Overview

Fort identifies the program behind every connection by its executable path. It then decides whether to allow or block the connection: see How Fort decides.

2026-10-05_150758

Main features

  • Per-program Allow / Block / Ask / Kill Process.
  • Ask to Connect: a connection is paused till you allow or block it.
  • Wildcard paths and rules inheritance from parent processes.
  • Per-service filtering for svchost.exe.
  • Groups, Speed Limits and Time Periods (schedules).
  • Zones: address lists, including downloadable block lists.
  • Text-based Rules.
  • Traffic statistics, a connection log with block reasons, and a live Traffic Graph.
  • A Filter Simulator, which shows how Fort would decide on a connection.
  • Password protection and a command line.

Components

Component Role
Driver (fortfw.sys) Makes every allow/block decision and shapes traffic.
Windows Service (FortFirewallSvc) Recommended. Owns the driver and databases, and keeps filtering when no one is signed in.
User interface (FortFirewall.exe) The tray icon and windows. A client of the service when the service is installed.

Installation

Step by step guide to install the software

fort_installation

Requirements

Download the installer from Releases:

Installer Windows CPU
FortFirewall-<version>-windows10-x86_64.exe 10 (1809+), 11 x64
FortFirewall-<version>-windows10-arm64.exe 10 on ARM (2004+), 11 on ARM ARM64
FortFirewall-<version>-windows-x86.exe 7 SP1, 8, 8.1, 10, 11 x86 or x64

You also need:

  • Microsoft Visual C++ Redistributable for the installer's architecture: x64 · x86 · ARM64.
    • The x86 installer needs the x86 redistributable, even on 64-bit Windows.
    • Only the x86 installer checks for it, on a new install. If it is missing, the installer offers the download and exits.
    • The x64 and ARM64 installers do not check, so install the redistributable first.
  • Windows 10 and later: Memory integrity (HVCI) must be off. See below.
  • Windows 7: update KB4474419, for SHA-2 driver signatures.
    • On a new install, the x86 installer checks whether Windows can verify the driver's signature.
    • If it cannot, the installer points you to KB4474419.
  • Administrator rights to install the driver. Without the Windows Service, Fort must also run as Administrator.

Note

The installer's Windows-version, HVCI, VC++ and KB4474419 checks run only on a new install, not on an upgrade.

HVCI / Memory integrity

The Fort driver is a signed loader. It loads the verified driver image into memory that is both writable and executable, which Windows Memory integrity (HVCI) forbids.

On a new install, the installer stops with "This program is not compatible with HVCI (Core Isolation)." if HVCI is on. Fort itself does not check HVCI later.

To turn it off:

  1. Open Windows Security (Windows 11: Settings ▸ Privacy & security ▸ Windows Security).
  2. Go to Device security ▸ Core isolation details.
  3. Set Memory integrity to Off.
  4. Restart Windows.

The HVCI wiki page has the details.

2026-10-05_151154

Caution

Turning Memory integrity off removes a layer of kernel protection. If your organization's policy requires HVCI, get approval first.

Installer options

Task Default Effect
Create a desktop shortcut On Adds a desktop shortcut.
Windows Explorer integration On Adds Fort Firewall ... to the right-click menu of .exe files. See Programs.
Windows Service On Installs and starts FortFirewallSvc. On a new install it also sets Auto-run: to For all users. Recommended.
Portable Off Portable mode. See below.

You can change the service, Explorer integration and auto-run later in My Fort.

2026-10-05_151323

Quick start

  1. Turn off Memory integrity (Windows 10+). Install with Windows Service on.
  2. Fort starts in Auto-Learn mode: every new program is allowed and added to the list.
    • Auto-Learn lasts for Auto-learn seconds: (1 minute by default) after the service starts.
    • Start your usual Internet programs now.
  3. Then Fort switches to Block, if not allowed. Programs not in the list are blocked and marked as alerts.
  4. Open Programs. Allow the programs you trust and block the rest.
  5. If something doesn't work, check Connections. See Troubleshooting.
  6. Optional: enable update checks. See Updating.

Portable mode

Fort keeps its data in a Data folder next to FortFirewall.exe. It recognizes portable mode by a README.portable file in the same folder. The driver still needs Administrator rights.

A portable copy can use the Windows Service too: My Fort ▸ Windows Service ▸ Install also installs the driver, and then Fort runs without Administrator rights. Remove removes both. On Quit, such a copy asks "Remove the Windows Service and the Driver before quitting?": Yes removes them (with a UAC prompt) and quits, No just quits, Cancel keeps Fort running.

There is no uninstaller. To remove portable Fort:

  1. Run Fort as Administrator and use My Fort ▸ Portable ▸ Uninstall.
  2. Choose Quit from the tray menu and wait for Fort to exit.
  3. Delete the folder.

Updating

  1. In Options ▸ Schedule, enable Fort Firewall Update Checker. It is off by default; the interval is daily.
  2. When a release is found, a "New version vX.Y.Z available!" notification opens My Fort ▸ About.
  3. There, use Download, then Install. Check for update checks right away.

Options ▸ Options ▸ Auto Update has three switches, all off by default:

Option Effect
Auto-download new version Downloads a new release when it is found.
Auto-install after download Installs it silently after downloading.
Keep current version Keeps the current release available in About for download or reinstall when no newer release exists, and keeps its downloaded installer.
2026-10-05_151527

Where Fort stores its data

Setup Configuration, programs, statistics Per-user UI settings
With the Windows Service %ProgramData%\Fort Firewall %LOCALAPPDATA%\Fort Firewall
Without the service %LOCALAPPDATA%\Fort Firewall same folder
Portable Data next to FortFirewall.exe same folder

To move these folders:

  • -p <folder> moves the main profile. Statistics and cache follow it; per-user UI settings do not.
  • To move each folder separately, set these keys in FortFirewall.exe.ini next to the executable:
    • global/profileDir
    • global/statDir
    • global/cacheDir
    • global/userDir

Uninstalling

Use Windows Settings ▸ Apps, or the Start-menu uninstall shortcut.

  • At the end, the uninstaller asks Delete config & data files?. The default answer is No.
  • Yes deletes %ProgramData%\Fort Firewall and your %LOCALAPPDATA%\Fort Firewall.
  • With Check password on Uninstall, the installer and uninstaller ask for the Fort password. See Security.

Getting around: tray icon and My Fort

Tray icon

Icon Meaning
Teal Normal.
Gray Filtering is off, or the driver is not available.
Orange Internet or LAN traffic is blocked.
Red Internet and LAN traffic are blocked.
Black with red F All traffic is blocked, except broadcast while Filter Local Addresses is off.
Yellow triangle overlay A new program was alerted. It clears when you open Programs or the alert window.

Default clicks (change them in Options ▸ Interface ▸ Tray):

Click Action
Single Click Show Programs Or Alert Window
Ctrl + Single Click Show Options
Middle Click Show Traffic
Right Click Show Tray Menu

Tray menu

Item Description
My Fort, Programs Open these windows.
Options ▸ The Options, Rules, Zones, Groups, Speed Limits, Time Periods and Services windows.
Statistics ▸ The Traffic, Connections and Filter Simulator windows.
Traffic Graph Shows or hides the graph.
Filter Enabled The master switch for network filtering.
Snooze Alerts Stops the alert window from opening automatically.
Block Traffic ▸ The global block modes.
Filter Mode ▸ See Filter modes.
Group and Rule items Toggle Groups, and Rules that have Tray Menu set.
Quit Closes the UI.

Notes on the menu:

  • Services needs admin rights or the Windows Service.
  • Kill Process and Kill child processes keep working while Filter Enabled is off.
  • With Snooze Alerts on, notifications and sounds still occur.
  • Block Traffic offers No Block, Block Internet Traffic, Block LAN Traffic, Block Internet and LAN Traffic and Block All Traffic.
  • After Quit, filtering continues if the service is installed. Without the service, Fort's program settings stop applying.
  • While Fort is locked by its password, or while Options is open, these items are disabled: Filter Enabled, Snooze Alerts, Block Traffic, Filter Mode and the Group items.
2026-10-05_151911

My Fort window

The My Fort page has four sections:

Section Contents
Driver Status, Reinstall, and Remove (shown only without the service).
Windows Service Install or Remove. Without Administrator rights, Windows asks for them (UAC).
Portable Uninstall (portable mode only).
Integration Windows Explorer integration, Control Panel: Sounds integration, Auto-run: (Disabled / For current user / For all users).

The About page shows the version and updates.

Also in the window:

  • Footer links: Profile, Logs, Service Logs, Releases and Help.
  • Lock / Unlock: shown if a password is set.
  • Admin-only controls: the driver, portable and all-users controls require Administrator rights.
  • Without the service and Administrator rights, Fort cannot access the driver: at startup it offers to install the Windows Service.
2026-10-05_152052

How Fort decides

The driver checks each new connection (inbound or outbound, IPv4 or IPv6) in this order. The first step that decides wins. The Reason column in Connections shows which step decided. The Filter Simulator shows it for a connection you describe, without making it.

# Step Configure in Reason shown
1 Loopback and broadcast are allowed (see note 1) Options ▸ IP Addresses not logged
2 Filter Enabled off: allow everything Tray, Options not logged
3 Block Traffic modes (see note 2) Tray, Options not logged
4 LAN addresses are allowed unless Filter Local Network is on Options ▸ IP Addresses not logged
5 Addresses in Block Addresses are blocked, then those in Allow Addresses are allowed, for every program (see note 8) Options ▸ IP Addresses Blocked Internet address, Allowed Internet address
6 Global Rules, applied before App Rules (see note 3) Rules Global Rule before App Rules
7 Unknown program: the Filter Mode decides (see note 4) Filter modes Filter Mode
8 The program's action is Block or Kill Process Programs Program's action
9 Block: In, for inbound connections Edit Program Block Inbound
10 Block: Out, for outbound connections Edit Program Block Outbound
11 Block: Internet, for non-LAN addresses Edit Program LAN only
12 None of the program's Groups is active (see note 5) Groups App. Group
13 The program's Zones (see note 6) Zones Zone
14 The Rules of the program's active Groups, then its own Rule, then its Network Filters (see note 7) Rules, Network Filters Rule, Program's Network Filter
15 Global Rules, applied after App Rules Rules Global Rule after App Rules
16 Nothing decided: the program is allowed, or asked if its action is Ask (see note 9) — Program's action

Notes

  1. Loopback and broadcast: they are allowed unless Filter Local Addresses is on.
    • Block All Traffic blocks loopback, but not broadcast. To block broadcast too, turn on Filter Local Addresses.
    • The LAN block modes block broadcast.
  2. Internet: in the Block Traffic modes, "Internet" means any address not in Local Network Addresses.
  3. Ignore mode: unknown programs in Ignore mode skip step 6 and every later step.
  4. Unknown programs: the Filter Mode either blocks them here, or allows them; in that case only step 15 still applies. Ask to Connect asks them, and also the alerted programs.
  5. Groups: if the program has exclusive Groups, only those count. This step requires Block traffic for disabled Groups.
  6. Zones:
    • An address in a rejected zone is blocked.
    • An address in an accepted zone is allowed.
    • Once accepted zones are set, any other address is blocked.
  7. Rules and Network Filters:
    • The Group Rules run in ascending Group ID order. The first rule that decides wins.
    • A rule or the Network Filters with a Terminating Rule always decide: if nothing else matched, the terminating action applies, and the later checks of steps 14–15 are skipped. E.g. the program's Rule with a Terminating Rule leaves its Network Filters unused.
  8. Allow Addresses: an allowed address skips the later steps, but an unknown program is still added to the list. Both lists apply to LAN addresses only while Filter Local Network is on.
  9. Ask: a connection decided by the Ask action of the program, a Rule or a filter, or by the Ask to Connect mode, is paused till your decision. See Ask to Connect.

Important

  • LAN traffic is not filtered by default. Step 4 allows it before programs, Groups and Rules are checked, and it is not speed-limited. 127.0.0.0/8 and 255.255.255.255 are in the default LAN list too.
  • A Global Rule applied before App Rules can override a program's Block.
  • An allowed program can still be blocked by steps 9–15.

Filter modes

The Filter Mode decides only about programs that are not yet in the Programs list. Ask to Connect also asks about the alerted programs.

Mode Unknown programs are… Added to the list as
Auto-Learn (default) allowed allowed, with an alert mark
Ask to Connect paused till your decision, see Ask to Connect blocked, with an alert mark
Block, if not allowed blocked blocked, with an alert mark
Allow, if not blocked allowed allowed, with an alert mark
Ignore, if not blocked or allowed left to other WFP filters, e.g. Windows Defender Firewall not added, not logged

You can set the mode in the tray Filter Mode menu, in Options ▸ Options, or with -c filter-mode.

How the mode behaves:

  • Auto-Learn timer:
    • Auto-Learn ends after Auto-learn seconds: and switches to Block, if not allowed.
    • The timer starts when Auto-Learn is turned on, and again at every service start while Auto-Learn is still active.
    • Disabled keeps Auto-Learn on indefinitely.
  • Adding programs:
    • In Ask to Connect, Block and Allow modes, programs are added only when Collect New Programs is on. Without it, Ask to Connect blocks unknown programs without asking.
    • Connections decided before step 6 of How Fort decides, e.g. LAN traffic, never add a program. Addresses in Allow Addresses are the exception.
  • Alerts: by default, Fort shows the alert window, a "New program detected!" notification and a sound in Ask to Connect, Block and Allow modes, but not in Auto-Learn. You can change this in Options ▸ Interface ▸ Programs, except for Ask to Connect.

Ask to Connect

Ask to Connect pauses a connection until you allow or block it. A connection is asked:

  • in the Ask to Connect Filter Mode: when the program is unknown or alerted;
  • in any Filter Mode, when it is decided by an Ask action:
    • of the program (Edit Program ▸ General, or Ask in the Programs window);
    • of a Rule (Edit Rule ▸ General);
    • of a filter (Action: Ask in the filter dialog, act(ask) in rule text);
    • of a Terminating Rule:.

A program with the Ask action is checked like an allowed one: see How Fort decides. Only the connections that would be allowed at step 16 are asked.

When a connection is paused:

  • The Alert Program window opens for the program with the oldest paused connection, unless Snooze Alerts is on. Its OK moves on to the next program with paused connections.
  • In the program's Edit Program dialog, the Paused Connections button (a pause icon with their count) appears next to the Connections button. It opens the Paused Connections window.
  • If you don't decide within Ask to Connect seconds: (Options ▸ Options, 30 seconds by default), the connection is blocked.

The Paused Connections window lists the program's paused connections. A decided connection stays in the list, but no longer pending. Its buttons act on the selected connections:

Button Effect
Allow once Allows this connection only. The program's next connections are asked again.
Allow Process Allows the connection's process, not the program, till the process exits. Its arrow picks a time instead: from 10 seconds to 6 hours. The process's other paused connections are allowed too, and its next ones are not asked.
Block once Blocks this connection only.
Continue Decides the connection by the current settings, e.g. after you changed the program's Rule. A connection that would still be asked is blocked.
Add Filter Opens the filter dialog filled from the selected connection, to add it to the program's Network Filters. Double-clicking a row does the same.

Notes:

  • Saving the program, e.g. by OK in the Alert Program window, decides its paused connections by its new settings, unless its action is still Ask. Connections asked by a Rule or a filter wait for your decision.
  • An inbound connection can't be allowed or blocked once: use Continue or Allow Process.
  • A program can have up to 9 outbound and 1 inbound paused connections. Its further connections are dropped silently, so the programs retry them later.
  • Without a running Fort UI to decide them, paused connections are blocked after the timeout.
  • Paused connections are not shown in Connections. A decided connection is logged there by the logging switches, with the reason Allowed once by "Ask to Connect", Blocked by "Ask to Connect" (also after the timeout) or Process allowed by "Ask to Connect". Limit of "Ask to Connect" means it could not be paused.

Programs

A program entry holds:

  • an action: Allow, Block, Ask (see Ask to Connect) or Kill Process;
  • optional network filters, Groups, a schedule, logging flags, notes and an icon.

Kill Process stops the program from starting, even while Filter Enabled is off. It normally also terminates running instances.

Programs window

Control Description
Allow / Block / Ask / Remove Act on the selected programs.
Search / Searches name, path and notes. A leading / searches by regular expression.
Filters button Shows only Alerts, Wildcard Paths, Parked, Ask, Kill Process or Obsolete programs, or those in selected Groups.
Counters Click the allowed, blocked, asked or alerted counter to sort those programs to the top.
Edit menu The commands below. Also available on right-click.
Edit menu command Shortcut Effect
Timer ▸ — Allow now and block after the chosen time. Disable blocks now.
Allow / Block / Ask / Kill Process Alt+A / Alt+B / Alt+S / Ctrl+Alt+K Set the action.
Add / Add Wildcard Ctrl+N / Ctrl+Shift+N Add a program entry or a wildcard entry.
Edit / Remove Enter / Del Edit or remove the selected programs.
Copy Path / Open Folder Ctrl+Shift+C / Ctrl+Shift+O Copy the path, or open the folder.
Connections — Opens a Program Connections window for the selected program.
Review Alerts, Clear Alerts, Remove Alerted Programs — Work through the alert marks. See Alerts for how they differ.
Purge Obsolete Ctrl+Alt+P Removes programs whose file is gone. Keeps Parked programs, wildcard entries and service entries.

The columns are:

  • Name: struck through if the file is missing.
  • Zones, Rule, Groups, Speed Limits, Scheduled: icons showing what is set.
  • Action: a yellow triangle marks alerted programs.
  • File Path, Creation Time.
  • Notes: hidden by default.

You can also drag an .exe onto the window to add it.

Warning

Edit with several programs selected writes all of the current program's settings to every selected program, including Notes, icon and Rule. Only each program's path and name are kept.

2026-10-05_1507581

Edit Program dialog

The title is Edit Program, or Edit Wildcard for wildcard entries.

General tab

Control Description
File Path: / Wildcard Paths: The program path, or patterns one per line (see the editing rules below).
Name:, Notes, icon Display information.
Rules inheritance: How settings pass between parent and child processes. See Rules inheritance.
Groups The Groups this program belongs to.
Allow / Block / Ask / Kill Process The action.
Schedule Run Block, Allow, Remove, Kill Process or Ask In: N minutes or At: a date and time.
Quick buttons Shown while Schedule is off (see below).

Editing rules for the path fields:

  • File Path: is editable only when adding an entry.
  • Wildcard Paths: stay editable.
  • Neither can be edited when several programs are selected.

The quick buttons switch the action now, switch it for N minutes, or remove the entry after N minutes. They save at once.

Network Filters tab

Available only when the action is Allow or Ask.

Control Description
Download: / Upload: Assign a Speed Limit.
Block: In / Out Block incoming / outgoing connections.
Block: Internet Allow the LAN only.
Zones See Zones.
Rule See Rules.
Filters list The program's own filters, checked one by one after its Rule. Add Filter / Edit open the filter dialog; Move Up / Move Down set the order. The first matching filter decides. Add Filter in the Program Connections window fills the dialog from a connection.
Terminating Rule: If no filter matched, apply Allow, Block, Ask or Drop (optionally with Alert) anyway. Without it, the connection goes on to the Global Rules after App Rules.

Note

The Rule and the filters list are checked in this order: the Rule first, then the filters. A Rule that decides, including by its own Terminating Rule, leaves the filters unused. See step 14 of How Fort decides.

More tab

Option Default Description
Kill child processes Off Stops this program from starting new child processes (see the note below).
Parked Off Never purge this program as obsolete.
Collect Traffic Statistics On Records this program's traffic.
Collect allowed connections On Logs this program's allowed connections, if the global switch in Options ▸ Statistics is also on.
Collect blocked connections On Logs this program's blocked connections, if the global switch is also on.

Note

Kill child processes works even while Filter Enabled is off. Children that are already running are not terminated. Restart the program after changing this option: a running instance keeps its previous behavior.

Filter dialog

The Add Filter / Edit Filter dialog builds one filter line; the Text box shows it, Copy Text copies it.

Field Description
Action: By Rule (the action of the Rule), Allow, Block, Ask (see Ask to Connect) or Drop (block silently, without a response).
Direction: Inbound, Outbound.
Protocol: TCP, UDP, and others in the text field, comma-separated: names or numbers, e.g. ICMP, ICMPv6, 47, 50-51.
Area: Localhost, LAN (by Local Network Addresses in Options), Internet.
Remote IP:, Remote Port:, Local IP:, Local Port: Empty means any. Remote IP: takes an address, a range or a subnet per line, the others comma-separated values, e.g. ports 53, 80-8080.
Options: Log, No Log, Alert.
  • Nothing ticked in Direction:, Protocol: or Area: means any.
  • The = / ≠ button before a field inverts it: all, except these.
  • The button after Local IP: / Local Port: makes the local value equal to the remote one: =Local_Port in the Text. See = in Rule syntax.
  • The clear button clears a non-empty field.

Program Connections window

The Connections button in the corner of the dialog's tab bar opens and closes the Program Connections window: this program's logged connections, also those inherited from it (see Rules inheritance). A new program's connections are shown by its path.

  • The window opens next to the dialog and closes with it.
  • On the Network Filters tab, its Add Filter fills the filter dialog from the selected connection. Double-clicking a row does the same.
  • The Paused Connections button before the Connections button opens and closes the program's Paused Connections window. It is shown while the program has paused connections or the window is open.
  • Edit ▸ Connections in the Programs window opens it for the selected program, too.
2026-10-05_152846

TODO: The screenshot may be outdated: it shows the former Connections tab of the dialog.

Alerts

An alert marks a program that still waits for your decision:

  • a new program that Fort added to the list by itself (see Filter modes);
  • a program whose connection matched a filter with the Alert option.

Alerted programs have a yellow triangle in the Action column of the Programs window. Filters ▸ Alerts or the alerted counter lists them.

The Alert Program window is the Edit Program dialog for the newest alerted program. A program with paused connections comes first: see Ask to Connect.

  • Choose an action and click OK, or use a quick button. The window then moves on to the next alert.
  • Programs you skip stay alerted; find them with Review Alerts.
2026-10-05_153211

TODO: The screenshot may be outdated.

The commands that remove alert marks differ:

Command Effect
Allow, Block, Ask or Kill Process in the Programs window; OK in the Alert Program window or the Edit Program dialog Reviews the program: sets its action and clears its mark. The program is not alerted again, even if its action did not change.
Clear Alerts, also Auto-Clear alerts on window close Clears the marks and keeps the programs' actions, e.g. as the Filter Mode set them. The programs are not alerted again.
Remove Alerted Programs Removes the alerted programs from the list. The next connection of such a program adds and alerts it again, as a new program.

Tip

To decide on all alerted programs at once: in Programs use Filters ▸ Alerts, select the programs (Ctrl+A for all) and click Allow or Block.

Every new alert shows the "New program detected!" notification, plays the sound and opens the Alert Program window. These settings control it:

Setting Where Effect
Collect New Programs Options ▸ Options When off, Ask to Connect, Block, if not allowed and Allow, if not blocked modes don't add unknown programs to the list: they are just blocked or allowed by the mode, without alerts. Auto-Learn adds them anyway.
Auto-Show Alert Window for New Programs Options ▸ Interface ▸ Programs When off, the Alert Program window doesn't open by itself; the alert marks, the notification and the sound remain. The button next to it picks the filter modes that show the notification, the sound and the window (see Interface tab); the alert marks are set in any mode. A paused connection opens the window anyway.
Snooze Alerts tray menu, Options ▸ Interface ▸ Programs Like turning off Auto-Show Alert Window for New Programs, but quick to switch back.
Use System Notifications for New Programs, Sound Alert Options ▸ Interface ▸ Programs Turn off the notification or the sound.

Wildcard paths

Create wildcard entries with Add Wildcard, or with Switch Wildcard in the dialog. Wildcards work only in wildcard entries.

  • One pattern per line.
  • A line beginning with # is a comment. Comments at the end of a line are not supported.
  • Matching is case-insensitive. / and \ both work.
Pattern Matches
C:\Dl\*.exe .exe files directly in C:\Dl.
C:\Dl\*\*.exe .exe files exactly one folder below.
C:\Dl\** Everything in C:\Dl and its subfolders.
C:\Dl\**\*.exe .exe files in C:\Dl and all its subfolders.
**\app.exe app.exe anywhere.
?:\Dl\** Any drive.
[CD]:\Dl\** Drive C: or D:.
[!C]:\Dl\** Any drive except C:.
^C:\Dl\app[12].exe A leading ^ forces wildcard matching when the line has no * or ?.
C:\Dl\app.exe A line without wildcards is an exact path.

Matching rules:

  • *, ? and [...] never cross \. ** crosses folders only as a whole path segment.
  • \ is never an escape character.
  • Lookup order:
    1. exact paths;
    2. wildcard patterns, where the alphabetically first match wins;
    3. trailing-** prefixes, where the longest wins.

Environment variables in wildcard entries:

  • Variables such as %SystemRoot%, and the built-in %FORTHOME% (Fort's folder), are expanded only in wildcard entries.
  • With the Windows Service, they resolve as Local System. For example, %USERPROFILE% becomes C:\Windows\System32\config\systemprofile.

Rules inheritance

Rules inheritance: has three options:

Option Effect
Propagate to all child processes Child processes, recursively, are treated as this program.
Propagate to designated child processes Only children set to Receive from the parent process inherit.
Receive from the parent process This program takes its settings from a parent that propagates them.

How changes apply:

  • Changes apply to processes started afterwards.
  • A child that inherits its parent's network settings still keeps its own Kill Process setting.

Windows services

Many services share one svchost.exe process. Options ▸ Services lists them. It is available when the Windows Service is installed, or when Fort runs as Administrator.

Command Effect
Make Trackable Runs the service in its own process, so Fort sees it as \SvcHost\<ServiceName>. Fort offers to restart the service or the computer if needed.
Revert Changes Restores the original service configuration.
Restart Service / Refresh Restarts the service / reloads the list.
Add Program Opens Edit Program for \SvcHost\<ServiceName>.

Notes:

  • If Windows Update resets a trackable service, Fort makes it trackable again at startup.
  • On Windows 10+, many services already run separately, so Make Trackable is rarely needed.
2026-10-05_153503

Windows Explorer integration

Right-click an .exe and choose Fort Firewall ... to open Edit Program for that file.

  • On Windows 11 it is under Show more options.
  • The integration is per user.
  • It does not work when Disable command line management is on.
2026-10-05_153700

Groups

A Group is a shared on/off switch for programs, optionally on a Time Period. Open it from the tray: Options ▸ Groups.

Each program joins Groups in Edit Program ▸ General ▸ Groups; a program can be in several.

Field Meaning
Enabled Turns the Group on or off. You can also use the tray menu or a hotkey.
Exclusive Programs with exclusive Groups are enabled only while one of those Groups is active.
Rule: Applied to the Group's programs before their own Rule, while the Group is active.
Time Period: The Group is active only during this period.

How Groups work:

  • A program whose Groups are all inactive is blocked, provided Block traffic for disabled Groups is on (the default).
  • Programs without Groups are unaffected.
  • If a program is in several active Groups, their Rules run in ascending Group ID order (the number shown in the Groups window). The first Rule that decides wins.
2026-10-05_153906

Speed Limits

A Speed Limit caps bandwidth in one direction. Open it from the tray: Options ▸ Speed Limits. Assign limits per program in Edit Program ▸ Network Filters.

Field Meaning
Download / Upload The direction. It can be set only when the limit is created.
Speed: In Kb/s (1 Kb = 1024 bits). The minimum is 1.
Latency: / Packet Loss: Optional delay and simulated packet loss.
Buffer Size: Queue size in bytes. 0 means unlimited. Packets that overflow are dropped.
Time Period: The limit is active only during this period.

How limits behave:

  • Programs that use the same Speed Limit share its bandwidth.
  • Limits work only while Filter Enabled and Speed Limiter Enabled are on.
  • The window's Queue and Dropped columns show the limiter at work.
  • A limit with speed 0 can only come from an older configuration. It is ignored, including its latency and packet loss.
2026-10-05_154015

Time Periods

A Time Period is a weekly schedule used by Groups, Speed Limits, Rules and the Statistics' active period. Open it from the tray: Options ▸ Time Periods.

  • A period is active during any of its intervals.
  • A new period starts with one interval, 09:00–18:00 on all days. Add Interval adds another with the same defaults.
  • An interval with the same start and end time lasts 24 hours.
  • If the start time is later than the end time, the interval runs past midnight. The week days are the days on which the interval starts.
  • A disabled period never restricts anything. An enabled period with no intervals is never active.
  • Fort checks periods every minute.
2026-10-05_154120

Zones

A Zone is a named address list. Open it from the tray: Options ▸ Zones.

Source: Notes
Addresses from Inline Text Addresses typed into the dialog.
Addresses from Local File Put the file path in URL:.
WindowsSpyBlocker Downloaded list.
FireHOL Level-1 Downloaded list of attack sources.
TAS-IX Addresses Downloaded list.

Custom URL overrides a source's URL: and Form Data:.

When addresses are loaded

Addresses are loaded only when the Zones Downloader runs. It runs:

  • when you click Update Zones in the Zones window;
  • when you answer Update Zones? after editing a zone;
  • on its schedule, if enabled in Options ▸ Schedule.

Until then, a new zone is empty. At startup, Fort uses the last download.

Where Zones are used

The zone selector has three states:

State Meaning
Checked Accepted
Unchecked Rejected
Partially checked (default) Not used
Place Effect
Edit Program ▸ Network Filters A rejected zone is blocked. An accepted zone is allowed right away, skipping the program's Rules. Once accepted zones are set, all other addresses are blocked.
Edit Rule Without Inline Zones: the rule matches if its zones match or its text matches. With Inline Zones: zones are tested only through the zones filter.
Options ▸ IP Addresses Treat as LAN, or block for all programs.

Warning

  • Zones and rule text are combined with OR, not AND. For example, an Allow Rule with an accepted zone and the text tcp(443) allows any port to that zone, plus TCP 443 to any address. To require both, turn on Inline Zones and write zones:tcp(443).
  • Accepted zones restrict even when they cannot match. Only enabled zones with downloaded addresses match. If a program's accepted zones are disabled or empty, its connections that reach the zone check are blocked. To remove the restriction, set the zone back to partially checked.
2026-10-05_154229

Rules

Open the Rules window from the tray: Options ▸ Rules. It groups rules by type:

Type Applied to
Application Rules Programs and Groups that select the rule; each can select one.
Global Rules, applied before App Rules All connections, at step 6 of How Fort decides.
Global Rules, applied after App Rules Connections that are still undecided, at step 15.
Preset Rules Building blocks that you add to other rules.

Edit Rule dialog

Tab Field Meaning
General Name: Global Rules run in case-insensitive alphabetical order of their names. Use 01 …, 02 … prefixes.
Notes Your notes.
Type: The rule's type, see above.
Enabled / Tray Menu Turn the rule on or off; show it as a tray toggle.
Allow / Block / Ask The action when the rule matches. Ask pauses the connection till your decision: see Ask to Connect.
Exclusive Allow rules only. The rule's own condition must match before its presets are checked.
Zones / Inline Zones See Zones.
Add Filter Appends a line built by the filter dialog to the rule text.
Rule text The condition. See Rule syntax. Right-click ▸ Help opens the wiki.
Terminating Rule: If nothing matched, apply Allow, Block, Ask or Drop (optionally with Alert) anyway. The rule then always decides, so the later rules and the program's Network Filters are not checked.
Time Period: The rule is active only during this Time Period; otherwise it is skipped. In the Rules window, a clock icon marks it; hover it for the period's name.
Presets Preset rules Sub-rules, tried in the listed order. Use Add Preset Rule, Move Up and Move Down.
More Collect allowed connections / Collect blocked connections On by default. Untick to stop logging what this rule decides (see the note below).

Note

Logging exceptions:

  • A matching line with opt(log) still logs; opt(nolog) never logs.
  • When a Preset Rule decides, its own checkboxes count too. A preset with logging on still logs. A preset with logging off suppresses logging, even if the containing rule's box is ticked.
  • The global and per-program logging switches still apply.
2026-10-05_154901

TODO: The screenshot may be outdated.

Rule syntax

Element Meaning Example
new line or | OR 1.1.1.1 ⏎ 8.8.8.8
: or a space AND 1.1.1.1:53
name(a, b) Filter with OR'ed values tcp(80, 443)
a-b Range port(1024-65535)
/n Network mask ip(10.0.0.0/8)
[ ] Required around every IPv6 address [2001:db8::1]:443
{ } Nested group of lines see below
! NOT !ip(10.0.0.0/8)
= Local value equals remote value tcp(21)=local_port:dir(in)
# Comment # DNS

Unnamed values:

  • An unnamed value at the start of a line is ip.
  • An unnamed value right after ip, area or zones is port.
  • Any other unnamed value is an error.
Filter (alias) Matches
ip, port Remote address and port.
local_ip, local_port Local address and port.
proto (protocol) tcp, udp, icmp, … or a number.
tcp(...), udp(...) The protocol and the remote port. A bare tcp is ignored; use proto(tcp).
ip_ver (ip_version) 4, 6
dir (direction) in, out
area localhost, lan, inet
profile public, private, domain. One value per filter.
zones The rule's zones: no value or result, accepted, rejected. Needs Inline Zones.
icmp_type, icmp_code ICMP type and code.
act (action) allow, block, ask, drop for this line. One value.
opt (option) log, nolog, alert. log overrides the rule's unticked logging checkbox.

Examples:

# DNS to two resolvers
ip(1.1.1.1, 8.8.8.8):udp(53)

# Outgoing DNS to the Internet
area(inet):udp(53):dir(out)

# Inbound RDP from the LAN (needs "Filter Local Network" on)
area(lan):proto(tcp):local_port(3389):dir(in)

# Always block this address, whatever the rule's action
1.2.3.4:act(block)

# Nested group: outgoing web or DNS
dir(out):{
tcp(80)
udp(53)
}

Tip

  • In Connections, right-click a row and choose Copy as Filter to get rule text for that connection. For more examples, see the Rules wiki page.
  • To check a rule, describe a connection in the Filter Simulator: it shows the deciding Rule:.
  • To edit a rule's text in a file, use -c rule get-text and -c rule set-text. See Command line.

Traffic, connections and Filter Simulator

These windows open from the tray Statistics ▸ menu, or from the chart button in the top-right corner of most windows.

Traffic

Open it from the tray: Statistics ▸ Traffic (or Middle Click on the tray icon).

The Traffic window shows per-program Download and Upload in Hourly, Daily, Monthly and Total views.

  • The All row is the sum of all programs.
  • Search / filters the programs. A leading / searches by regular expression.
  • Units: sets the units of the values: Adaptive, Bytes, KB … PB.
  • The Edit menu has Add Program, Remove Application, Reset Total and Clear All.
  • Ctrl + double-click a view's tab to make it the active one when the window opens.
2026-10-05_155002

TODO: The screenshot may be outdated.

Connections

Open it from the tray: Statistics ▸ Connections.

The Connections window is the connection log. Hover the Reason icon to see which step of How Fort decides decided, and which Rule: or Zone:. It also shows Loopback for a loopback connection, and Inherited from: with the parent program's path for a connection decided by the inherited settings (see Rules inheritance).

Search / filters the connections:

  • Space-separated words must all be found, case-insensitively. A leading / searches by regular expression.
  • It searches the program's file name and name, the process ID, the protocol, the local and remote IP addresses and ports (also by service names, e.g. https), the direction, the action and the reason with its rule or zone name.
  • It does not search the host names and the time.
Columns Notes
Program, Process ID, Protocol —
Local Host Name, Local IP, Local Port Local IP is hidden by default.
Remote Host Name, Remote IP, Remote Port Remote IP is hidden by default.
Direction, Action, Reason, Time Action has an overlay for alerted connections; its tool tip is Allowed, Blocked or Dropped (blocked silently).

The right-click menu has:

  • Copy as Filter, Copy and Lookup IP;
  • Add Program;
  • Filter Simulator, which opens the Filter Simulator for this connection;
  • Remove, which removes the row and all older rows;
  • Clear All.

The Options button has Auto scroll and Show host names.

Important

What gets logged:

  • By default, only blocked connections are logged.
  • The log is cleared when the Fort service restarts, because Clear connections on exit (reduce disk writes) is on.
  • Connections decided at steps 1–4, and unknown programs in Ignore mode, are never logged.
2026-10-05_155111

TODO: The screenshot may be outdated.

Filter Simulator

The Filter Simulator shows what Fort would decide on a connection, without making it. Open it from the tray: Statistics ▸ Filter Simulator, or from a row's right-click menu in Connections, which fills in that connection and simulates it at once.

Connection Description
Program Path: The program's executable. The button next to it selects a file.
Direction: Inbound or Outbound.
Protocol: A number, or a named one from the list: TCP, UDP, ICMP, ICMPv6, IGMP, GRE, ESP, AH, SCTP.
Remote IP:, Port: The remote address and port. An IPv6 address may be written in [ ].
Local IP:, Port: The local address and port. An empty Local IP: means any.
Loopback A connection to an address of this computer. 127.0.0.0/8 and ::1 are always loopback.
Network Profile: Public, Private or Domain, for the rules' profile filter.

Click Simulate to see the Result:

Result Description
Action: Allowed, Blocked, Ask to Connect, or Ignored: other firewalls decide (the Ignore mode).
Reason: The step of How Fort decides, as in Connections.
Rule:, Zone: The deciding Rule or Zone, if any.
Program: The program entry found for the path, or Not found: then the Filter Mode decides.

The simulation uses the current options, programs, Rules, active Groups and the last downloaded Zones.

Note

  • The program is checked by its path only: the settings propagated from a parent process (see Rules inheritance) aren't taken into account.
  • Nothing is logged, and no program is added to the list.

Traffic Graph

The tray Traffic Graph item toggles a small live graph of download and upload speed. Appearance settings are in Options ▸ Traffic Graph.

Mouse Effect
Left-drag Move
Right-drag Resize
Double-click Maximize
Right-click Tray menu
2026-10-05_155259

TODO: The screenshot may be outdated.


Options reference

Open the window from the tray: Options ▸ Options. Every default value in this guide is listed here.

The buttons at the bottom:

Button Choices
Backup Export, Import, Import new programs (see below).
Default Reset to default all options, Reset to default current tab.
— OK, Apply (Ctrl+S), Cancel.

Warning

Backup choices:

  • Export saves the configuration, settings and statistics to a folder.
  • Import replaces all options and programs with the backup. The windows are restored by the backup's settings too.
  • Import new programs only adds programs whose path is not yet in the list, and leaves existing entries unchanged.
    • The added programs keep basic flags, such as the Allow/Block action, and are marked as alerts.
    • They lose their Groups, Zones, Rule, Speed Limits and custom icon. Review and reassign those.

Options tab

Option Default Notes
Filter Enabled On The master switch.
Block Traffic: No Block The global block modes.
Filter Mode: Auto-Learn See Filter modes.
Block traffic for disabled Groups On See Groups.
Speed Limiter Enabled On See Speed Limits.
Filter Off seconds: Disabled Turns filtering back on this long after you turn it off.
Auto-learn seconds: 1 minute The length of Auto-Learn.
Ask to Connect seconds: 30 seconds How long a paused connection waits for your decision before it is blocked. See Ask to Connect.
Block traffic when Fort Firewall is not running Off See Security.
Stealth mode (Prevent port scanning) Off See Security.
Disable Service controls Off See Security.
Disable command line management Off See Security.
Check password on Uninstall Off See Security.
Password: none See Security.
Collect New Programs On Adds unknown programs in Ask to Connect, Block and Allow modes.
Remove alerted programs on Auto-Learn Off Off Deletes still-alerted programs when Auto-Learn ends.
Purge Obsolete only on mounted drives Off Skips unmounted drives when purging.
Keep current version Off See Updating.
Auto-download new version Off See Updating.
Auto-install after download Off See Updating.
Log debug messages Off For diagnostics.
Show log messages in console Off For diagnostics.
Trace Driver Events Off For diagnostics.
2026-10-05_155411

Interface tab

Section Option Default
Global Language: system
Theme: System
Style: Fusion
Style Sheet: none (see below)
Use System Regional Settings On
Exclude from screen capture Off
Hot Keys Enabled Off
Global On
Filter Enabled Ctrl+Alt+Shift+F
Group Modifier Ctrl+Alt+Shift (+ F1–F12 for the first 12 Groups in the tray menu)
Rule Modifier none
My Fort Auto-Show Window On
Auto-Show Menu Off
Show Splash screen on startup On
Show window icons as in tray icon Off
Programs Use System Notifications for New Programs On
Auto-Show Alert Window for New Programs On (see below)
Alert Window is Always on top On
Alert Window is auto-active Off
Auto-Clear alerts on window close Off
Sound Alert On
Snooze Alerts Off
Tray Show Icon, Show Alert Icon, Animate Alert Icon On
Maximum count of Groups in menu: 16
Event: / Action: The click actions
Switch Window visibility Off
Action Confirmations Operations from Tray Menu Off
Quit On

Style Sheet: is a Qt style sheet file (.qss) applied to all windows at once. A relative path is from the program's folder. The -stylesheet <file> command line argument takes priority over it.

The button next to Auto-Show Alert Window for New Programs picks the filter modes that show the alert notification, sound and window:

Mode Default
Auto-Learn Off
Block, if not allowed On
Allow, if not blocked On

IP Addresses tab

Section Option Default Notes
Local Area Network Filter Local Addresses (127.0.0.0/8, 255.255.255.255) Off Filters loopback and broadcast (see the note below).
Filter Local Network Off While off, LAN traffic is allowed, unlogged and not speed-limited.
Local Network Addresses built-in list Addresses treated as LAN.
Internet Allow Addresses empty Allowed for all programs, unless in Block Addresses.
Block Addresses empty Blocked for all programs.

Note

  • Each list takes an address, a range or a subnet per line. The button at its top right adds Zones to it.
  • With the default LAN list, per-program filtering of loopback and broadcast also requires Filter Local Network. The Block Traffic modes have specific exceptions for these addresses; see note 1 in How Fort decides.
  • Local Network Addresses contains private, loopback, link-local, CGNAT, multicast/broadcast and IPv6 special-purpose ranges. Right-click ▸ Add Local Networks appends the list.
  • Allow Addresses and Block Addresses are not applied to LAN addresses while Filter Local Network is off.
  • An address in Allow Addresses skips the programs' checks, but its traffic is counted and an unknown program is added to the list. See step 5 of How Fort decides.
  • The built-in LAN list includes Teredo (2001::/32), 6to4 (2002::/16) and NAT64 (64:ff9b::/96), which can reach the Internet. Remove them if you filter IPv6.
  • The 3.15.0 ChangeLog announced that these fields will move to Global Rules. Prefer a Global Rule for blocking addresses.
2026-10-05_155512

TODO: The screenshot is outdated: it lacks Allow Addresses.

Statistics tab

Option Default
Collect Traffic Statistics On
Collect Traffic, when Filter Disabled On
Collect Traffic re-injected by other drivers Off
Time Period: (the active period) Off
Month starts on: 1
Keep data for 'Hourly': 3 months
Keep data for 'Daily': 1 year
Keep data for 'Monthly': 3 years
Day's Quota: / Month's Quota: Disabled
Block Internet traffic when quota exceeds Off
Collect allowed connections Off
Collect blocked connections On
Alerted only Off
Clear connections on exit (reduce disk writes) On
Keep count for connections: 10K

How these interact:

  • Collect Traffic re-injected by other drivers counts the packets that another driver re-injects, e.g. the inbound packets diverted by WinDivert, which otherwise aren't counted. Turn it on only when such traffic is missing: else the same traffic may be counted twice.
  • The Time Period: (Time Periods) limits when traffic is stored and when quotas count. The live graph keeps running outside the period. The former "Active time period" from/to times are converted into a Time Period on the update.
  • Quotas count only downloaded traffic that Fort tracks. When a quota is exceeded, Fort shows a Quota Alert.
  • If Block Internet traffic when quota exceeds is on, Fort also turns on Internet blocking. You must undo it yourself.
  • Turning off Collect Traffic Statistics stops the history but not the quota checks. To stop those, set the quota to Disabled.

Traffic Graph tab

Option Default
Always on top On
Hide on close, Frameless, Click through, Hide on hover, Show speed Off
Animation (smooth scroll, rising bars) Off
Axis ticks Off
Show: Total / Download / Upload Off / On / On
Opacity: / Hover opacity: 90 / 95
Tick label size: 9
Bar width: (pixels of a second) 5
Max seconds: 500
Fixed speed: Auto-scale
Graph type: Column (or Line)
Units: b/s

The tab also sets Colors (Light | Dark), incl. the Total: color of the download and upload sum.

Each color has an Alpha channel in its color dialog. For a transparent graph window, set the Background: color's alpha: 0 makes the background fully transparent, a value up to 255 makes it semi-transparent. The bars, lines and labels stay as they are. Opacity: applies to the whole window, the graph included. The Light and Dark themes have separate colors: set the alpha of both if you switch themes.

Schedule tab

Task Default
Fort Firewall Update Checker Off, daily
Zones Downloader Off, daily
Purge Obsolete Programs Off, daily

To configure a task:

  • Tick a task to enable it, and choose its interval: from Each 5 minutes to Monthly, or Custom in minutes. The list shows it as e.g. 1d 6h 30m.
  • The Options button sets Run On Startup and retries.
  • Run runs the selected task now; Abort stops it.
2026-10-05_154618

Security

Password

Set it in Options ▸ Options ▸ Password:.

It protects:

  • the Programs, Options, Rules, Zones, Groups, Speed Limits, Time Periods, Services, Traffic, Connections and Filter Simulator windows;
  • the alert window;
  • command-line commands, except home show, graph and conf update-driver.

Unlock till: has these choices:

Choice How long Fort stays unlocked
Window closed Until all open protected windows are closed, not just the first one.
Session lockout Until Windows is locked. Already-open protected windows stay usable, and another protected window can be opened from them without the password.
Program exit Until Fort exits.
5 minutes, 10 minutes, 30 minutes, 1 hour For this time.

To force a new password prompt, close the protected windows and click Lock in My Fort. With a choice other than Window closed, Options ▸ Options also shows a Lock the password (unlocked till "…") button below Password:.

2026-10-05_155643

Self-protection options

Option Effect
Block traffic when Fort Firewall is not running Adds boot-time and persistent block filters.
Stealth mode (Prevent port scanning) Silently drops inbound packets that Windows would reject.
Disable Service controls The service refuses Stop and Pause.
Disable command line management -c commands fail with "Command line disabled", except home show, graph and conf update-driver. This also disables Explorer integration.
Check password on Uninstall The installer and uninstaller ask for the password. Silent auto-updates skip this.

Warning

When Block traffic when Fort Firewall is not running is off (the default), Fort filters nothing while it is stopped.

Good practice

  • Allow only programs you recognize, and check the path first.
  • Remember that LAN traffic is unfiltered by default.
  • Remember that Ignore mode hands unknown programs to other firewalls.
  • Treat Fort as one layer of defense, alongside updates, backups and endpoint protection.

Command line

FortFirewall.exe -c <command> [<arguments>] controls the running Fort instance. -o <file> writes the command's output to a file instead of the console.

When a password is set, the commands except home show, graph and conf update-driver ask for it. Only Fort's tray process can show the password prompt: with the service alone, they fail with "Password required".

The windows' commands (home, window, graph) need the tray process too: the service alone fails them with "The service has no windows: run the tray process".

General

Command Description
home show Shows My Fort.
window show <name> [<tab>] Opens a window: home, programs, options, rules, zones, groups, speed-limits, time-periods, connections, statistics, services, filter-sim or graph. <tab> selects a tab of options: options, interface, addresses, statistics, graph or schedule, or its index from 0.
graph show|hide|switch Shows, hides or toggles the Traffic Graph.
filter on|off|report Filtering on/off.
filter-mode learn|ask|block|allow|ignore|report The Filter Mode.
block no|inet|lan|inet-lan|all|report Block Traffic.
conf get Prints the options' keys and values.
conf set <key>=<value>... Changes the options.
conf update-driver Resends the configuration to the driver.
backup export|import <folder> Configuration, settings and statistics.
zone update Runs the Zones Downloader.

Programs, Rules, Groups and addresses

Command Description
prog allow|block|kill|ask|add|del|report <path> A program. add opens Edit Program, without the Programs window.
prog get <path> Prints the program's fields and its id.
prog set <path> <key>=<value>... Changes the program's fields. The program must be in the list: prog allow, block or ask adds it.
prog get-filters|set-filters <path> <file> Saves the program's Network Filters to a file, or replaces them by the file's text. An empty file clears them.
rule on|off|report <rule-name> Enables or disables a Rule, by its exact name (case-sensitive).
rule get <rule-name> Prints the Rule's fields, without its text, and its id.
rule add <rule-name> <file> [<key>=<value>...] Adds a Rule with the file's text. The file may be empty.
rule set <rule-name> <key>=<value>... Changes the Rule's fields.
rule del <rule-name> Removes the Rule.
rule get-text|set-text <rule-name> <file> Saves the Rule's text to a file, or replaces it by the file's text. The text is checked first.
group on|off|report <group-id> A Group, by the number shown in the Groups window.
group add <group-name> [<key>=<value>...] Adds a Group and prints its number.
group set <group-id> <key>=<value>... Changes the Group's fields.
group del <group-id> Removes the Group.
period add <period-name> <intervals> [enabled=0|1] [notes=<text>] Adds a Time Period and prints its number.
period del <period-id> Removes the Time Period.
addr get-text|set-text <list> <file> Saves a list of Options ▸ IP Addresses to a file, or replaces it by the file's text. <list>: local-net (Local Network Addresses), allow-inet (Allow Addresses) or block-inet (Block Addresses). An empty file clears the list.
addr get-zones <list> Prints the numbers of the list's Zones, e.g. 1,3.
addr set-zones <list> [<zone-id>,...] Sets the list's Zones; without the numbers, clears them.

<intervals> of a Time Period: the days, 1 (Monday) to 7, as single days or ranges separated by commas, each list followed by its /<hh:mm>-<hh:mm> time, e.g. 1-5/09:00-18:00,6,7/10:00-12:00. The last list may have no time: whole days, e.g. 6,7.

Connections and statistics

Command Description
simulate <path> <remote-ip> [<key>=<value>...] Asks the Filter Simulator how Fort would decide on a connection.
conn list [<path>] [after=<conn-id>] [limit=<count>] Prints the Connections log: the last 100 (limit), or the ones after the connection's id. With <path>, the program's ones only, inherited too.
traffic get <path> Prints the program's total traffic, in bytes: in=<download> out=<upload>.
pending list [<path>] Prints the paused connections of Ask to Connect, as conn list.
pending allow|block|continue <conn-id> Decides on a paused connection, as its Paused Connections window: Allow (once), Block or Continue. An inbound connection can't be allowed once.
pending allow-proc <conn-id> [<seconds>] Allows the connection's process for the time, or till its exit, as Allow Process.

A relative <file> is resolved against the command's current folder. Give backup a full <folder> path.

Keys

<key>=<value> sets a field. A Boolean is 0 or 1 (false, true), a list of Zones or Groups is their numbers separated by commas (empty clears it). Quote an argument with spaces, e.g. "notes=My notes". An unknown key or invalid value is an error, and nothing is changed.

Command Keys
conf filterEnabled, filterLocals, filterLocalNet, blockTraffic, blockLanTraffic, blockInetTraffic, allowAllNew, askToConnect, askToConnectSeconds, appBlockAll, appAllowAll, groupBlocked, speedLimiterEnabled, logStat, logStatNoFilter, logStatReinjected, logApp, logAllowedConn, logBlockedConn, logAlertedConn, bootFilter, stealthMode, traceEvents, activePeriodEnabled, activePeriodId
prog action=allow|block|kill|ask, rule=<rule-name> (empty removes it), groups, inLimit=<id>, outLimit=<id>, inLimitEnabled, outLimitEnabled, applyParent, applyChild, applySpecChild, killChild, blockInbound, blockOutbound, lanOnly, parked, logStat, logAllowedConn, logBlockedConn, acceptZones, rejectZones
rule name, notes, type=app|global-before|global-after|preset, enabled, trayMenu, action=allow|block|ask, exclusive, inlineZones, terminate, terminateAction=allow|block|ask|drop, terminateAlert, logAllowedConn, logBlockedConn, period=<id>, periodEnabled, acceptZones, rejectZones
group name, notes, enabled, exclusive, period=<id>, periodEnabled, rule=<rule-name> (empty removes it)
simulate port (443), proto=tcp|udp|icmp|<number> (tcp), dir=out|in (out), localIp, localPort (0), loopback (0), profile=public|private|domain (public)

Output

The get and list commands print an object per line, as <key>=<value> pairs separated by spaces, in alphabetical order. A Boolean is 0 or 1; a text with spaces or quotes is quoted, its quotes doubled.

  • simulate: app (the program's number, 0 if not in the list), reason, result (allowed, blocked, ask or ignored), rule and zone (their numbers, 0 if none), terminated (decided by a Terminating Rule).
  • conn list and pending list: alerted, blocked, dir (out or in), dropped, id, inherited, local and remote (<ip>:<port>), loopback, path, pid, proto (the protocol's number), reason, rule, terminated, time (Unix time), zone.

Exit codes

Code Meaning
0 Success.
70 + n A report result: n is the value's position in the command's list, e.g. allow = 70, block = 71, kill = 72, ask = 73; for rule report, on = 70, off = 71.
99 Not found: prog report, get, set, get-filters, set-filters: the program is not in the list; traffic get: no statistics of the program. group: no Group with that ID. rule: no Rule with that name, or several. period del: no Time Period with that ID. pending: no paused connection with that ID.
2 Any other failure, e.g. prog del for a program that is not in the list, an invalid rule text for rule set-text, or rule add of an existing name.

Other switches

Switch Effect
--lang <code> The default language, used at first start.
-p <folder> The main profile folder. See Where Fort stores its data.
--no-splash No splash screen.
-i service|auto-run|explorer|portable|boot-filter Install a component. Must be the first argument. In portable mode, -i service also installs the driver.
-u Remove the service, Explorer integration, auto-run and boot filter, but not the driver. Must be the first argument.
-u service Remove only the service (in portable mode, also the driver).
-u explorer Remove only the Explorer integration.

Common tasks

Each task ends with a check.

Tip

To test a new program, copy curl.exe to C:\Temp\curl-test.exe. The copy is unknown to Fort only if:

  • no exact, wildcard or prefix entry covers that path;
  • you start it from a parent that does not propagate its rules (e.g. a plain Command Prompt).

Allow or block a program

  1. In Programs, select the program and click Allow or Block.
  2. Check: retry the program. A block appears in Statistics ▸ Connections with Program's action.

Review new programs

  1. In Programs, use Filters ▸ Alerts, or Edit ▸ Review Alerts.
  2. Allow or block each program; this clears its mark.

Allow a program temporarily

  1. In Programs, use Edit ▸ Timer ▸ 1 hour.
  2. Check: the Scheduled column shows an icon.

Control a whole folder

  1. In Programs, use Edit ▸ Add Wildcard and enter C:\Games\**.
  2. Choose the action and click OK.

Block one Internet address for everyone

  1. Add the address to Options ▸ IP Addresses ▸ Block Addresses and click Apply or OK.
  2. Check: connect to the address again; the reason shown is Blocked Internet address.

Ask before a program connects

  1. In Programs, select the program and click Ask.
  2. Check: start a connection of the program; the Alert Program window opens. Decide in its Paused Connections window, or choose an action and click OK. See Ask to Connect.

Limit download speed

  1. In Speed Limits, choose Edit ▸ Add.
  2. Enter a Name:, select Download, set Speed:, leave Enabled ticked, and click OK.
  3. In the program's Network Filters tab, tick Download:, choose the limit, and click OK.
  4. Check: watch the Traffic Graph.

Allow games only at weekends

  1. In Time Periods, choose Edit ▸ Add and enter a Name:. A new period already has one interval, 09:00–18:00 on all days.
    • Edit that interval; don't add a second one.
    • Set both times to 00:00, which means a whole day.
    • Select only Saturday and Sunday, then click OK.
  2. In Groups, choose Edit ▸ Add and enter a Name:. Tick Exclusive and Time Period:, choose the period, and click OK.
  3. In each game's General ▸ Groups, tick the Group and click OK.
    • Make sure the game is in no other Exclusive Group that is active outside the weekend; any active Exclusive Group enables it.
  4. Keep Block traffic for disabled Groups on.
  5. Check: a game connects during the period and is blocked (reason App. Group) outside it.

Note

The schedule applies only to connections that reach the Group check. LAN traffic and Global Rules applied before App Rules are not affected. See How Fort decides.

Find out why something was blocked

  1. Reproduce the problem.
  2. Open Statistics ▸ Connections and hover over Reason.
  3. Fix only the setting from that step of How Fort decides.
    • Exception: Old connection is not caused by a setting; see Troubleshooting.
  4. Check: right-click the row and choose Filter Simulator. It shows the new decision without a retry.
    • A connection that isn't logged, e.g. LAN traffic, can be described there by hand.

Troubleshooting

Click a problem to expand it.

A new program has no Internet access

Expected in Block, if not allowed mode. Allow it in Programs; look for the yellow triangle.

An allowed program is still blocked
  1. Check Statistics ▸ Connections ▸ Reason. It usually tells you which step decided.
  2. Find that step in How Fort decides; its row shows where to fix it.
  3. To check the fix, use the Filter Simulator.

Old connection is the exception: it is not caused by a setting. The driver could not associate or track the connection. This can happen:

  • when an open connection is re-authorized;
  • with resource errors on new connections.

Retry with a new connection. If it persists, check Logs and turn on Trace Driver Events.

A program lost access after a zone was disabled

The program's accepted zones still restrict it. Either:

  • re-enable the zone;
  • update the zone;
  • or set it back to partially checked in Network Filters.
Nothing appears in Connections

Possible causes:

  • a Block Traffic mode is on (possibly set by a quota);
  • the logging switches are off, globally or for the program;
  • Alerted only is on;
  • the log was cleared at restart.
Unknown programs are not added

Possible causes:

  • Ignore mode;
  • Collect New Programs is off;
  • the traffic is LAN-only, or decided at steps 1–5.
No alert popups
  • This is expected in Auto-Learn mode; see Options ▸ Interface ▸ Programs.
  • Check whether Snooze Alerts is on.
LAN traffic is not filtered

This is the default. Turn on Filter Local Network, or use Block LAN Traffic.

An environment variable doesn't match

Variables work only in wildcard entries. With the service installed, they resolve as Local System.

Speed Limits have no effect

Check that:

  • Speed Limiter Enabled and Filter Enabled are on;
  • the limit is enabled, in its period, and its speed is above 0;
  • it is assigned to the program;
  • the traffic is not LAN traffic.
A program set to Kill Process is still running

This is expected after a wildcard change, or a change to more than 7 programs at once. Close the running instances; new starts are blocked.

A program won't start

Check:

  • its Kill Process action;
  • Kill child processes on the program that launches it.

Both work even while filtering is off. After changing Kill child processes, restart the parent program.

The installer says "not compatible with HVCI"

Turn off Memory integrity, then restart. See HVCI / Memory integrity.

The driver is not working
  • Use My Fort ▸ Driver ▸ Reinstall (needs admin rights).
  • Without the service, run Fort as Administrator.

Collecting data for a bug report

If the problem persists, attach a zip with Fort's logs and the driver's state to the issue.

  1. Reproduce the problem.
  2. Right-click the Start button ▸ Terminal (Admin), Windows PowerShell (Admin) or Command Prompt (Admin). Use the Windows account you run Fort with.
  3. In Terminal or PowerShell, type cmd and press Enter first. Then paste and run these commands:
cd /d %TEMP%
rmdir /s /q FortReport 2>nul
mkdir FortReport
cd FortReport
xcopy /e /i /q "%ProgramData%\Fort Firewall\logs" ServiceLogs
xcopy /e /i /q "%LOCALAPPDATA%\Fort Firewall\logs" UserLogs
wevtutil qe System "/q:*[System[Provider[@Name='fortfw']]]" /f:xml /rd:true /c:100 > fortfw-events.xml
netsh wfp show state file=wfpstate.xml
(ver & sc query fortfw & sc qc fortfw & sc query FortFirewallSvc) > system.txt
cd ..
tar -a -c -f "%USERPROFILE%\Desktop\FortReport.zip" -C FortReport .
  1. Attach FortReport.zip from your Desktop to the issue.

The zip contains:

File Contents
ServiceLogs, UserLogs The Windows Service's and the UI's logs. My Fort ▸ Logs / Service Logs open these folders.
fortfw-events.xml The driver's events from the System event log. Turn on Trace Driver Events for more of them.
wfpstate.xml The Windows Filtering Platform's state: the filters of Fort and of other programs.
system.txt The Windows version and the state of the driver and the service.

Note

  • The logs contain programs' paths, and wfpstate.xml the filters of other programs. Check the files, if this matters to you.
  • A "File not found" message from xcopy only means that folder doesn't exist, e.g. without the service.
  • In portable mode, copy the Data\logs folder next to FortFirewall.exe instead.
  • Windows 7 has no tar: zip the %TEMP%\FortReport folder by its context menu ▸ Send to ▸ Compressed (zipped) folder.

Limits

Item Maximum
Groups 32
Speed Limits 32
Zones 32
Time Periods 64
Rules (total) 1024
Rules per Global category 64
Preset rules per rule 32
Preset nesting depth 8
{ } nesting in rule text 7
Groups in the tray menu 16
Rules in the tray menu 8
Paused connections per program 9 outbound, 1 inbound

Further documentation

Topic Link
Rule syntax and examples Rules wiki
HVCI details HVCI wiki
Frequently asked questions FAQ
Downloads Releases
Bug reports Issues
Questions and ideas Discussions

⚠️ **GitHub.com Fallback** ⚠️