This site is migrating to wiki.safing.io, which is being maintained by Safing and the community alike.

Settings Handbook

This page lists all settings of the Portmaster.

Badge Meaning
Global Setting is configured globally.
Per App Setting is configurable per app, but also has a configurable global default.
Requires Restart Setting requires a restart of the Portmaster to take effect.
Stackable Per-app setting that does not replace the global default, but adds to it.
Advanced Setting is only visible in the Portmaster if the UI Mode is set to Advanced.
Developer Setting is only visible in the Portmaster if the UI Mode is set to Developer. Be careful, you could break things!
Beta Setting is not deemed to be stable yet.
Experimental Setting is meant for experiments and debugging. Be careful, you could break things!
setting/key Internal identifier of the setting. These are also used as anchors in order to directly link to a setting on this page.
When hovering over a setting name - copy its name and URL formatted in markdown. This requires JavaScript.
API Keys Global Developer core/apiKeys

Define API keys for privileged access to the API. Every entry is a separate API key with respective permissions. Format is <key>?read=<perm>&write=<perm>. Permissions are anyone, user and admin, and may be omitted.

API Keys need to be provided as a HTTP Basic or Bearer Authentication Header.
Usage of API Keys is only needed if you want to grant 3rd party software access to the Portmaster, or if you want to remotely manage the Portmaster via a Webbrowser. Be reminded that you are fully responsible yourself for the security and all implications of remote access.
On Linux, you can generate a new API Key like this: echo "$(tr -dc A-Za-z0-9 </dev/urandom | head -c 50)?read=user&write=user"

Automatic Intelligence Data Updates Global Advanced core/automaticIntelUpdates

Automatically check for and download intelligence data updates. This includes filter lists, geo-ip data, and more. Does not include software updates.

Default Value: true (boolean)
Automatic Software Updates Global Advanced core/automaticUpdates

Automatically check for and download software updates. This does not include intelligence data updates.

Currently, updates are checked for every hour. This frequency was chosen to stay up to date with the ever-changing landscape of malware/tracker/phishing domains managed by the various filter lists.

Default Value: true (boolean)
Development Mode Global Developer core/devMode

In Development Mode, security restrictions are lifted/softened to enable unrestricted access for debugging and testing purposes.

Never enable this in production, as anything will be able to fully control the Portmaster.

Default Value: false (boolean)
Process Detection Global Developer core/enableProcessDetection

This option enables the attribution of network traffic to processes. Without it, app settings are effectively disabled.

Do not disable except for debugging purposes.

Default Value: true (boolean)
UI Mode Global core/expertiseLevel

Control the default amount of settings and information shown. Hidden settings are still in effect. Can be changed temporarily in the top right corner.

Relevant settings on this page are marked with Advanced and Developer accordingly.

Possible Values:
  • Default: Simple Interface ( user ) : Hide complex settings and information.
  • Advanced Interface ( expert ) : Show technical details.
  • Developer Interface ( developer ) : Developer mode. Please be careful!
API Listen Address Global Requires Restart Developer core/listenAddress

Defines the IP address and port on which the internal API listens.

If you intend to access the Portmaster UI remotely, you can set this to 0.0.0.0:817. API Keys can be configured for access authentication. In addition to that, you will need to enable incoming connections in the Portmaster’s own App Settings. Be reminded that you are fully responsible yourself for the security and all implications of remote access.

Default Value: 127.0.0.1:817 (string)
Time and Date Format Global core/locale

Configures the time and date format for the user interface. Selection is an example and correct formatting in the UI is a continual work in progress.

Possible Values:
  • 24h DD-MM-YYYY ( en-GB ) :
  • Default: 12h MM/DD/YYYY ( en-US ) :
Log Level Global Developer core/log/level

Configure the logging level.

Log output with levels trace, debug and info contain a considerable amount of network information; such as processes, domains and IP addresses. If you are concerned about privacy in your log files, please use levels warning, error or critical.

