Skip to content

Instantly share code, notes, and snippets.

@nort3x
Last active March 16, 2026 03:16
Show Gist options
  • Select an option

  • Save nort3x/dde6757cb630afe052331e04ca1ab79e to your computer and use it in GitHub Desktop.

Select an option

Save nort3x/dde6757cb630afe052331e04ca1ab79e to your computer and use it in GitHub Desktop.
prevent Jetbrains products (Intellij, Webstorm, Rider, Goland ...) checking for validity of License - don't use ja-netfilter

Introduction

I personally experienced slowdowns and issues while using the ja-netfilter agent.

I decided to investigate how JetBrains checks license validity, because despite explicitly configuring JetBrains to work offline, it still attempts to validate licenses.

Here are my findings:
Two domains are responsible for revoking invalid licenses:

  • www.jetbrains.com
  • account.jetbrains.com

You can block these domains either on your router or locally using the following iptables commands:

sudo iptables -I OUTPUT -p udp --dport 53 -m string --hex-string "|03|www|09|jetbrains|03|com|" --algo bm -j DROP
sudo iptables -I OUTPUT -p udp --dport 53 -m string --hex-string "|07|account|09|jetbrains|03|com|" --algo bm -j DROP

sudo ip6tables -I OUTPUT -p udp --dport 53 -m string --hex-string "|03|www|09|jetbrains|03|com|" --algo bm -j DROP
sudo ip6tables -I OUTPUT -p udp --dport 53 -m string --hex-string "|07|account|09|jetbrains|03|com|" --algo bm -j DROP

Warning

iptables will reset on reboot unless you make it persistent

to make iptable persistent on ubuntu (after running above iptable commands):

sudo apt install iptables-persistent
sudo iptables-save | sudo tee /etc/iptables/rules.v4 > /dev/null
sudo ip6tables-save | sudo tee /etc/iptables/rules.v6 > /dev/null

Why This Approach?

Typically, to prevent a domain from being resolved, you would use /etc/hosts and route traffic to 127.0.0.1. However, JetBrains began rejecting 127.0.0.1 as a valid license server and started sending UDP requests to well-known DNS providers, bypassing system DNS configurations. While an application is free to implement its own DNS resolution and ignore OS-level settings, it is equally valid to block such attempts. I therefore chose to drop any UDP packets containing these domains, effectively stopping their validation efforts.

The UDP requests were sent to the following providers:

  • 8.8.8.8
  • 1.1.1.1
  • 1.0.0.1
  • 8.8.4.4
  • 9.9.9.9

I was not expecting this behavior, so I decided to completely block IntelliJ from resolving these domains on my system, regardless of the source.

License Key

For now, you can use any license key, even if it has been suspendedsince it cannot be validated with the configuration above.

Disclaimer

Exploring and understanding copyright protection mechanisms can be an interesting technical exercise. This information is provided for educational purposes only.

Due to sanctions, I am unable to purchase JetBrains products in my country, so I do not feel I am misusing their software. If circumstances change and I am able to do so, I would definitely support their excellent products. Please align your actions with your own moral principles and justify them accordingly.

@Mark194
Copy link

Mark194 commented Mar 4, 2026

@nort3x , The license still resets, even if you block domains. I suppose there are checks inside the IDE.

IDE starts warning you about a week in advance that your license will soon expire. If the expiration date is reached, it will reset the license.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment