{"id":27142540,"url":"https://github.com/digimortl/iptables-tree","last_synced_at":"2025-10-13T15:11:30.985Z","repository":{"id":165837239,"uuid":"451494377","full_name":"digimortl/iptables-tree","owner":"digimortl","description":"Convert iptables-save format to pstree-like view","archived":false,"fork":false,"pushed_at":"2023-12-02T13:51:24.000Z","size":10,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-04T13:19:24.663Z","etag":null,"topics":["iptables","iptables-save","k8s","k8s-cluster","kubernetes","kubernetes-cluster","network","networking","python","python3","tree"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/digimortl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-01-24T14:21:22.000Z","updated_at":"2025-03-25T05:22:48.000Z","dependencies_parsed_at":"2023-12-02T14:46:41.807Z","dependency_job_id":null,"html_url":"https://github.com/digimortl/iptables-tree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/digimortl/iptables-tree","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digimortl%2Fiptables-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digimortl%2Fiptables-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digimortl%2Fiptables-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digimortl%2Fiptables-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/digimortl","download_url":"https://codeload.github.com/digimortl/iptables-tree/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/digimortl%2Fiptables-tree/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015904,"owners_count":26085777,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["iptables","iptables-save","k8s","k8s-cluster","kubernetes","kubernetes-cluster","network","networking","python","python3","tree"],"created_at":"2025-04-08T07:52:10.361Z","updated_at":"2025-10-13T15:11:30.970Z","avatar_url":"https://github.com/digimortl.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"### Convert iptables-save format to pstree-like view\n\niptables-tree is used to convert the output of iptables-save into an easily readable \nrules tree to STDOUT. Use I/O-redirection provided by your shell to write to a file.\n\n#### Example:\n```\n% ssh core@worker-node-0 sudo iptables-save -t nat | python3 ./iptables-tree.py                \n*nat\n:PREROUTING ACCEPT [22:1340]\n:INPUT ACCEPT [5:320]\n:OUTPUT ACCEPT [469:28396]\n:POSTROUTING ACCEPT [486:29416]\n-A PREROUTING\n   └─-j KUBE-SERVICES\n        ├─-d 10.254.0.1/32 -p tcp  -m tcp --dport 443 -j KUBE-SVC-NPX46M4PTMTKRN6Y\n        │                                                ├─! -s 10.100.0.0/16 -d 10.254.0.1/32 -p tcp  -m tcp --dport 443 -j KUBE-MARK-MASQ\n        │                                                │                                                                   └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                ├─ -m statistic --mode random --probability 0.33333333349 -j KUBE-SEP-KSYZFRVBAHO3UYKY\n        │                                                │                                                            ├─-s 192.168.1.80/32  -j KUBE-MARK-MASQ\n        │                                                │                                                            │                        └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                │                                                            └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        │                                                ├─ -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-4NXZOMPO3OIGIHOH\n        │                                                │                                                            ├─-s 192.168.2.18/32  -j KUBE-MARK-MASQ\n        │                                                │                                                            │                        └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                │                                                            └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        │                                                └─-j KUBE-SEP-53CZXCCEBWWNYZ7X\n        │                                                     ├─-s 192.168.3.82/32  -j KUBE-MARK-MASQ\n        │                                                     │                        └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                     └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.124.194/32 -p tcp  -m tcp --dport 12345 -j KUBE-SVC-GYUT6LJFX34TXRZB\n        │                                                      ├─! -s 10.100.0.0/16 -d 10.254.124.194/32 -p tcp  -m tcp --dport 12345 -j KUBE-MARK-MASQ\n        │                                                      │                                                                         └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                      └─-j KUBE-SEP-KANST5L7MCNDJ4PP\n        │                                                           ├─-s 10.100.0.2/32  -j KUBE-MARK-MASQ\n        │                                                           │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                           └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.216.143/32 -p tcp  -m tcp --dport 443 -j KUBE-SVC-LUWOVUBMMENYS4C5\n        │                                                    ├─! -s 10.100.0.0/16 -d 10.254.216.143/32 -p tcp  -m tcp --dport 443 -j KUBE-MARK-MASQ\n        │                                                    │                                                                       └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                    └─-j KUBE-SEP-UDZ4WRQJYCIV757T\n        │                                                         ├─-s 10.100.5.2/32  -j KUBE-MARK-MASQ\n        │                                                         │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                         └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.0.10/32 -p tcp  -m tcp --dport 53 -j KUBE-SVC-ERIFXISQEP7F7OF4\n        │                                                ├─! -s 10.100.0.0/16 -d 10.254.0.10/32 -p tcp  -m tcp --dport 53 -j KUBE-MARK-MASQ\n        │                                                │                                                                   └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                ├─ -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-4ABE7GWA3NUIFMZ3\n        │                                                │                                                            ├─-s 10.100.2.2/32  -j KUBE-MARK-MASQ\n        │                                                │                                                            │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                │                                                            └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        │                                                └─-j KUBE-SEP-BVZHU4XEX7KSKFVE\n        │                                                     ├─-s 10.100.5.5/32  -j KUBE-MARK-MASQ\n        │                                                     │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                     └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.0.10/32 -p tcp  -m tcp --dport 9153 -j KUBE-SVC-JD5MR3NA4I4DYORP\n        │                                                  ├─! -s 10.100.0.0/16 -d 10.254.0.10/32 -p tcp  -m tcp --dport 9153 -j KUBE-MARK-MASQ\n        │                                                  │                                                                     └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                  ├─ -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-JCKA4RWVBEU37RQG\n        │                                                  │                                                            ├─-s 10.100.2.2/32  -j KUBE-MARK-MASQ\n        │                                                  │                                                            │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                  │                                                            └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        │                                                  └─-j KUBE-SEP-ACORHR333NBTL5O6\n        │                                                       ├─-s 10.100.5.5/32  -j KUBE-MARK-MASQ\n        │                                                       │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                       └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.0.10/32 -p udp  -m udp --dport 53 -j KUBE-SVC-TCOU7JCQXEZGVUNU\n        │                                                ├─! -s 10.100.0.0/16 -d 10.254.0.10/32 -p udp  -m udp --dport 53 -j KUBE-MARK-MASQ\n        │                                                │                                                                   └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                ├─ -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-KVG3FTMRLVAZEEDA\n        │                                                │                                                            ├─-s 10.100.2.2/32  -j KUBE-MARK-MASQ\n        │                                                │                                                            │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                │                                                            └─-p udp  -m udp -j DNAT [unsupported revision]\n        │                                                └─-j KUBE-SEP-5ULIPHUUNKIYVF34\n        │                                                     ├─-s 10.100.5.5/32  -j KUBE-MARK-MASQ\n        │                                                     │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                     └─-p udp  -m udp -j DNAT [unsupported revision]\n        ├─-d 10.254.36.60/32 -p tcp  -m tcp --dport 443 -j KUBE-SVC-4HQ2X6RJ753IMQ2F\n        │                                                  ├─! -s 10.100.0.0/16 -d 10.254.36.60/32 -p tcp  -m tcp --dport 443 -j KUBE-MARK-MASQ\n        │                                                  │                                                                     └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                  └─-j KUBE-SEP-XNZKJJUVRF4YFPCQ\n        │                                                       ├─-s 10.100.4.4/32  -j KUBE-MARK-MASQ\n        │                                                       │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                       └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.161.159/32 -p tcp  -m tcp --dport 8000 -j KUBE-SVC-4GCQP7GTYLI53KTV\n        │                                                     ├─! -s 10.100.0.0/16 -d 10.254.161.159/32 -p tcp  -m tcp --dport 8000 -j KUBE-MARK-MASQ\n        │                                                     │                                                                        └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                     └─-j KUBE-SEP-IVT2Y2NK23SUXR6O\n        │                                                          ├─-s 10.100.4.3/32  -j KUBE-MARK-MASQ\n        │                                                          │                      └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                          └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        ├─-d 10.254.53.246/32 -p tcp  -m tcp --dport 80 -j KUBE-SVC-OVTWZ4GROBJZO4C5\n        │                                                  ├─! -s 10.100.0.0/16 -d 10.254.53.246/32 -p tcp  -m tcp --dport 80 -j KUBE-MARK-MASQ\n        │                                                  │                                                                     └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                  └─-j KUBE-SEP-UKGAPEWCTNNMKZAR\n        │                                                       ├─-s 10.100.3.16/32  -j KUBE-MARK-MASQ\n        │                                                       │                       └─-j MARK --set-xmark 0x4000/0x4000\n        │                                                       └─-p tcp  -m tcp -j DNAT [unsupported revision]\n        └─ -m addrtype --dst-type LOCAL -j KUBE-NODEPORTS\n                                           └─-p tcp  -m tcp --dport 31509 -j KUBE-EXT-OVTWZ4GROBJZO4C5\n                                                                             ├─-j KUBE-MARK-MASQ\n                                                                             │    └─-j MARK --set-xmark 0x4000/0x4000\n                                                                             └─-j KUBE-SVC-OVTWZ4GROBJZO4C5\n                                                                                  ├─! -s 10.100.0.0/16 -d 10.254.53.246/32 -p tcp  -m tcp --dport 80 -j KUBE-MARK-MASQ\n                                                                                  │                                                                     └─-j MARK --set-xmark 0x4000/0x4000\n                                                                                  └─-j KUBE-SEP-UKGAPEWCTNNMKZAR\n                                                                                       ├─-s 10.100.3.16/32  -j KUBE-MARK-MASQ\n                                                                                       │                       └─-j MARK --set-xmark 0x4000/0x4000\n                                                                                       └─-p tcp  -m tcp -j DNAT [unsupported revision]\n...\n```\n\nIf STDOUT default encoding is not UTF-8, try to set it manually with PYTHONIOENCODING envvar.\n```\n$ iptables-save -t filter | PYTHONIOENCODING=utf-8 ./iptables-tree\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigimortl%2Fiptables-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdigimortl%2Fiptables-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdigimortl%2Fiptables-tree/lists"}