Possible Values:
  • Critical ( critical ) : The critical level only logs errors that lead to a partial, but imminent failure.
  • Error ( error ) : The error level logs errors that potentially break functionality. Everything logged by the critical level is included here too.
  • Default: Warning ( warning ) : The warning level logs minor errors and worse. Everything logged by the error level is included here too.
  • Info ( info ) : The info level logs the main events that are going on and are interesting to the user. Everything logged by the warning level is included here too.
  • Debug ( debug ) : The debug level logs some additional debugging details. Everything logged by the info level is included here too.
  • Trace ( trace ) : The trace level logs loads of detailed information as well as operation and request traces. Everything logged by the debug level is included here too.
Metrics Comment Label Global Requires Restart Advanced core/metrics/comment

Define a metrics comment label, which is added to the info metric.

Default Value: (string)
Metrics Instance Name Global Requires Restart Advanced core/metrics/instance

Define the prometheus instance label for all exported metrics. Please note that changing the metrics instance name will reset persisted metrics.

See the prometheus label docs for more information. The key used for the label is instance.

Push Prometheus Metrics Global Requires Restart Advanced core/metrics/push

Push metrics to this URL in the prometheus format.

See the prometheus exposition format docs for more information. The data is POST-ed to the configured URL.

Network Service Global Advanced Experimental core/networkService

Use the Portmaster as a network service, where applicable. You will have to take care of lots of network setup yourself in order to run this properly and securely.

This allows you to use the Portmaster as a network-wide privacy system, similar to a Pi-Hole. This possibility exists mainly for testing and is not officially supported. You are free to tinker around with it though.

Default Value: false (boolean)
Release Channel Global Requires Restart Advanced core/releaseChannel

Use “Stable” for the best experience. The “Beta” channel will have the newest features and fixes, but may also break and cause interruption. Use others only temporarily and when instructed.

Though the Portmaster has not reached the v1.0 release, it already uses the final release channels. This means that “Stable” is the current baseline and “Beta” is more unstable.

Possible Values:
  • Default: Stable ( stable ) : Production releases.
  • Beta ( beta ) : Production releases for testing new features that may break and cause interruption.
  • Support ( support ) : Support releases or version changes for troubleshooting. Only use temporarily and when instructed.
  • Staging ( staging ) : Dangerous development releases for testing random things and experimenting. Only use temporarily and when instructed.
Feature Stability Global Developer core/releaseLevel

May break things. Decide if you want to experiment with unstable features. “Beta” has been tested roughly by the Safing team while “Experimental” is really raw. When “Beta” or “Experimental” are disabled, their settings use the default again.

Settings on this page are marked with Beta and Experimental accordingly.

Possible Values:
  • Default: Stable ( stable ) : Only show stable features.
  • Beta ( beta ) : Show stable and beta features.
  • Experimental ( experimental ) : Show all features
Desktop Notifications Global core/useSystemNotifications

In addition to showing notifications in the Portmaster App, also send them to the Desktop. This requires the Portmaster Notifier to be running.

You can read more on the Portmaster Notifier for additional information.

Default Value: true (boolean)
Block Unofficial TLDs Global Advanced dns/dontResolveSpecialDomains

Block .onion, .i2p, .loki, .bit, .eth, .888, .bitcoin, .coin, .crypto, .dao, .nft, .wallet, .x, .zil, .bazar, .coin, .emc, .lib, .bbs, .chan, .dyn, .free, .fur, .geek, .glue, .gopher, .indy, .libre, .neo, .null, .o, .oss, .oz, .parody, .pirate, .ku, .te, .ti, .uu. Unofficial domains may pose a security risk. This setting does not affect .onion domains in the Tor Browser.

Look at the dns querying deep dive for more information.

Default Value: true (boolean)
Internal DNS Server Listen Address Global Requires Restart Developer dns/listenAddress

Defines the IP address and port on which the internal DNS Server listens.

localhost is a special value, which will make the Portmaster listen on both 127.0.0.1:53 and ::1.

The shown default value localhost:53 is used on Linux. The default for Windows is 0.0.0.0:53, since on Windows requests are redirected to the same interface, not the loopback device.

Default Value: localhost:53 (string)
Retry Failing DNS Servers Global Developer dns/nameserverRetryRate

