Documentation

Updated 2026 · covers FortiOS 7.0 through 7.6 · ~6 min read

Getting started

Every tool follows the same shape: fill in what you know about the traffic or the device, read the generated CLI, copy it, paste it into a session. There is no build step, no account, and no server round-trip — the generators are plain JavaScript running in the tab you have open.

Field values are kept in your browser's local storage so a refresh doesn't wipe your work. Clearing site data clears them.

Pick your firmware train first

Command syntax drifts between majors. Confirm what you're actually connected to before you copy anything — mismatched syntax on a production box costs you the maintenance window.

get system status | grep Version
Version: FortiGate-100F v7.4.4,build2662,240918 (GA.M)
AreaNote
diagnose debug flowStable across 7.0–7.6. The show iprope option is the main addition in later builds.
config system sdwanReplaced the older virtual-wan-link block. On 7.0 and later use sdwan.
set ike-version 2Unchanged, but IKEv2-only defaults differ between trains — always set it explicitly.
execute log filterField names vary slightly by log category. Set the category first.

What we store

Nothing. Field values live in memory and in your browser's local storage. There is no analytics on tool inputs, and configs you paste into the analyser tools are parsed locally — the text never leaves the page.

You can prove this: open the tools, disconnect from the network, and keep using the site. Everything keeps working — the fonts are self-hosted too.

Reading debug flow output

The flow trace prints one block per packet. These are the lines that answer most questions:

LineWhat it means
allocate new sessionFirst packet of a new session. The policy lookup below it is the one that matters.
find a routeShows the chosen gateway and egress interface, before policy evaluation.
Denied by forward policy checkNo matching policy, or the match is a deny. Check the interface pair and the service.
reverse path check failAsymmetric routing — the return route doesn't point back out the ingress interface.
enter IPsec tunnelTraffic matched a phase 2 selector and is being encapsulated.

If you see no output at all, the traffic is not reaching the firewall — go back to a sniffer capture before you touch policy.

Sniffer verbosity levels

LevelPrintsUse when
1Header onlyConfirming a flow exists
2Header + payloadInspecting a protocol handshake
3+ ethernet headerMAC-level problems
4Header + interface nameDefault. Proving ingress and egress
5+ payload + interfaceFull picture on a quiet box
6EverythingRarely. It is expensive

Always set a packet count. 0 runs until you interrupt it, and on a busy firewall the console output alone can hurt.

IPsec phase mismatch table

Symptom in the IKE debugUsual cause
no SA proposal chosenEncryption, integrity or DH group mismatch in phase 1
probable pre-shared key mismatchPSK differs — often trailing whitespace from a pasted ticket
peer SA proposal not match local policyPhase 2 selectors don't line up
INVALID_ID_INFORMATIONPeer ID mismatch, commonly when one side is behind NAT
retransmit / no responseUDP 500 or 4500 blocked in the path

Paste the raw debug into the IPsec error decoder and it will do this matching for you.

Disclaimer

FortiTools is an independent project. It is not affiliated with, endorsed by, or supported by any vendor, and the generated output is offered without warranty. Review every command before you run it — you are still the engineer on the change ticket.