Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Наноборда в TOR'e #2

Open
username1565 opened this Issue Feb 2, 2019 · 0 comments

Comments

Projects
None yet
1 participant
@username1565
Copy link
Owner

username1565 commented Feb 2, 2019

Как захостить нборду на onion-домене, в TOR'e - читайте ниже:

1. Ставим нборду

Качаем архив nanoboard-restore. Распаковываем... Запускаем nanodb.exe и открываем наноборду - в браузере, на порту 7346: http://127.0.0.1:7346/

2. Cоздаём папку "upload"

Нажимаем кнопку "Create PNG", чтобы создалась папка upload и контейнер - внутри неё...

3. Ставим HFS c темплейтом

Качаем последнюю версию HFS c официального сайта или тут: hfs_v2.3.zip,
и отдельно - filelist.zip (чтобы список файлов был не текстом а ссылками).
Кладём filelist.tpl рядом с hfs.exe. Для последней версии HFS 2.3m
filelist.tpl нужно переименовать в hfs.filelist.tpl (он продублирован в этом архиве).
Запускаем hfs.exe на локальном IP:PORT
и добавляем, путём выбора или перетаскивания в него - папку upload,
появившуюся в nanoboard-restore\upload.
Разрешаем Uploading в неё, для ANYONE.

4. Юзаем upload как тред с контейнерами

Идём с браузера вот сюда:
http://HFS_IP:HFS_PORT/upload/?search=.png&rev=1&tpl=list
Здесь, список ссылок на контейнеры, сгенерированные по кнопке "Create PNG",
нахдящиеся в папке upload.
Только png, сортировка реверсная, по дате (от нового к старому).
Без темплейта - пути выдаются в ответе - ASCII-текстом, а не ссылками.
Наноборода же - парсит ссылки в ответе сервера.
Эту страницу, со ссылками - можно локально использовать, и как тред контейнеров, указав её - в настройках наноборды.
Попробуйте добавить http://HFS_IP:HFS_PORT/upload/?search=.png&rev=1&tpl=list
в Settings, и прогрузить картинки Collect PNG, и вы увидите успешную загрузку.
Но указание порта в клиенте 3.0 и пути - забагованы, особенно если в ответе относительный путь к картинке.
Так, например, если в settings указать http://HFS_IP:HFS_PORT/upload/?search=.png и попытаться прогрузить картинки - будет ошибка пути.
Обсуждение проблемы и решение её - в этой теме: nanoboard#3

5. Обновляем нбороду

Поэтому, сделав предварительный бекап следующих файлов:
\nanoboard-restore\nanodb.exe
\nanoboard-restore\nanodb.exe-source\PngTransport\Aggregator.cs
\nanoboard-restore\nanodb.exe-source\Server\DbApiHandler.cs
\nanoboard-restore\scripts\img2base64.js
\nanoboard-restore\scripts\nanoclient.js
\nanoboard-restore\scripts\checkver.js
\nanoboard-restore\pages\params.html
\nanoboard-restore\pages\version.txt
простым переименованием их, с добавлением какого-ниудь префикса "old_"...
Накатываем сверхуй, вот этот вот zip: https://github.com/username1565/nanoboard/releases
Про изменения - можете почитать здесь: nanoboard#6, См: nanoboard#4, и в коммитах - здесь: https://github.com/username1565/nanoboard/network
После залива, можно прописать в настройках борды - треды с любым портом и путём:
в частности - этот: http://HFS_IP:HFS_PORT/upload/?search=.png
сгенерировав новый контейнер Collect PNG,
а затем - локально прогрузить пикчи с HFS, нанобордой
- по нажатию кнопки "Collect PNG".
Теперь, относительный путь работает и контейнеры загружаются.

6. Как грузить картинки в папку на HFS?

