Man for excluding docker networks from tun interface
| README.md | ||
| set-nft-for-throne.sh | ||
Пример скрипта для включения правил без создания дубликатов set-nft-for-throne.sh
1. Запускаем VPN клиент
2. Проверяем таблицы nftables
sudo nft list tables
На выходе будет чтото такое table <family> <name>
Если выдает одну, то все норм, запоминаем семью и название: <table family> <table name>
Если выдает несколько, то делаем
sudo nft list table <family> <name>
И смотрим в какой из них встречается tun интерфес твоего VPN клиента
3. Добавляем нужное в исключения
1. Исключаем весь Docker-трафик по интерфейсам (самое надёжное)
sudo nft insert rule <table family> <table name> prerouting index 0 iifname "docker0" accept
sudo nft insert rule <table family> <table name> prerouting index 0 iifname "br-*" accept
sudo nft insert rule <table family> <table name> output index 0 oifname "docker0" accept
sudo nft insert rule <table family> <table name> output index 0 oifname "br-*" accept
2. Дополнительно — по подсети Docker
sudo nft insert rule <table family> <table name> prerouting index 0 ip saddr 172.XX.0.0/16 accept
sudo nft insert rule <table family> <table name> output index 0 ip daddr 172.XX.0.0/16 accept
3. Если нужно исключить только один контейнер (по его IP)
sudo nft insert rule <table family> <table name> prerouting index 0 ip saddr 172.18.0.XX accept
Для того чтобы узнать ip контейнера
docker inspect curl | grep 'IPAddress'