For english readme: README.en.md
Demo URL: https://iplist.opencck.org
ΠΠ°Π½Π½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ±ΠΎΡΠ° ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² (IPv4 ΠΈ IPv6), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ
CIDR Π·ΠΎΠ½ Π΄Π»Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
ΠΡΠΎ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠΉ PHP Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ AMPHP ΠΈ Linux-ΡΡΠΈΠ»ΠΈΡ whois ΠΈ ipcalc.
Π‘Π΅ΡΠ²ΠΈΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΏΠΈΡΠΊΠΎΠ² Π·ΠΎΠ½ ip Π°Π΄ΡΠ΅ΡΠΎΠ² ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (IPv4 Π°Π΄ΡΠ΅ΡΠΎΠ², IPv6 Π°Π΄ΡΠ΅ΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ CIDRv4 ΠΈ CIDRv6 Π·ΠΎΠ½) Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠΎΡΠΌΠ°ΡΠ°Ρ
, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ, JSON, ΡΠΎΡΠΌΠ°ΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π² "Address List" Π½Π° ΡΠΎΡΡΠ΅ΡΠ°Ρ
Mikrotik (RouterOS), Keenetic KVAS\BAT, SwitchyOmega, Amnezia ΠΈ Π΄Ρ.
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- Π‘Π±ΠΎΡ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ IP-Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ CIDR Π·ΠΎΠ½ Π΄Π»Ρ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΡΠ²ΠΎΠ΄Π° Π΄Π°Π½Π½ΡΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΎΡΠΌΠ°ΡΠ°Ρ (JSON, lst, Mikrotik, OpenWRT, ipset ΠΈ Ρ.Π΄).
- ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ (ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠΌΠΏΠΎΡΡΠ° Π½Π°ΡΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· Π²Π½Π΅ΡΠ½ΠΈΡ URL).
- ΠΠ΅Π³ΠΊΠΎΠ΅ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Docker Compose.
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ΅ΡΠ΅Π· JSON ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ
- PHP 8.1+ (amphp, revolt)
- whois, ipcalc (linux)
| ΡΠΎΡΠΌΠ°Ρ | ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| json | JSON ΡΠΎΡΠΌΠ°Ρ |
| text | Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ |
| comma | Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΏΡΡΡΠΌΠΈ |
| geoip | v2rayGeoIPDat |
| mikrotik | MikroTik Script |
| switchy | SwitchyOmega RuleList |
| nfset | Dnsmasq nfset |
| ipset | Dnsmasq ipset |
| clashx | ClashX |
| kvas | Keenetic KVAS |
| bat | Keenetic Routes .bat |
| amnezia | Amnezia filter list |
| pac | Proxy Auto-Configuration file |
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Ρ
ΡΠ°Π½ΡΡΡΡ Π² config/<Π³ΡΡΠΏΠΏΠ°>/<ΠΏΠΎΡΡΠ°Π»>.json. ΠΠ°ΠΆΠ΄ΡΠΉ JSON ΡΠ°ΠΉΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ°Π»Π°, Π·Π°Π΄Π°Π²Π°Ρ Π΄ΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΈ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
ΠΏΠΎ IP ΠΈ CIDR.
{
"domains": [
"youtube.com",
"www.youtube.com",
"m.youtube.com",
"www.m.youtube.com",
"googlevideo.com",
"www.googlevideo.com",
"ytimg.com",
"i.ytimg.com"
],
"dns": ["127.0.0.11:53", "77.88.8.88:53", "8.8.8.8:53"],
"timeout": 43200,
"ip4": [],
"ip6": [],
"cidr4": [],
"cidr6": [],
"external": {
"domains": ["https://raw.githubusercontent.com/nickspaargaren/no-google/master/categories/youtubeparsed"],
"ip4": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/ipv4_list.txt"],
"ip6": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/ipv6_list.txt"],
"cidr4": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/cidr4.txt"],
"cidr6": ["https://raw.githubusercontent.com/touhidurrr/iplist-youtube/main/cidr6.txt"]
}
}| ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ | ΡΠΈΠΏ | ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
| domains | string[] | Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΏΠΎΡΡΠ°Π»Π° |
| dns | string[] | Π‘ΠΏΠΈΡΠΎΠΊ DNS ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ip-Π°Π΄ΡΠ΅ΡΠΎΠ². ΠΠΎ ΠΌΠΈΠΌΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ google dns, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΡΠΈΠΉΡΠΊΠΈΠ΅ DNS, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π―Π½Π΄Π΅ΠΊΡ |
| timeout | int | ΠΡΠ΅ΠΌΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ip-Π°Π΄ΡΠ΅ΡΠΎΠ² Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² (ΡΠ΅ΠΊΡΠ½Π΄Ρ) |
| ip4 | string[] | ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ipv4 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| ip6 | string[] | ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ipv6 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| cidr4 | string[] | ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ CIDRv4 Π·ΠΎΠ½ ipv4 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| cidr6 | string[] | ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ CIDRv6 Π·ΠΎΠ½ ipv6 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| external | object | Π‘ΠΏΠΈΡΠΊΠΈ URL Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² |
| ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ | ΡΠΈΠΏ | ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
| domains | string[] | Π‘ΠΏΠΈΡΠΎΠΊ URL Π΄Π»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΏΠΎΡΡΠ°Π»Π° |
| ip4 | string[] | Π‘ΠΏΠΈΡΠΎΠΊ URL Π΄Π»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ipv4 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| ip6 | string[] | Π‘ΠΏΠΈΡΠΎΠΊ URL Π΄Π»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ipv6 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| cidr4 | string[] | Π‘ΠΏΠΈΡΠΎΠΊ URL Π΄Π»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ CIDRv4 Π·ΠΎΠ½ ipv4 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| cidr6 | string[] | Π‘ΠΏΠΈΡΠΎΠΊ URL Π΄Π»Ρ ΠΏΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ CIDRv6 Π·ΠΎΠ½ ipv6 Π°Π΄ΡΠ΅ΡΠΎΠ² |
git clone https://github.com/rekryt/iplist.git
cd iplist
cp .env.example .envΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ .env ΡΠ°ΠΉΠ»
| ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ | Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ | ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|---|
| COMPOSE_PROJECT_NAME | iplist | ΠΠΌΡ compose ΠΏΡΠΎΠ΅ΠΊΡΠ° |
| STORAGE_SAVE_INTERVAL | 120 | ΠΠ΅ΡΠΈΠΎΠ΄ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΠΊΠ΅ΡΠ° whois (ΡΠ΅ΠΊΡΠ½Π΄Ρ) |
| SYS_DNS_RESOLVE_IP4 | true | ΠΠΎΠ»ΡΡΠ°ΡΡ ipv4 Π°Π΄ΡΠ΅ΡΠ° |
| SYS_DNS_RESOLVE_IP6 | true | ΠΠΎΠ»ΡΡΠ°ΡΡ ipv6 Π°Π΄ΡΠ΅ΡΠ° |
| SYS_DNS_RESOLVE_CHUNK_SIZE | 10 | Π Π°Π·ΠΌΠ΅Ρ ΡΠ°Π½ΠΊΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ dns Π·Π°ΠΏΠΈΡΠ΅ΠΉ |
| SYS_DNS_RESOLVE_DELAY | 100 | ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ dns Π·Π°ΠΏΠΈΡΠ΅ΠΉ (ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄Ρ) |
| SYS_IP6_SUBNET_PREFIX_CAP | 64 | ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°Ρ Π΄Π»ΠΈΠ½Π° ΠΏΡΠ΅ΡΠΈΠΊΡΠ° IPv6-ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ |
| SYS_MEMORY_LIMIT | 1024M | ΠΡΠ΅Π΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»-Π²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ. |
| SYS_TIMEZONE | Europe/Moscow | Π‘ΠΏΠΈΡΠΎΠΊ URL Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ CIDRv4 Π·ΠΎΠ½ ipv4 Π°Π΄ΡΠ΅ΡΠΎΠ² |
| HTTP_HOST | 0.0.0.0 | IP ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ) |
| HTTP_PORT | 8080 | Π‘Π΅ΡΠ΅Π²ΠΎΠΉ ΠΏΠΎΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ° (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ 8080) |
| DEBUG | true | ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ |
docker compose up -dΠΡΠΊΡΡΡΡ ΡΠ΅ΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ http, ΠΏΠΎΡΡ 8080
http://0.0.0.0:8080/
http://0.0.0.0:8080/?format=json
http://0.0.0.0:8080/?format=json&site=youtube.com&data=domains
http://0.0.0.0:8080/?format=text&site=youtube.com&data=ip4
http://0.0.0.0:8080/?format=mikrotik&data=cidr4
http://0.0.0.0:8080/?format=mikrotik&site=youtube.com&data=cidr4
http://0.0.0.0:8080/?format=comma&data=cidr4
| get ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΏΡΠΈΠΌΠ΅Ρ |
|---|---|---|
| format | Π€ΠΎΡΠΌΠ°Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ | ?format=text |
| data | ΠΠ°Π½Π½ΡΠ΅ Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ | ?data=cidr4 |
| site | ΠΠΎΡΡΠ°Π» Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ | ?site=youtube.com |
| group | ΠΡΡΠΏΠΏΠ° Π΄Π»Ρ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ | ?group=youtube |
| exclude[ip4] | ΠΡΠΊΠ»ΡΡΠΈΡΡ ipv4 Π°Π΄ΡΠ΅ΡΠ° | ?exclude[ip4]=1.1.1.1&exclude[ip4]=2.2.2.2 |
| exclude[ip6] | ΠΡΠΊΠ»ΡΡΠΈΡΡ ipv6 Π°Π΄ΡΠ΅ΡΠ° | ?exclude[ip6]=2a06:98c1:3121::a |
| exclude[cidr4] | ΠΡΠΊΠ»ΡΡΠΈΡΡ CIDRv4 Π·ΠΎΠ½Ρ | ?exclude[cidr4]=1.1.1.0/24 |
| exclude[cidr6] | ΠΡΠΊΠ»ΡΡΠΈΡΡ CIDRv6 Π·ΠΎΠ½Ρ | ?exclude[cidr6]=2a06:98c1::/32 |
| exclude[group] | ΠΡΠΊΠ»ΡΡΠΈΡΡ Π³ΡΡΠΏΠΏΡ | ?exclude[group]=youtube&exclude[group]=casino |
| exclude[site] | ΠΡΠΊΠ»ΡΡΠΈΡΡ ΠΏΠΎΡΡΠ°Π»Ρ | ?exclude[site]=youtube.com |
| exclude[domain] | ΠΡΠΊΠ»ΡΡΠΈΡΡ Π΄ΠΎΠΌΠ΅Π½Ρ | ?exclude[domain]=youtube.com |
| wildcard | ΠΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ wildcard Π΄ΠΎΠΌΠ΅Π½Ρ | ?wildcard=1 |
| filesave | Π‘ΠΎΡ ΡΠ°Π½ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°ΠΉΠ» | ?filesave=1 |
| template | Π¨Π°Π±Π»ΠΎΠ½ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ | ?format=custom&template=ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ |
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ SSL ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠ° Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π΄ΠΎΠΌΠ΅Π½ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π½Π° Π²Π°Ρ ΡΠ΅ΡΠ²Π΅Ρ. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° - ΠΊΠ°ΠΊ Π²Π°ΡΠΈΠ°Π½Ρ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΡΠΉ Π΄ΠΎΠΌΠ΅Π½ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° https://noip.com. ΠΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° ΠΏΡΠΈΠ΄ΡΡΡΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ ΡΠ°Π· Π² ΠΌΠ΅ΡΡΡ.
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ΅Π²Π΅ΡΡ-ΠΏΡΠΎΠΊΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ NginxProxyManager
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡ docker
docker network create web- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ Π΅Ρ Π² docker-compose.yml ΡΠ°ΠΉΠ»Π°Ρ ΡΠ΅Π²Π΅ΡΡ-ΠΏΡΠΎΠΊΡΠΈ ΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
services:
...
app:
networks:
- web
networks:
web:
external: true
name: web- Π£Π΄Π°Π»ΠΈΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ports ΠΈΠ· docker-compose.yml (ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°)
- ΠΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ:
docker compose up -d- ΠΠΌΡ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
docker compose ps - Π ΠΏΠ°Π½Π΅Π»ΠΈ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π²Π΅ΡΡ-ΠΏΡΠΎΠΊΡΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ Π΄ΠΎΠΌΠ΅Π½ Π½Π° Π½Π΅Π³ΠΎ
iplist-app-1ΠΏΠΎΡΡ8080ΠΈ Π²ΠΊΠ»ΡΡΠΈΡΠ΅ SSL - NginxProxyManager Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ΄Π»Π΅Π²Π°ΡΡ ssl ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ
apt-get install -y git golang
git clone https://github.com/v2fly/geoip.git
cd geoip
go build .
cd ../apt-get install -y ntpsec whois dnsutils ipcalc
cp .env.example .env
composer install
php index.phpΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π²ΡΠ³ΡΡΠ·ΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ get ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ: format=custom ΠΈ template=ΡΠ°Π±Π»ΠΎΠ½, Π³Π΄Π΅ ΡΠ°Π±Π»ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ ΠΊΠ°ΠΊ:
| ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ | ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
| {group} | ΠΠΌΡ Π³ΡΡΠΏΠΏΡ |
| {site} | ΠΠΌΡ ΡΠ°ΠΉΡΠ° |
| {data} | ΠΡΠ±ΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ |
| {shortmask} | ΠΠ°ΡΠΊΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ (ΠΊΠΎΡΠΎΡΠΊΠ°Ρ) (Π΄Π»Ρ ip ΠΈ cidr) |
| {mask} | ΠΠ°ΡΠΊΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ (ΠΏΠΎΠ»Π½Π°Ρ) (Π΄Π»Ρ ip ΠΈ cidr) |
ΠΡΠΈΠΌΠ΅ΡΡ:
Wildcard Π΄ΠΎΠΌΠ΅Π½Ρ twitter Π΄Π»Ρ dns static add ΠΏΠΎΠ΄ mikrotik Π΄Π»Ρ forward-to=localhost:
https://iplist.opencck.org/?format=custom&data=domains&site=x.com&wildcard=1&template=%2Fip%20dns%20static%20add%20name%3D%7Bdata%7D%20type%3DFWD%20address-list%3D%7Bgroup%7D_%7Bsite%7D%20match-subdomain%3Dyes%20forward-to%3Dlocalhost
Wildcard Π΄ΠΎΠΌΠ΅Π½Ρ Π² ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅:
https://iplist.opencck.org/?format=custom&data=domains&wildcard=1&template=data%3A%20%7Bdata%7D%20group%3A%20%7Bgroup%7D%20site%3A%20%7Bsite%7D
ΠΠ°ΡΠΊΠ° ΠΏΠΎΠ΄ΡΠ΅ΡΠΈ Π² ΠΊΠ°ΡΡΠΎΠΌΠ½ΠΎΠΌ ΡΠΎΡΠΌΠ°ΡΠ΅:
https://iplist.opencck.org/?format=custom&data=cidr4&template=data%3A%20%7Bdata%7D%20group%3A%20%7Bgroup%7D%20site%3A%20%7Bsite%7D%20shortmask%3A%20%7Bshortmask%7D%20mask%3A%20%7Bmask%7D
Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ iplist.dat ΡΠ°ΠΉΠ» Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³:
https://iplist.opencck.org/?format=geoip&data=cidr4
ΠΡΠΈΠΌΠ΅Ρ routing ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
{
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "vpn",
"ip": ["ext:iplist.dat"]
},
...
]
},
...
}ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅Π³ΠΎΠ² (ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ°Π»Π° ΠΈΠ»ΠΈ Π³ΡΡΠΏΠΏΡ) Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ:
{
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "vpn",
"ip": ["ext:iplist.dat:youtube.com"]
},
{
"type": "field",
"outboundTag": "vpn",
"ip": ["ext:iplist.dat:anime"]
},
...
]
},
...
}- Π Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡΠΊΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠΎΡΡΠ΅ΡΠ° (ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· winbox) ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π» System -> Scripts
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ "Add new" Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
iplist_v4_cidr - Π ΠΏΠΎΠ»Π΅
SourceΠ²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅urlΠ°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» Π²modeΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ):
/tool fetch url="https://iplist.opencck.org/?format=mikrotik&data=cidr4&append=timeout%3D1d" mode=https dst-path=iplist_v4_cidr.rsc
:delay 5s
:log info "Downloaded iplist_v4_cidr.rsc succesfully";
/import file-name=iplist_v4_cidr.rsc
:delay 10s
:log info "New iplist_v4_cidr added successfully";
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡ
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠ°Π·Π΄Π΅Π» ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° System -> Scheduler
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ
iplist_v4_cidr - Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅
Start timeΡΠΊΠ°ΠΆΠΈΡΠ΅ Π²ΡΠ΅ΠΌΡ Π΄Π»Ρ ΡΡΠ°ΡΡΠ° Π·Π°Π΄Π°Π½ΠΈΡ (ΠΏΡΠΈΠΌΠ΅Ρ:00:05:00). ΠΠ»ΡIntervalΠ²Π²Π΅Π΄ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅1d 00:00:00. - Π ΠΏΠΎΠ»Π΅
On eventΠ²Π²Π΅Π΄ΠΈΡΠ΅ ΠΈΠΌΡ ΡΠΊΡΠΈΠΏΡΠ°
iplist_v4_cidr
- ΠΡΠΊΡΠΎΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ System -> Scripts ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ Π΅Π³ΠΎ Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ
Run Script - Π ΡΠ°Π·Π΄Π΅Π»Π΅ Logs Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
New iplist_v4_cidr added successfully - Π Π² ΡΠ°Π·Π΄Π΅Π»Π΅ IP -> Firewall -> Address Lists Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΏΠΈΡΠΎΠΊΠΈ (Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ
youtube)
Π§Π΅ΡΠ΅Π· GET-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ template Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠ° mikrotik ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΠΏΠΈΡΠΊΠ°:
https://iplist.opencck.org/?format=mikrotik&data=cidr4&append=timeout%3D1d&template={group}_{data}
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅: {group}_{data}
ΠΠΊΠ»ΡΡΠΈΡΠ΅ "Routing mode" Π² "Only proxy mainland China":
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠΎΡΡΠ΅ΡΡ ΠΏΠΎ ssh ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
# ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²ΡΠ²Π°Π΅ΠΌ ΡΡΠ°ΡΡΠΉ ΡΠΊΡΠΈΠΏΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
mv /etc/homeproxy/scripts/update_resources.sh /etc/homeproxy/scripts/update_resources.sh.origin
# Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠΊΡΠΈΠΏΡ
wget https://iplist.opencck.org/scripts/homeproxy/update_resources.sh -O /etc/homeproxy/scripts/update_resources.sh
# Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΡΠ°Π²Π° Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
chmod +x /etc/homeproxy/scripts/update_resources.sh
# ΠΎΡΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ cron ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° homeproxy
sed -i '/sed -i/s/^/\t#/; /\/etc\/init.d\/cron restart >/s/^/\t#/' /etc/init.d/homeproxy
# Π²Ρ Π·Π°Ρ
ΠΎΡΡΠΈΠ»ΠΈ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅? - ΡΠΎΠ³Π΄Π° ΡΠ°ΡΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΠΎΠΌΠ΅Π½ΡΠΉΡΠ΅ "example.com" Π½Π° Π²Π°Ρ Π΄ΠΎΠΌΠ΅Π½
# sed -i 's/iplist.opencck.org/example.com/g' /etc/homeproxy/scripts/update_resources.shΠΡΠΊΡΠΎΠΉΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ OpenWRT ΡΠ°Π·Π΄Π΅Π» "System" - "SΡheduled Tasks". ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΡΠΎΠΊΡ, ΡΡΠΎΠ±Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠΊΡΠΈΠΏΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ Π² 00:05:00 ΠΈ 12:05:00
5 0,12 * * * /etc/homeproxy/scripts/update_crond.sh
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ ΡΠΎΡΠΌΠ°ΡΠ΅ Switchy RuleList
The MIT License (MIT). Please see LICENSE for more information.