А вот чтобы загрузить туда, на HFS, пикчи...
Можно использовать стандартный шаблон HFS и грузить пикчи, по одному файлу,
без каптчи, по ссылкам:
http://HFS_IP:HFS_PORT/upload/,
http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/
а также: http://HFS_IP:HFS_PORT/upload/?search=.png
и http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/?search=.png
Там есть кнопка Upload для uploadable folders.
_____________________________________________________________________________________________________
Но можно также использовать и страницу загрузки с каптчёй.
Для этого - распаковываете в папку upload вот это: HFS_UPLOADING+fractals.zip
index.html и две папки js и UPLOADED_FILES - копируете их прямо в папку upload.
Теперь, по ссылкам http://HFS_IP:HFS_PORT/upload/?search=.png&rev=1&tpl=list
и http://HFS_IP:HFS_PORT/upload/?search=.png
вместо списка ссылок - открывается страница Uploading'a.
А при переходе по ссылке по ссылке
http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/
или http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/?search=.png
срабатывает заглушка с редиректом: /upload/UPLOADED_FILES/index.html,
перенаправляющая в http://HFS_IP:HFS_PORT/upload/index.html
Список всех PNG-файлов на сервере, включая сгенерированные контейнеры,
в папке upload - доступен по ссылке:
http://HFS_IP:HFS_PORT/?search=.png&rev=1&tpl=list
а Uploading осуществляется в папку
http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/
Контейнеры, загруженные только наноанонами,
и не сгенерированные - они доступны вот здесь:
http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/?search=.png&rev=1&tpl=list
но только, если в папке upload/UPLOADED_FILES/ файл index.html - переименован.
Поэтому, после залива файлов - меняем в настройках самой наноборды,
в Settings - тред на http://HFS_IP:HFS_PORT/?search=.png&rev=1&tpl=list
Дальше, Restart, Reload Page (F5), Main, "Collect PNG" - и загрузка пикч пошла...
Это мелкие тестовые фракталы из папки архива upload/UPLOADED_FILES
После тестов загрузки контейнеров - можете почистить папку UPLOADED_FILES
от мелких тестовых фракталов, контейнерами не являющихся.
index.html - не удалять и не переименовывать,
иначе, по ссылке http://HFS_IP:HFS_PORT/upload/UPLOADED_FILES/
будет доступна загрузка файлов - без каптчи, через стандартный HFS-шаблон,
по нажатию кнопки Upload, и вам могут тупо забить сервер - всякой ерундой.
Заметьте, это всё, пока что, работает - только локально!

7. Как расшарить HFS с нанобордой?

Теперь, чтобы расшарить всё это в сети, для других наноанонов, есть несколько вариантов:

  • Если у вас статичный внешний IP.
    Делаете port-forwarding для порта HFS под номером PORT на этих ваших
    роутерах, затем идёте на https://whatismyipaddress.com/ -
    чтоб узнать Ваш внешний IP (EXTERNALIP),
    и после port-forwarding'а - проверяете порт HFS,
    каким-нибудь port-checker'ом, вроде этого: https://ping.eu/port-chk/
    Если статус "open" - вы можете открыть HFS по ссылке
    http://EXTERNALIP:HFS_PORT/upload/upload/UPLOADED_FILES/?search=.png&rev=1&tpl=list
    даже если он слушает порт, будучи заbindенным на localhost, или же на адрес в локальной сети.
    В случае, если у вас статичный IP адрес, вы можете, на свой страх и риск,
    уже опубликовать ваш IP:PORT, в виде вышеуказанной ссылки -
    для координации наноанонов.

  • Если у вас динамический внешний IP.
    Также, как в случае со статическим внешним IP - делаете PORT-forwarding
    для порта HFS, и проверяете port-checker'ом порт для EXTERNALIP.
    Однако EXTERNALIP - динамический, и меняется провайдером при
    переподключении к сети...
    Поэтому, регистрируете домен на бесплатном DDNS-сервисе: http://www.duckdns.org/
    и при смене IP - обновляете этот IP, по ссылке: https://www.duckdns.org/update/YOUR_DOMAIN_NAME/YOUR_API_KEY/
    где YOUR_DOMAIN_NAME и YOUR_API_KEY - ваши параметры duckDNS.
    При этом, port checker должен собщить вам статус open для порта HFS, на домене YOUR_DOMAIN_NAME
    А ссылка на "тред-контейнеров" будет выглядить вот так: http://YOUR_DOMAIN_NAME:HFS_PORT/upload/?search=.png&rev=1&tpl=list
    Однако, для параноиков, скажу, что трассировка домена - может выдать IP (правда - не всегда).

  • Ну и... Третий вариант: HFS - на onion-домене, в TOR!
    Качаете и ставите TOR-Browser.
    Внутри папки с исполняемым файлом firefox.exe (клик правой кнопкой мыши -> Свойства -> расположение файла)
    есть папка \TorBrowser\Data\Tor
    Находим в ней файл torrc (без расширения)
    открываем его как текст, и пишем туда две строчки:
    HiddenServiceDir TorBrowser\Data\Tor\nanoboard
    HiddenServicePort ONION_PORT HFS_IP:HFS_PORT
    где ONION_PORT - порт onion-домена (чтобы onion работал без порта - укажите 80),
    HFS_IP - IP на который заbindен HFS, HFS_PORT - порт, который слушает HFS.
    После добавления этих двух строчек в torrc, сохраняете этот файл и перезапускаете TOR-Browser (если запущен).
    Появляется папка nanoboard в папке, где файл torrc.
    Заходите туда, открываете hostname как текст - там лежит ONION_DOMAIN. Ключи не трогаете, пока они там, в той папке - onion-домен ваш и он работает.
    Теперь, открываете в запущенном TOR-Browser - http://ONION_DOMAIN:HFS_PORT/ , и вуаля - вот он ваш HFS-сервер!
    "Тред контейнеров", теперь доступен тут: http://ONION_DOMAIN:HFS_PORT/upload/?search=.png&rev=1&tpl=list
    И будет доступен для любого другого наноанона, через TOR,
    пока у вас запущен Tor-Browser.
    Соединения можно отслеживать - в самом HFS, но в отличие от предыдущих двух случаев,
    по IPспамера и дудосера - уже не забанить. Соединения все с TOR'a идут - с localhost.