Duration in seconds how often failing DNS server should be retried. This is done continuously in the background.

The Portmaster keeps track of the availablity of configured DNS servers. If requests to a server fail too often, it will be marked as failed and the Portmaster will stop sending requests to it for the duration set by this setting.

Default Value: 300 seconds (integer)
DNS Servers Global dns/nameservers

DNS servers to use for resolving DNS requests.

If you prefer to use other DNS servers than the pre-configured ones, you can configure them here. See our guide on DNS Server Configuration for extended details.

Default Value: dot://cloudflare-dns.com?ip=1.1.1.2&name=Cloudflare&blockedif=zeroip, dot://cloudflare-dns.com?ip=1.0.0.2&name=Cloudflare&blockedif=zeroip (string array)
Ignore System/Network Servers Global Advanced dns/noAssignedNameservers

Ignore DNS servers configured in your system or network. This may break domains from your local network.

This does not affect a special set of domains for testing connectivity. Look at the dns querying deep dive for more information.

Default Value: false (boolean)
Use Secure Protocols Only Global Advanced dns/noInsecureProtocols

Never resolve using insecure protocols, ie. plain DNS. This may break certain local DNS services, which always use plain DNS.

This effectively disables mDNS as well as any DNS Server configured in your system or network.
This does not affect a special set of domains for testing connectivity. Look at the dns querying deep dive for more information.

Default Value: false (boolean)
Ignore Multicast DNS Global Advanced dns/noMulticastDNS

Do not resolve using Multicast DNS. This may break certain Plug and Play devices and services.

Queries for mDNS Domains such as .local will be sent to a System/Network DNS Server instead. Look at the dns querying deep dive for more information.

Default Value: false (boolean)
Always Use DNS Cache Global dns/useStaleCache

Always use the DNS cache, even if entries have expired. Expired entries are refreshed afterwards in the background. This can improve DNS resolving performance a lot, but may lead to occasional connection errors due to outdated DNS records.

Default Value: false (boolean)
Prompt Timeout Global filter/askTimeout

How long the Portmaster will wait for a reply to a prompt notification. Please note that Desktop Notifications might not respect this or have their own limits.

Regardless of the timeout configured here, the Portmaster will block the connection after a short timeout in order to keep a clean state and report the connection to the UI. Applications waiting for a prompt may report that they were not able to connect. In this case just ask the application to reconnect after handling the prompt.

Default Value: 60 seconds (integer)
Prompt Desktop Notifications Global filter/askWithSystemNotifications

In addition to showing prompt notifications in the Portmaster App, also send them to the Desktop. This requires the Portmaster Notifier to be running. Requires Desktop Notifications to be enabled.

Requires enabled Desktop Notifications.

Default Value: true (boolean)
Force Block Incoming Connections Per App filter/blockInbound

Connections initiated towards your device from the LAN or Internet. This will usually only be the case if you are running a network service or are using peer to peer software. Is stronger than Rules (see below).

In order to accept incoming connections, they must also be allowed by the Incoming Rules.

Default Value: true (boolean)
Force Block Internet Access Per App filter/blockInternet

Force Block connections from and to the Internet. Is stronger than Rules (see below).

You can use this setting to completely lock out an application from the Internet. Alternatively, you can block access globally while allowing specific apps as an exception in their respective per-app settings.

Default Value: false (boolean)
Force Block LAN Per App filter/blockLAN

Force Block all connections from and to the Local Area Network. Is stronger than Rules (see below).

You can use this setting to completely lock out an application from your local network. Alternatively, you can block access globally while allowing specific apps as an exception in their respective per-app settings.

Default Value: false (boolean)
Force Block Device-Local Connections Per App Advanced filter/blockLocal

Force Block all internal connections on your own device, ie. localhost. Is stronger than Rules (see below).

Internal connections on your device are usually not a threat. There are however cases where it makes sense to restrict localhost communication, such as for Browsers, if not needed.

Default Value: false (boolean)
Force Block P2P/Direct Connections Per App filter/blockP2P

These are connections that are established directly to an IP address or peer on the Internet without resolving a domain name via DNS first. Is stronger than Rules (see below).

