Closed LeonMskRu closed 4 months ago
поменял на %scanner1% -n 4 -g 20 -o c:\tor\bridges.conf --torrc %scanner1% -6 -n 4 -g 20 -o c:\tor\bridges_ipv6.conf --torrc %scanner1% -4 -n 4 -g 40 -o c:\github_bridges_ipv6_HSDir.conf.txt
тот же самый мусов в выходных файлах
141.105.130.89:9100 B1F998ADD3C0849A448D9619B9083F6D8A5D0179 93DFB58C3 [2a0f:ca80:1337::9969:dc10]:8443 8453A2131200B0973A5FE8F60DA3859C0F486B30
Bridge 95.141.32.124:33333 E1B9119C61181B93ABDDE7BD731B54A3B797EDF4 UseBridges 1 CD9CF27302AB49F UseBridges 1
Bridge [2603:c021:1:e6ee:7956:dfc6:e4f4:dcb]:9001 05CC8826920ED353BEEE5E59FDB5697D4F5B77E7 UseBridges 1 66::2e08:6313]:443 41D4F82AB54AE5C5FB8D3CD24B4FC84350EFEF03 UseBridges 1
Интересное поведение, мне нужно время на проверку
Взял последнюю опубликованную версию tor-relay-scanner-go, взял представленные json.
Разворачиваем локальный веб-сервер:
go install github.com/patrickhener/goshs@latest
Запускаем в директории с подготовленными файлами:
cd src/github.com/LeonMskRu/arti_windows/.tmp/tor-relay-scanner-go
goshs
Запускаем сканер
./main -n 4 -g 20 --torrc --url http://127.0.0.1:8000/outRU.json
n=4 число одновременно проверяемых релеев g=20 ожидаемое число результата torrc Output reachable relays in torrc format url Preferred alternative URL for onionoo relay list
Таким образом мы запускаем программу в 4 потока, ждем результат из 20 рабочих релеев, формат вывода для браузера и берем результат из подготовленного json. В json присутствуют только 24 релея. Из которых ожидаем увидеть 20. У меня он "виснет" на 6, и больше не находит доступных релеев. В результате завершает работу по таймауту. Запрашиваем очень много релеев из малого числа доступных.
./main -6 -n 4 -g 20 --torrc --url http://127.0.0.1:8000/out6.json
Результат:
Bridge [2a12:bec0:20b:a9bb::1]:443 2856770C398C8C145BCBF74BE9CDA68509621848
Bridge [2a05:b0c7:607b::1]:443 F766B43B2F76E6A5032F6A38B9D53122638D037C
Bridge [2a06:8184:1:39::a]:443 BB65A6D47F77733966314ADDEB3CA56BA423F148
Bridge [2a0f:ca80:1337::9969:dc10]:8444 153460C0FE0945B0269999554E85534A2F709D8D
Bridge [2a05:b0c7:6397::1]:443 09C375184DE999CE1B4AC034190F5A9F916479F9
Bridge [2001:bc8:1640:777:dc00:ff:fe12:d075]:443 56344DEE34D3343090D00AD88CE2D58B50712C81
Bridge [2a06:8184:1:63::a]:443 C43A429A1464FFB31D62E610968558C4A08FF0C4
Bridge [2001:4b98:dc0:43:f816:3eff:fe51:df77]:9001 A49493CB471F64EBD5EA981A956B1718EAC8B286
Bridge [2a04:52c0:116:fa5::1]:9001 E0DC7A0D89E4F99B97AFF28818191F2390FCBB35
Bridge [2a05:b0c7:64e4::1]:443 1F348BF999D4F7BE263270F5A24F69FCCEC1399C
Bridge [2a06:8184:1:55::a]:443 05A8B5A480220BB819021AA558A5782A3EB25539
Bridge [2a05:b0c7:65f9::1]:443 8CE439B1850C9F09C068F761A4DAC8E81B82A328
Bridge [2a01:4f9:c010:121f::9001]:9001 3431940DFB4643A3EE3F4465BFF2655CA9BDEB96
Bridge [2a00:63c1:13:229:fa53:5051:8c88:ff1e]:443 629301C063FC047171C8A0F1520A9D7CF60308EC
Bridge [2001:41d0:a:1c2c::123:1]:443 2A5746BFF32A363CD3AAD05196C0F10E7143BBB6
Bridge [2a02:1210:4a01:cf32:dead:babe:beef:cafe]:9001 DA84D41783BBB6058CB9DF8C90697E8D5EA647C3
Bridge [2a09:7c44:0:be::1]:443 2A4AA1339A8E1EB302F35E382C52251F252D20B2
Bridge [2a05:b0c7:6388::1]:443 D1D4115C77FD8C5F8BBD1CFA8F938F0143AE8E5B
Bridge [2a0c:e303:0:4de7::1:1]:9001 BEF36E0B4AC34FA111FD620A128676448B841437
Bridge [2a05:541:123:f::1]:9001 87558F54FCCEE5BD8EF6978438287EEA6915411A
UseBridges 1
Аналогичный вывод при выводе в файл.
./main -6 -n 4 -g 20 --torrc --url http://127.0.0.1:8000/outH.json
Результат:
Bridge [2001:14ba:ab01:2ba9::1]:443 5C4DE421BF92DC8455D544217364A08402DD696C
Bridge [2a09:8340:55d0:4542::1]:9001 85CDBC7ADB15D5B64FB4C5989CD510F6869F9206
Bridge [2603:c027:8701:3d9f:228d:8ce5:bc20:5b67]:443 34F20EB029199ACF56E2A084B972D6795BFC865F
Bridge [2001:470:1f14:220::2]:8443 092E5E97AC7FE3FAA02B408EC529DAF90AD23E0B
Bridge [2001:41d0:304:200::96df]:9001 827988742048E7FAA1AE88F3089EE8DCC1139D91
Bridge [2001:41d0:8:b8d9::1]:9001 E2FC37D1A3B81EA783B40FBB324DBFCE594711AD
Bridge [2a0f:ca80:1337::acea:135a]:8443 BE443DE37BF731829D16D5EB5A16E3CE3A0B8569
Bridge [2001:41d0:302:2200::220b]:9001 DAABB04E4E3336B336B2523D5448DA8B0A43BD7A
Bridge [2a0f:ca80:1337::9969:dc10]:443 C4A67D45ABB1806E13C1F4B4C83FE4B22E2B8A51
Bridge [2001:bc8:1210:e4a:dc00:ff:fe30:edd3]:443 36B2F61D90F59C69AA05228B6DD3645575B6FFBC
Bridge [2a01:4f9:c011:b2fd::1]:443 A99BDA7894C6FBFF88A5DD03175D6B897155595F
Bridge [2a09:be40:28fe:0:4c8d:fcff:fe52:e27d]:9001 80DF58BB8F1540A71E3DA1590019BAB9D9D00F49
Bridge [2a13:9f40:0:7::a]:443 218E99F0ABF856F263D4BC4A458665865EEE6B7C
Bridge [2a04:3541:8000:1000:78d3:3cff:fef7:144]:443 632470165AB6880191D6BDFFAA0544F8955685E6
Bridge [2a09:be40:28fe:0:943b:16ff:feb3:302]:9001 A9C6FEA058C3E53ECDA61E8FDAD0F940718DE8CE
Bridge [2001:4610:a:136::28d]:443 A09DAAAD16E3F77C2ED1A012BD8A18FFCBFEB422
Bridge [2a02:a452:9bf7:1:82ee:73ff:fe67:f076]:9001 FC83153EA2FF3807029506A4B30A27D953DD98D4
Bridge [2a05:b0c7:6e62::1]:443 E205783E3A0F13913435EFD75C64DE6D1B50CF8E
Bridge [2a01:4f9:3070:1c9d::]:9676 95CEC8854A6FB514142A7317CFB12B0AD794223C
Bridge [2001:bc8:3680:bb01::10]:443 BD4C647508162F59CB44E4DFC1C2B2B8A9387CCA
UseBridges 1
Таким образом пока не наблюдаю проблемы.
Из первого запуска можно попробовать формировать вывод результата из тех релеев, что удалось обнаружить. То есть если запросили 20 из 24, но нашли только 6, то при выходе по таймауту предоставлять информацию по найденым. В принципе логично, при этом еще делать пометку о том, что нашли меньше, чем запрашивали.
Второй и третий запуски производят корректный результат, без мешанины. Но я запускаю сканер на macOS, и нет возможности проверить поведение на windows. Есть вероятность проблемы специфичной для данной операционной системы. Но подтвердить не могу, к сожалению.
да. что то с перезаписью если удалить предварительно старый blabla.CONF то новый создается без мусора
сам клиент делал "как положено"
C:\GitHub\tor-relay-scanner-go\cmd>go get C:\GitHub\tor-relay-scanner-go\cmd>go build -ldflags "-s -w"
M:_Microsoft_MSYS2\usr\bin\ldd.exe cmd.exe ntdll.dll => /c/windows/SYSTEM32/ntdll.dll (0x7ff8f76b0000) KERNEL32.DLL => /c/windows/System32/KERNEL32.DLL (0x7ff8f75b0000) KERNELBASE.dll => /c/windows/System32/KERNELBASE.dll (0x7ff8f5200000) apphelp.dll => /c/windows/SYSTEM32/apphelp.dll (0x7ff8f2410000)
C:\GitHub\tor-relay-scanner-go\cmd>file cmd.exe cmd.exe: PE32+ executable (console) x86-64, for MS Windows, 8 sections
файл 1.txt
Bridge [2600:3c01::f03c:91ff:fe96:a8d7]:9001 7DF739DF5858ED7AA650B822E0D68AB03658414B UseBridges 1 ges 1
запустил 2а раза было ОК на 3ий вылез мусор
C:\GitHub\tor-relay-scanner-go\cmd>cmd.exe -6 -n 1 -g 1 --torrc -o 1.txt Bridge [2a02:4840:2:239:2bd5:9e10:de1d:35e4]:26954 9CE775FFB31F5F2706AEBA6B44085A5B59438145 UseBridges 1
C:\GitHub\tor-relay-scanner-go\cmd>cmd.exe -6 -n 1 -g 1 --torrc -o 1.txt Bridge [2a03:4000:2b:100a:84de:15ff:fee1:df4b]:443 366F597A7F95581904DC05EB811240C958C17F3D UseBridges 1
C:\GitHub\tor-relay-scanner-go\cmd>cmd.exe -6 -n 1 -g 1 --torrc -o 1.txt Bridge [2600:3c01::f03c:91ff:fe96:a8d7]:9001 7DF739DF5858ED7AA650B822E0D68AB03658414B UseBridges 1
Подытожу, то что сейчас стоит поправить:
запустил 2а раза было ОК на 3ий вылез мусор
Это в случае, когда мы не удаляем файл конфигурации явно? Если проводить удаление перед каждым запуском мусор остается?
если удалять файл (не пробовал его "очищать" через echo/аналоги) мусора нет
проверял пару раз всего но почему то 1ый и 2ой запуск нормально. на 3+ появляется мусор
Bridge [2a0f:ca80:1337::9969:dc10]:443 C4A67D45ABB1806E13C1F4B4C83FE4B22E2B8A51 UseBridges 1 eBridges 1
очищать файл тоже можно. это 6ой запуск
C:\GitHub\tor-relay-scanner-go\cmd>cmd.exe -6 -n 1 -g 1 --torrc -o 3.txt & echo ":" & cat 3.txt & echo. > 3.txt Bridge [2001:1b10:1000:8101:0:242:ac11:3]:9001 30F019AE4888CEF1F515C71E53543F5A7F164C77 UseBridges 1 ":" Bridge [2001:1b10:1000:8101:0:242:ac11:3]:9001 30F019AE4888CEF1F515C71E53543F5A7F164C77 UseBridges 1
Можешь проверить поведение в ветке?
https://github.com/juev/tor-relay-scanner-go/pull/14
У себя протестировал, создается каждый раз новый файл, и по достижению дедлайна выводит результат.
когда мало нод в списке
c:_DL\tor-relay-scanner-go.exe --timeout 500ms -n 4 -g 20 -o c:\tor\bridges.conf --torrc --url http://127.0.0.1/TOR/outRU.json Testing 10% [> ] (2/20) The program was running for more than the specified time: 60.00s Bridge [2a00:1838:37:52::da4e]:443 AC7BDB39F81C4B364EA50B12B51C77C7A131EA7C Bridge 185.173.93.47:9001 A2D63C32574A5376EC1E6CBAE0ABDB1538782541 UseBridges 1
c:_DL\tor-relay-scanner-go.exe --timeout 500ms -n 4 -g 20 -o c:\tor\bridges.conf --torrc --url http://127.0.0.1/TOR/outRU.json Testing 30% [===> ] (6/20) The program was running for more than the specified time: 60.00s Bridge [2a12:5940:48a5::2]:9001 6C2CA581A7B186E17BECC8DC0846E592200D8B67 skip Bridge 185.173.93.47:9001 A2D63C32574A5376EC1E6CBAE0ABDB1538782541 UseBridges 1
перезапись файлов ОК. раз 5 запускал == мусора не замечено
заметил https://github.com/juev/tor-relay-scanner-go/issues/1 оно при дубликатах оставляет IPv4 или IPv6 ?
p.s. огромное спасибо.
оно при дубликатах оставляет IPv4 или IPv6 ?
Сейчас выбирается случайный тип адреса, если не указано иное при запуске. Через параметры можно указывать, какие типы адресов требуется обрабатывать.
понятно. буду иметь ввиду.
Изменения в новой версии
set scanner1=c:_DL\tor-relay-scanner-go.exe
curl -o list_tor2 -x 192.168.1.111:3128 "https://onionoo.torproject.org/details?type=relay&running=true&fields=fingerprint,or_addresses,country,flags,version"
это чужой скрипт. просто парсит по параментрам полученные json в https://github.com/LeonMskRu/arti_windows/tree/main/.tmp/tor-relay-scanner-go если поменять сканер на Валдика то вроде нормально работает
%python3% filter_relays2.py -c ru -f Stable -F Exit list_tor2 > outRU.json %python3% filter_relays2.py -c nl,fr,fi,lu,se,gb,ch,ro,no,cz,ru,bg,dk,it,is,es,at,hu,gr,be,ie,hr,pt -v 0.4.8.12 -f Guard,Fast,Stable -F Exit,HSDir list_tor2 > out6.json %python3% filter_relays2.py -c nl,fr,fi,lu,se,gb,ch,ro,no,cz,ru,bg,dk,it,is,es,at,hu,gr,be,ie,hr,pt -v 0.4.8.12 -f Guard,Fast,Stable,HSDir -F Exit list_tor2 > outH.json
%scanner1% -n 4 -g 20 -o c:\tor\bridges.conf --torrc --url http://127.0.0.1/TOR/outRU.json
виснет как с указанным --timeout 500ms так и без таймаута там вроде какие то ноды без части данных Testing 55% [=======> ] (11/20) The program was running for more than the specified time: 60.00s
%scanner1% -6 -n 4 -g 20 -o c:\tor\bridges_ipv6.conf --torrc --url http://127.0.0.1/TOR/out6.json
мешанина какая то Bridge [2a00:8780:14:2000::3]:9001 E039FEF5CC8F0AF731AAC7B0FC1DBA63B33372DA UseBridges 1 00::3]:9001 E039FEF5CC8F0AF731AAC7B0FC1DBA63B33372DA UseBridges 1 DB8AF770BD40C7C8883EFFF4CAF3 Bridge [2a06:8184:1:39::a]:443 BB65A6D47F77733966314ADDEB3CA56BA423F148 UseBridges 1
%scanner1% -6 -n 4 -g 40 -o c:\github_bridges_ipv6_HSDir.conf.txt --url http://127.0.0.1/TOR/outH.json
тоже странное [2a01:4f9:3081:414c::2]:9001 A67891856C914E998E82D97A4CCC17381AC4E4FE ]:443 BD4C647508162F59CB44E4DFC1C2B2B8A9387CCA A02B408EC529DAF90AD23E0B