После этого всего - нборда захостена на HFS и доступна онлайн.
И вы можете запостить ссылку - в эти треды координации.


P.S.:

Если у кого есть желание захостить всю наноборду, то можете
wget'ом или aria2 вытащить из сети - все PNG-кантейнеры,
из файла downloaded.txt - пока их не удалили (там около 2 ГБ),
и скопировать их в расшаренную в TOR'e папку upload.
Здесь есть инфа про выгрузку пикч: nanoboard#4 (comment)
Можно было бы добавить нечто вроде кнопки "В очередь",
как на Karasiq-nanoboard, чтобы ужимать нанопосты нборды - в других PNG,
компактно, но это надо кодить.
И да, нанопосты с контейнеров карасика почему-то не отображаются в клиенте 3.0.


Что касается скрипта загрузки файлов на сервер HFS.
Он маленький, client-side и работает локально, но грузит по одному файлу.
Можно было бы к нему прикрутить client-side мультизагрузку с прогрессом,
для множества файлов, как вот здесь: http://jsfiddle.net/Misiu/6y2Cm/28/
а также можно прицепить - copypaste-area,
ну, чтобы туда можно было пастить пикчи
в виде dataURL, Base64, как тут: https://codepen.io/anon/pen/YdJjEg
вставлять printscreen, делать copy and paste files,
делать drag and drop картинок,
как тут: http://jsfiddle.net/MWe8U/ (перетащите сюда картинку),
и так далее...

Так, например, вот эта copypaste-area, в виде contenteditable div (HTML5):
https://codepen.io/anon/pen/QYGxyY
в консоли браузера - выдаёт файлоподобный Blob,
который уже можно загружать в папку upload, на HFS-сервер - как файл,
синхронным XHR-запросом (async=false) - при-append'ив этот Blob - к FormData.
Можно было бы также, совместить всё это с вот такими превью-шками при мультизагрузке:
https://codepen.io/anon/pen/JwemBb (просто выберите здесь пару пикч).
И даже добавить интерактивную и кликабельную drop-zone: http://jsfiddle.net/se0bcvth/
Но это всё надо бы объединить в один полноценный скрипт, который работал бы client-side,
без всяких сторонних JQuery, Bootstrap.css и прочего...
Ну, или... Выгрузить все эти скрипты целиком, и включить их - в один полноценный архив...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.