This setting is set to “Danger” by default because there is lots of software that directly communicates with IPs.

If P2P connections are not needed widely, we recommend setting this to “Trusted” to greatly increase security. For exceptions in that case you can easily allow P2P connections for specific apps in their respective per-app setting.

Default Value: false (boolean)
Custom Filter List Global Advanced filter/customListFile

Specify the file path to a custom filter list (.txt), which will be automatically refreshed. Any connections matching a domain, IP address, Country or ASN in the file will be blocked.

Formatting Help:

The file (.txt) is checked every couple minutes and will be automatically reloaded when it has changed.

Entries (one per line) may be one of:

  • Domain: “example.com”
  • IP Address: “10.0.0.1”
  • Country Code (based on IP): “US”
  • AS (Autonomous System): “AS1234”

Everything after the first element of a line, comments starting with a ‘#’, and empty lines are ignored.
The settings “Block Subdomains of Filter List Entries” and “Block Domain Aliases” also apply to the custom filter list.
Lists in the “Hosts” format are not supported.

Please note that the custom filter list is fully loaded into memory. This can have a negative impact on your device if big lists are loaded.

Default Network Action Per App filter/defaultAction

The default network action is applied when nothing else allows or blocks a connection. This affects both outgoing and incoming connections. This setting is the weakest of all and is commonly overruled by Force Block settings or Rules.

If set to “Prompt”, the Portmaster will prompt you in the User Interface as well as via Desktop Notifications (if enabled) to make a decision about a connection. You can also allow or block prompts in bulk in the UI.

Possible Values:
  • Default: Allow ( permit ) : Allow all connections
  • Block ( block ) : Block all connections
  • Prompt ( ask ) : Prompt for decisions
Disable Auto Allow Per App Beta filter/disableAutoPermit

Auto Allow searches for a relation between an app and the destination of a connection - if there is a correlation, the connection will be allowed.

This setting is meant to reduce noise when using prompting. Currently, this feature is still rather primitive - comparing paths and names - but will become smarter in the future.
Auto allowing is disabled by default because it is a convenience and not a privacy feature.

Default Value: true (boolean)
Seamless DNS Integration Global Developer Experimental filter/dnsQueryInterception

Intercept and redirect astray DNS queries to the Portmaster’s internal DNS server. This enables seamless DNS integration without having to configure the system or other software. However, this may lead to compatibility issues with other software that attempts the same.

Default Value: true (boolean)
Enable Domain Heuristics Per App Advanced filter/domainHeuristics

Checks for suspicious domain names and blocks them. This option currently targets domain names generated by malware and DNS data exfiltration channels.

If this setting blocks benign connections, you can turn it off for single applications, but we highly recommend you leave it on globally. Domains generated by malware are an easy way to evade blocklists and slip through security systems.

Default Value: true (boolean)
Enable Privacy Filter Global Developer Experimental filter/enable

Enable the Privacy Filter. If turned off, all privacy filter protections are fully disabled on this device. Not meant to be disabled in production - only turn off for testing.

Turning this off will completely disable the privacy filter and allow any connection. You should never use this in production. Instead, consider changing the default action to “Allow”.

Default Value: true (boolean)
Outgoing Rules Per App Stackable filter/endpoints

Rules that apply to outgoing network connections. Cannot overrule Network Scopes and Connection Types (see above).

Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match:

  • By address: 192.168.0.1
  • By network: 192.168.0.0/24
  • By network scope: Localhost, LAN or Internet
  • By domain:
    • Matching a distinct domain: example.com
    • Matching a domain with subdomains: .example.com
    • Matching with a wildcard prefix: *xample.com
    • Matching with a wildcard suffix: example.*
    • Matching domains containing text: *example*
  • By country (based on IP): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • By continent (based on IP): C:US (prefix AF, AN, AS, EU, NA, OC, or SA with C:)
  • By AS number: AS123456
  • By filter list - use the filterlist ID prefixed with L:: L:MAL
  • Match anything: *

Additionally, you may supply a protocol and port using this format: <host> <IP protocol>/<port>.

Protocols and ports may be specified using numbers (6/80) or names (TCP/HTTP).
Port ranges are defined by using a hyphen (TCP/1-1024). Omit the port to match any.
Use a * for matching any protocol. If matching ports with any protocol, protocols without ports will not match.
Rules with protocol and port definitions only match if the protocol and port also match.
Ports are always compared to the destination port, thus, the local listening port for incoming connections.

Examples:

  • 192.168.0.1 TCP/HTTP
  • LAN UDP/50000-55000
  • example.com */HTTPS
  • 1.1.1.1 ICMP

Important: DNS Requests are only matched against domain and filter list rules, all others require an IP address and are checked only with the following IP connection.

Pro Tip: You can use # to add a comment to a rule.

Block Domain Aliases Per App Advanced filter/includeCNAMEs

Block a domain if a resolved CNAME (alias) is blocked by a rule or filter list.

This is used to block the new “unblockable” trackers that use a first-party subdomain CNAME’d (alias’d) to the tracking company.

Default Value: true (boolean)
Block Subdomains of Filter List Entries Per App filter/includeSubdomains

Additionally block all subdomains of entries in selected filter lists.

This makes it easier to block trackers that change their subdomain often in an attempt to avoid being caught by filter lists.

Default Value: true (boolean)
Filter Lists Per App filter/lists

Block connections that match enabled filter lists.

In the Portmaster UI you can easily select lists you want to activate. The filter lists are gathered and merged by us in order to be able to send hourly incremental updates. You can view all lists the Portmaster subscribes to here.

Permanent Verdicts Global Developer Experimental filter/permanentVerdicts

The Portmaster’s system integration intercepts every single packet. Usually the first packet is enough for the Portmaster to set the verdict for a connection - ie. to allow or deny it. Making these verdicts permanent means that the Portmaster will tell the system integration that is does not want to see any more packets of that single connection. This brings a major performance increase.

Do not disable except for debugging purposes.

Default Value: true (boolean)
Block Secure DNS Bypassing Per App filter/preventBypassing

Prevent apps from bypassing Portmaster’s Secure DNS resolver. If disabled, Portmaster might have reduced information to correctly enforce rules and filter lists. Important: Portmaster’s firewall itself cannot be bypassed.

Current Features:

  • Disable Firefox’ internal DNS-over-HTTPs resolver
  • Block direct access to public DNS resolvers

Please note that DNS bypass attempts might be additionally blocked in the System DNS Client App.

This is primarily to prevent software that plays nice from circumventing the Portmaster. While we will do it where it makes sense, this is not geared towards malware that is specifically made for circumenventing protection.

Default Value: true (boolean)
Reject Blocked IPs Per App Developer filter/removeBlockedDNS

Reject blocked IP addresses directly from the DNS response instead of handing them over to the app and blocking a resulting connection. This settings does not affect privacy and only takes effect when the system resolver is not in use.

Should a DNS response contain multiple IP addresses, and some of them would not be allowed to be connected to, the Portmaster will remove these answers in order to make it more likely for a connection to succeed within the permitted parameters.

Default Value: true (boolean)
Enforce Global/Private Split-View Per App Developer filter/removeOutOfScopeDNS

Reject private IP addresses (RFC1918 et al.) from public DNS responses. If the system resolver is in use, the resulting connection will be blocked instead of the DNS request.

DNS Rebinding attacks allow an attacker to circumvent security policies. This feature blocks DNS Rebinding attacks on local systems.

Default Value: true (boolean)
Incoming Rules Per App Stackable Advanced filter/serviceEndpoints

Rules that apply to incoming network connections. Cannot overrule Network Scopes and Connection Types (see above).

If you need to accept incoming connections, try to narrow down from where you need to accept connections. A great way to start is to only accept connections from an organization via its AS number (find it here) or to only accept connections from specific countries. While potentially dangerous, you can allow any incoming connection by adding + * to the Incoming Rules.

Default Value: (string array)
Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match:

  • By address: 192.168.0.1
  • By network: 192.168.0.0/24
  • By network scope: Localhost, LAN or Internet
  • By domain:
    • Matching a distinct domain: example.com
    • Matching a domain with subdomains: .example.com
    • Matching with a wildcard prefix: *xample.com
    • Matching with a wildcard suffix: example.*
    • Matching domains containing text: *example*
  • By country (based on IP): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • By continent (based on IP): C:US (prefix AF, AN, AS, EU, NA, OC, or SA with C:)
  • By AS number: AS123456
  • By filter list - use the filterlist ID prefixed with L:: L:MAL
  • Match anything: *

Additionally, you may supply a protocol and port using this format: <host> <IP protocol>/<port>.

Protocols and ports may be specified using numbers (6/80) or names (TCP/HTTP).
Port ranges are defined by using a hyphen (TCP/1-1024). Omit the port to match any.
Use a * for matching any protocol. If matching ports with any protocol, protocols without ports will not match.
Rules with protocol and port definitions only match if the protocol and port also match.
Ports are always compared to the destination port, thus, the local listening port for incoming connections.

Examples:

  • 192.168.0.1 TCP/HTTP
  • LAN UDP/50000-55000
  • example.com */HTTPS
  • 1.1.1.1 ICMP

Important: DNS Requests are only matched against domain and filter list rules, all others require an IP address and are checked only with the following IP connection.

Pro Tip: You can use # to add a comment to a rule.

Enable Network History Global history/enable

Save connections in a database (on disk) in order to view and search them later. Changes might take a couple minutes to apply to all connections.

In order to reduce noise optimize performance, internal and device-only (localhost) connections are not saved to history.

Default Value: false (boolean)
Keep Network History Global history/keep

Specify how many days the network history data should be kept. Please keep in mind that more available history data makes reports (coming soon) a lot more useful.

Older data is deleted in intervals and cleared from the database continually. If in a hurry, shutdown or restart Portmaster to clear deleted entries immediately.

Set to 0 days to keep network history forever. Depending on your device, this might affect performance.

Default Value: 30 Days (integer)
DNS Exit Node Rules Global Requires Restart Advanced spn/dnsExitPolicy

Customize which countries should or should not be used as DNS Exit Nodes.

By default, the Portmaster will exit DNS requests directly at your Home Node in order to keep them fast and close to your location. This is important, as DNS resolution often takes your approximate location into account when deciding which optimized DNS records are returned to you. As the Portmaster encrypts your DNS requests by default, you effectively gain a two-hop security level for your DNS requests in order to protect your privacy.

This setting mainly exists for when you need to simulate your presence in another location on a lower level too. This might be necessary to defeat more intelligent geo-blocking systems.

Default Value: (string array)
Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match the following attributes of SPN Nodes:

  • Country (based on IPs): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • AS number: AS123456
  • Address: 192.168.0.1
  • Network: 192.168.0.1/24
  • Anything: *

SPN Module Global spn/enable

Start the Safing Privacy Network module. If turned off, the SPN is fully disabled on this device.

Default Value: false (boolean)
Exit Node Rules Per App Stackable spn/exitHubPolicy

Customize which countries should or should not be used for your Exit Nodes. Exit Nodes are used to exit the SPN and establish a connection to your destination.

By default, the Portmaster tries to choose the node closest to the destination as the Exit Node. This reduces your exposure to the open Internet. Exit Nodes are chosen for every destination separately.

Default Value: (string array)
Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match the following attributes of SPN Nodes:

  • Country (based on IPs): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • AS number: AS123456
  • Address: 192.168.0.1
  • Network: 192.168.0.1/24
  • Anything: *

Home Node Rules Global Requires Restart Advanced spn/homePolicy

Customize which countries should or should not be used for your Home Node. The Home Node is your entry into the SPN. You connect directly to it and all your connections are routed through it.

By default, the Portmaster tries to choose the nearest node as your Home Node in order to reduce your exposure to the open Internet.

Reconnect to the SPN in order to apply new rules.

Default Value: (string array)
Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match the following attributes of SPN Nodes:

  • Country (based on IPs): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • AS number: AS123456
  • Address: 192.168.0.1
  • Network: 192.168.0.1/24
  • Anything: *

Select SPN Routing Algorithm Per App spn/routingAlgorithm

Select the routing algorithm for your connections through the SPN. Configure your preferred balance between speed and privacy. Portmaster may automatically upgrade the routing algorithm if necessary to protect your privacy.

Possible Values:
  • Plain VPN Mode ( home ) : Always connect to the destination directly from the Home Hub. Only provides very basic privacy, as the Home Hub both knows where you are coming from and where you are connecting to.
  • Speed Focused ( single-hop ) : Optimize routes with a minimum of one hop. Provides good speeds. This will often use the Home Hub to connect to destinations near you, but will use more hops to far away destinations for better privacy over long distances.
  • Default: Balanced ( double-hop ) : Optimize routes with a minimum of two hops. Provides good privacy as well as good speeds. No single node knows where you are coming from *and* where you are connecting to.
  • Privacy Focused ( triple-hop ) : Optimize routes with a minimum of three hops. Provides very good privacy. No single node knows where you are coming from *and* where you are connecting to - with an additional hop just to be sure.
Special Access Code Global spn/specialAccessCode

Special Access Codes grant access to the SPN for testing or evaluation purposes.

Default Value: none (string)
Transit Node Rules Global Stackable Advanced spn/transitHubPolicy

Customize which countries should or should not be used as Transit Nodes. Transit Nodes are used to transit the SPN from your Home to your Exit Node.

Default Value: (string array)
Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match the following attributes of SPN Nodes:

  • Country (based on IPs): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • AS number: AS123456
  • Address: 192.168.0.1
  • Network: 192.168.0.1/24
  • Anything: *

Trust Nodes Global Advanced spn/trustNodes

Specify which community nodes to additionally trust. These nodes may then also be used as a Home Node, as well as an Exit Node for unencrypted connections.

Default Value: (string array)
Formatting Help:

You can specify nodes by their ID or their verified operator.

SPN Rules Per App Stackable spn/usagePolicy

Customize which websites should or should not be routed through the SPN. Only active if “Use SPN” is enabled.

Default Value: (string array)
Formatting Help:

Rules are checked from top to bottom, stopping after the first match. They can match:

  • By address: 192.168.0.1
  • By network: 192.168.0.0/24
  • By network scope: Localhost, LAN or Internet
  • By domain:
    • Matching a distinct domain: example.com
    • Matching a domain with subdomains: .example.com
    • Matching with a wildcard prefix: *xample.com
    • Matching with a wildcard suffix: example.*
    • Matching domains containing text: *example*
  • By country (based on IP): US (two-letter country codes according to ISO 3166-1 alpha-2)
  • By continent (based on IP): C:US (prefix AF, AN, AS, EU, NA, OC, or SA with C:)
  • By AS number: AS123456
  • By filter list - use the filterlist ID prefixed with L:: L:MAL
  • Match anything: *

Additionally, you may supply a protocol and port using this format: <host> <IP protocol>/<port>.

Protocols and ports may be specified using numbers (6/80) or names (TCP/HTTP).
Port ranges are defined by using a hyphen (TCP/1-1024). Omit the port to match any.
Use a * for matching any protocol. If matching ports with any protocol, protocols without ports will not match.
Rules with protocol and port definitions only match if the protocol and port also match.
Ports are always compared to the destination port, thus, the local listening port for incoming connections.

Examples:

  • 192.168.0.1 TCP/HTTP
  • LAN UDP/50000-55000
  • example.com */HTTPS
  • 1.1.1.1 ICMP

Important: DNS Requests are only matched against domain and filter list rules, all others require an IP address and are checked only with the following IP connection.

Pro Tip: You can use # to add a comment to a rule.

Use SPN Per App spn/use

Protect network traffic with the Safing Privacy Network. If the SPN is not available or the connection is interrupted, network traffic will be blocked.

Default Value: true (boolean)
Use Community Nodes Global Requires Restart spn/useCommunityNodes

Use nodes (servers) not operated by Safing themselves. The use of community nodes is recommended as it diversifies the ownership of the nodes you use for your connections and further strengthens your privacy. Plain connections (eg. http, smtp, …) will never exit via community nodes, making this setting safe to use.

Default Value: true (boolean)