Расширенные возможности

Сохранение вкладок

Закрытие вкладок OnionShare, размещенных на вашем хостинге, уничтожает их, предотвращая повторное использование. Постоянно размещенные веб-сайты доступны по одному и тому же адресу, даже если компьютер, с которого они доступны, перезагружен.

Сделайте любую вкладку постоянной, установив флажок “Всегда открывать эту вкладку при запуске OnionShare“ перед запуском сервера.

_images/advanced-save-tabs.png

При открытии OnionShare ваши сохраненные вкладки из предыдущего сеанса начнут открываться. Затем каждую службу можно запустить вручную, она будет доступна по одному и тому же адресу OnionShare и защищена одним и тем же закрытым ключом.

Если вы сохраните вкладку, копия секретного ключа луковой службы будет сохранена на вашем компьютере.

Отключить использование секретного ключа

По умолчанию все сервисы OnionShare защищены секретным ключом, который на сленге Tor называется «клиентская аутентификация».

Браузер Tor попросит вас ввести закрытый ключ при загрузке службы OnionShare. Если вы хотите разрешить публично использовать ваш сервис, лучше вообще отключить закрытый ключ.

Чтобы отключить закрытый ключ для любой вкладки, перед запуском сервера установите флажок “Это общедоступная служба OnionShare (отключает закрытый ключ)“. Тогда сервер будет публичным и для его загрузки в Tor Browser не понадобится приватный ключ.

Указать заголовок

Когда люди загружают сервисы OnionShare в браузере Tor, они видят заголовок по умолчанию для каждого типа сервиса. Например, заголовок службы чата по умолчанию — “Чат OnionShare“.

Если вы отредактируете настройку “Пользовательский заголовок“ перед запуском сервера, вы можете изменить ее.

Планирование времени

OnionShare поддерживает возможность точного планирования, когда сервис должен запуститься или остановиться. Перед запуском сервера, нажмите на его вкладке кнопку «Показать дополнительные настройки», отметьте нужные пункты: «Запустить onion-сервис в назначенное время», «Остановить onion-сервис в назначенное время», и укажите нужную дату и время для каждого пункта.

Службы, запуск которых запланирован на будущее, отображают таймер обратного отсчета при нажатии кнопки “Начать общий доступ“. Службы, которые планируется остановить в будущем, при запуске отображают таймер обратного отсчета.

Планирование автоматического запуска службы OnionShare можно использовать как выключатель. Это означает, что ваша услуга станет общедоступной в определенный момент в будущем, если вы не сможете предотвратить это. Если с вами ничего не произойдет, вы можете отменить услугу до ее запуска.

_images/advanced-schedule-start-timer.png

Планирование автоматической остановки службы OnionShare ограничивает ее уязвимость. Если вы хотите поделиться секретной информацией или чем-то, что устареет, вы можете сделать это в течение ограниченного времени.

_images/advanced-schedule-stop-timer.png

Интерфейс командной строки

В дополнение к графическому интерфейсу, у OnionShare есть интерфейс командной строки.

Установка версии CLI

Если вы установили пакет Snap, macOS или Windows, у вас уже установлена версия CLI.

В качестве альтернативы можно установить только командную версию OnionShare с использованием pip3:

pip3 install --user onionshare-cli

Для работы консольной версии также необходимо установить пакет tor. Для установки пакета в операционной системе macOS выполните команду: brew install tor

Затем произведите запуск следующим образом:

onionshare-cli --help

Информацию об установке его в различных операционных системах можно найти в файле CLI README в репозитории Git.

Запуск CLI из Snap

Если вы установили OnionShare с помощью пакета Snap, вы можете запустить onionshare.cli для доступа к версии интерфейса командной строки.

Запуск CLI от macOS

Из терминала можно запустить /Applications/OnionShare.app/Contents/MacOS/onionshare-cli -help

Запуск CLI из Windows

В установке Windows доступна исполняемая onionshare-cli.exe.

Использование

Просмотрите документацию по командной строке, запустив onionshare --help:

$ onionshare-cli --help
╭───────────────────────────────────────────╮
│    *            ▄▄█████▄▄            *    │
│               ▄████▀▀▀████▄     *         │
│              ▀▀█▀       ▀██▄              │
│      *      ▄█▄          ▀██▄             │
│           ▄█████▄         ███        -+-  │
│             ███         ▀█████▀           │
│             ▀██▄          ▀█▀             │
│         *    ▀██▄       ▄█▄▄     *        │
│ *             ▀████▄▄▄████▀               │
│                 ▀▀█████▀▀                 │
│             -+-                     *     │
│   ▄▀▄               ▄▀▀ █                 │
│   █ █     ▀         ▀▄  █                 │
│   █ █ █▀▄ █ ▄▀▄ █▀▄  ▀▄ █▀▄ ▄▀▄ █▄▀ ▄█▄   │
│   ▀▄▀ █ █ █ ▀▄▀ █ █ ▄▄▀ █ █ ▀▄█ █   ▀▄▄   │
│                                           │
│                  v2.4.1                   │
│                                           │
│          https://onionshare.org/          │
╰───────────────────────────────────────────╯

usage: onionshare-cli [-h] [--receive] [--website] [--chat] [--local-only] [--connect-timeout SECONDS] [--config FILENAME] [--persistent FILENAME] [--title TITLE] [--public]
                      [--auto-start-timer SECONDS] [--auto-stop-timer SECONDS] [--no-autostop-sharing] [--log-filenames] [--qr] [--data-dir data_dir] [--webhook-url webhook_url] [--disable-text]
                      [--disable-files] [--disable_csp] [--custom_csp custom_csp] [-v]
                      [filename ...]

positional arguments:
  filename                  List of files or folders to share

optional arguments:
  -h, --help                Show this help message and exit
  --receive                 Receive files
  --website                 Publish website
  --chat                    Start chat server
  --local-only              Don't use Tor (only for development)
  --connect-timeout SECONDS
                            Give up connecting to Tor after a given amount of seconds (default: 120)
  --config FILENAME         Filename of custom global settings
  --persistent FILENAME     Filename of persistent session
  --title TITLE             Set a title
  --public                  Don't use a private key
  --auto-start-timer SECONDS
                            Start onion service at scheduled time (N seconds from now)
  --auto-stop-timer SECONDS
                            Stop onion service at scheduled time (N seconds from now)
  --no-autostop-sharing     Share files: Continue sharing after files have been sent (the default is to stop sharing)
  --log-filenames           Log file download activity to stdout
  --qr                      Display a QR code in the terminal for share links
  --data-dir data_dir       Receive files: Save files received to this directory
  --webhook-url webhook_url
                            Receive files: URL to receive webhook notifications
  --disable-text            Receive files: Disable receiving text messages
  --disable-files           Receive files: Disable receiving files
  --disable_csp             Publish website: Disable the default Content Security Policy header (allows your website to use third-party resources)
  --custom_csp custom_csp   Publish website: Set a custom Content Security Policy header
  -v, --verbose             Log OnionShare errors to stdout, and web errors to disk

Запуск CLI в качестве системного файла

Можно автоматически запустить OnionShare из CLI с помощью системного файла единицы.

Вы можете найти это особенно полезно, если вы работаете в режиме «персистент», и хотите начать тот же сервис лука каждый раз, когда ваша машина начинает работать.

Чтобы это сделать, вам нужно подготовить лук Сначала поделитесь конфигурацией json.

Вот основная конфигурация OnionShare. В этом примере он хранится в /доме/пользователье/.config/onionshare/onionshare.json. Возможно, вам придется скорректировать некоторые настройки, но если вы уже установили OnionShare, это, вероятно, выглядит так уже:

{
  "version": "2.6.2",
  "connection_type": "bundled",
  "control_port_address": "127.0.0.1",
  "control_port_port": 9051,
  "socks_address": "127.0.0.1",
  "socks_port": 9050,
  "socket_file_path": "/var/run/tor/control",
  "auth_type": "no_auth",
  "auth_password": "",
  "auto_connect": true,
  "use_autoupdate": true,
  "autoupdate_timestamp": null,
  "bridges_enabled": false,
  "bridges_type": "built-in",
  "bridges_builtin_pt": "obfs4",
  "bridges_moat": "",
  "bridges_custom": "",
  "bridges_builtin": {},
  "persistent_tabs": [
      "my-persistent-onion"
  ],
  "locale": "en",
  "theme": 0
}

Обратите внимание на раздел «peristent_tabs». Теперь мы создадим файл на /home/user/.config/onionshare/persistent/my-persistent-onion.json, который выглядит так:

{
  "onion": {
      "private_key": "UDIaZD8QgoXRP8JnAJ+pnlogQazfZ0wrfWJk5zPBGUBqg6+lozzjUJKTYWxwrxR33pDgJdTFtCUN1CX1FE22UQ==",
      "client_auth_priv_key": "RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ",
      "client_auth_pub_key": "J4YLYAHS25UU3TZTE27H32RN3MCRGLR345U52XS2JNQ76CCHCRSQ"
  },
  "persistent": {
      "mode": "share",
      "enabled": true
  },
  "general": {
      "title": null,
      "public": false,
      "autostart_timer": 0,
      "autostop_timer": 0,
      "service_id": "niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid",
      "qr": false
  },
  "share": {
     "autostop_sharing": true,
     "filenames": [
       "/home/user/my-shared-file.txt"
     ]
  },
  "receive": {
     "data_dir": "/home/user/OnionShare",
     "webhook_url": null,
     "disable_text": false,
     "disable_files": false
  },
  "website": {
     "disable_csp": false,
     "custom_csp": null,
     "filenames": []
  },
  "chat": {}
}

** Не используйте этот приватный ключ, сервис_id или клиент_auth ключи! Они показаны только в качестве примера. Никогда не делись с кем бы то ни было на private_key.**

Самый простой способ создать ионный адрес и приватный ключ - сначала создать вкладку OnionShare в настольном приложении и впервые запустить эту долю. Это позволит сохранить постоянные настройки в папке .config/onionshare/persistent/ с случайным именем. Вы можете отобразить эту вкладку, как только вы создали ее в первый раз. Или, вы можете оставить его там, где он есть, и использовать этот стойкий файл в вашем системном файле единицы ниже.

Теперь можно создать системный единичный файл в /etc/systemd/system/onionshare-cli.service. Обязательно настройте пользователя и группу на свой собственный пользователь/группу, а также измените любые пути к двойному устройству onionshare-cli или пути к вашим конфигурациям и акциям JSON.

Systemd unit file должен выглядеть так:

[Unit]
Description=OnionShare CLI
After=network.target

[Service]
ExecStart=/home/user/.local/bin/onionshare-cli --persistent /home/user/.config/onionshare/persistent/my-persistent-onion.json /home/user/my-shared-file.txt
Restart=on-failure
User=user
Group=user

[Install]
WantedBy=multi-user.target

Обратите внимание, что хотя /home/user/my-shared-file.txt был определен в filenames `` разделе ``my-persistent-onion.json, все же необходимо указать его в качестве аргумента к команде onionshare-cli.

Обязательно запустите ``sudo systemctl daemon-reload `` после создания файла единицы.

Теперь вы можете запустить sudo systemctl start onionshare-cli.service. Если у вас установлен journalctl, вы можете запустить sudo journalctl -f -t onionshare-cli, и вы должны увидеть некоторые результаты своей службы, начиная:

[...]
Feb 09 10:14:09 onionshare onionshare-cli[18852]: [6.5K blob data]
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Compressing files.
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Give this address and private key to the recipient:
Feb 09 10:14:18 onionshare onionshare-cli[18852]: http://niktadkcp6z7rym3r5o3j2hnmis53mno5ughvur357xo7jkjvmqrchid.onion
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Private key: RHJSN4VI3NKGDSIWK45CCWTLYOJHA6DQQRQXUID3FXMAILYXWVUQ
Feb 09 10:14:18 onionshare onionshare-cli[18852]: Press Ctrl+C to stop the server

Если вы не хотите, чтобы ваши пользователи использовали Private Key, установите public, чтобы быть `` True`` в ``general `` настройках файла my-persistent-onion.json.

Горячие клавиши

Настольное приложение OnionShare содержит несколько сочетаний клавиш для удобства и доступности:

Ctrl T - New Tab
Ctrl X - Closes current tab

А на главном экране выбора режима:

Ctrl S - Share mode
Ctrl R - Receive mode
Ctrl W - Website mode
Ctrl C - Chat mode
Ctrl H - Settings tab

Мигрировать ваш лук Поделиться данными с другим компьютером

Вы можете мигрировать данные OnionShare при переходе на другой компьютер. Это особенно верно, если у вас был «постоянный» адрес лука, и вы хотите сохранить его.

OnionShare хранит все такие данные в определенной папке. Скопируйте соответствующую папку для операционной системы ниже, на ваш новый компьютер:

  • Linux: ~/.config/onionshare

  • macOS: ~/Library/Application Support/OnionShare

  • Windows: %APPDATA%\OnionShare

Параметры файла конфигурации

OnionShare сохраняет свои настройки в файле JSON. И CLI, и настольные версии используют этот файл конфигурации. CLI также позволяет указать путь к пользовательскому файлу конфигурации с -конфигурацией.

Ниже приведены параметры файла конфигурации и что они означают. Если ваш файл конфигурации имеет другие параметры, не перечисленные здесь, они могут быть устаревшими от старых версий OnionShare.

Параметр

Тип

Толкование

Версия

строка

Версия OnionShare. Вам никогда не нужно менять эту ценность.

Тип соединения

строка

То, как OnionShare подключается к Tor. Valid опции «bundled», «automatic» (использовать Tor Browser’s Tor connection), «control_port» или «socket_file». По умолчанию: «

control_port_address

строка

IP-адрес порта Tor’s Control, если ``connection_type `` настроен на «control_port». По умолчанию: „127.0.0.1 «

control_port_port

число

Номер порта порта порта Tor’s Control Port, если connection_type настроен на «control_port». По умолчанию: 9051 «

socks_address

строка

IP-адрес прокси-сервера Tor’s SOCKS, если ``connection_type `` настроен на «control_port» или «socket_file». По умолчанию: „127.0.0.1 «

socks_port

число

Номер порта прокси Tor SOCKS, если ``connection_type `` настроен на «control_port» или «socket_file». По умолчанию: „9050 «

socket_file_path

строка

Путь к файлу сокета Tor, если ``connection_type `` настроен на «socket_file». По умолчанию: „/var/run/tor/control «

auth_type

строка

Если доступ к порту управления Tor требует пароля, это может быть установлено как «пароль», иначе «no_auth». По умолчанию: «

auth_password

строка

Если доступ к порту управления Tor требует пароля, и ``auth_type `` установлен для «пароля», укажите здесь пароль. По умолчанию

auto_connect

boolean

Является ли Onion Акции должны автоматически подключаться к Tor при его запуске. По умолчанию: False

use_autoupdate

boolean

Является ли Onion Акции должны автоматически проверять обновления (по Tor). Этот параметр действителен только для установок MacOS или Windows. Правда.

autoupdate_timestamp

число

Последний раз OnionShare проверялся на обновления. По умолчанию: нет

bridges_enabled

boolean

Подключение к Tor с помощью мостов. По умолчанию: False

bridges_type

строка

Когда ``bridges_enbled `` является True, где загружать мосты. Варианты «встроены» (встроены мосты, отправленные с OnionShare и которые могут быть обновлены от Tor), «моут» (запросные мосты от Tor’s Moat API) или «таможенные» (упрощенные пользователями мосты). По умолчанию: «встроенный»

bridges_builtin_pt

строка

Когда ``bridges_type `` настроен на «встроенное», это указывает, какой тип протокола моста использовать. Варианты: «obfs4», «meek-azure» или «snowflake». По умолчанию: «obfs4»

bridges_moat

строка

Когда ``bridges_type `` настроен на «движение», мосты, возвращенные из Moat API Tor, хранятся здесь. «»

bridges_custom

строка

Когда ``bridges_type `` установлен на «таможенный», мосты, указанные пользователем, хранятся здесь. Отделить каждую линию моста в строке с „n. «»

bridges_builtin

dict

Когда ``bridges_type `` настроен на «встроенное», OnionShare получает последние встроенные мосты, рекомендованные Tor, и хранит их здесь. По умолчанию

persistent_tabs

list

Если пользователь определил какие-либо вкладки как «сохраненные» (что означает, что они постоянны каждый раз, когда начинается OnionShare, и их onion-адрес не меняется), им присваивается случайный идентификатор, который перечисляется здесь. Стойкий лук хранится как файл JSON с тем же именем, что и этот идентификатор, в подскладке папки конфигурации OnionShare под названием «персистент». По умолчанию: []

Язык

строка

The locale used in OnionShare. По умолчанию: Нет (что такое же, как «en»). For valid locale codes, see „available_locales“ in https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py

темы

boolean

Тема настольного приложения OnionShare. 0 (автоматически обнаруживайте светлую или темную тему компьютера пользователя), 1 (свет) или 2 (темный).

Параметры файла конфигурации для стойких луков

Как описано выше, каждый «персистентный» лук имеет свои параметры, которые хранятся в собственном файле JSON. Путь к этому файлу может быть указан для инструмента CLI с помощью ``-постоянного ``.

Вот пример стойкой конфигурации JSON:

{
  "onion": {
      "private_key": "0HGxILDDwYhxAB2Zq8mM3Wu3MirBgK7Fw2/tVrTw1XraElH7MWbVn3lzKbcJEapVWz2TFjaoCAVN48hGqraiRg==",
      "client_auth_priv_key": "UT55HDBA5VSRWOUERMGOHEIBKZCMOOGZAFFNI54GDQFZ6CMCUGIQ",
      "client_auth_pub_key": "TPQCMCV26UEDMCWGZCWAWM4FOJSQKZZTVPC5TC3CAGMDWKV255OA"
  },
  "persistent": {
      "mode": "share",
      "enabled": true,
      "autostart_on_launch": false
  },
  "general": {
      "title": null,
      "public": false,
      "autostart_timer": false,
      "autostop_timer": false,
      "service_id": "hvsufvk2anyadehahfqiacy4wbrjt2atpnagk4itlkh4mdfsg6vhd5ad"
  },
  "share": {
      "autostop_sharing": true,
      "filenames": [
          "/home/user/git/onionshare/desktop/org.onionshare.OnionShare.svg"
      ],
      "log_filenames": false
  },
  "receive": {
      "data_dir": "/home/user/OnionShare",
      "webhook_url": null,
      "disable_text": false,
      "disable_files": false
  },
  "website": {
      "disable_csp": false,
      "custom_csp": null,
      "log_filenames": false,
      "filenames": []
  },
  "chat": {}
}

Ниже приведены параметры файла конфигурации для стойкого лука и что они означают для каждого раздела в JSON

лук

Параметр

Тип

Толкование

private_key

строка

Base64 - закодированный частный ключ службы лука

client_auth_priv_key

строка

Частный ключ при использовании подлинности клиента. Отправьте это пользователю.

client_auth_pub_key

строка

Открытый ключ при использовании аутентификации клиента. Используется на стороне OnionShare.

Постоянно

Параметр

Тип

Толкование

режим

строка

Режим, используемый этим постоянным луком. Варианты - «теневой», «прием», «веб-сайт» или «чат».

включен

boolean

Способен ли упорство для этого лука. Когда стойкая опция не проверяется на рабочем столе, весь этот файл JSON удаляется. По умолчанию: True

autostart_on_launch

boolean

Начать ли автоматически этот упорный лук при запуске OnionShare и после подключения Tor. По умолчанию

общие сведения

Параметр

Тип

Толкование

название

строка

Опционный пользовательский заголовок для отображения на сервисе лука. По умолчанию: null (OnionShare) будет показан

публичный

boolean

Можно ли получить доступ к службе лука с помощью или без частного ключа (Client Authentication). Если это так, то не требуется никакого частного ключа.

autostart_timer

boolean

Настраивается ли служба лука для запуска в определенное время. Время может быть установлено в настольном приложении или указано в секундах с ``-авто-старт-таймером `` с помощью инструмента CLI. По умолчанию

autostop_timer

boolean

Настраивается ли служба лука для остановки в определенное время. Время может быть установлено в настольном приложении или указано в секундах с ``-авто-остановщиком `` с помощью инструмента CLI. По умолчанию

service_id

строка

32-характерный луковый URL-адрес, без схемы и без суффикса „.onion“.

Ниже приведены параметры, специфичные для «режима», указанного в ``разделе ``, выше.

Поделиться

Параметр

Тип

Толкование

autostop_sharing

boolean

Остановить ли автоматически долю после загрузки файлов в первый раз. По умолчанию: True

имя файла

list

Список файлов для обмена. По умолчанию: []

log_filenames

boolean

Следует ли регистрировать запросы URL-адреса, чтобы застрять при использовании инструмента CLI. По умолчанию

получить

Параметр

Тип

Толкование

data_dir

строка

Путь, где будут храниться полученные файлы или текстовые сообщения. По умолчанию: папка «OnionShare» исходного каталога пользователя.

webhook_url

строка

URL-адрес веб-хук, к которому OnionShare будет относиться, когда он получает файлы или текстовые сообщения. По умолчанию: null

disable_text

boolean

Отключить получение текстовых сообщений. По умолчанию

disable_files

boolean

Отключить прием файлов. По умолчанию

веб-сайт

Параметр

Тип

Толкование

disable_csp

boolean

`` True``, Onion Share не установит свой заголовок политики безопасности контента для веб-сайта. По умолчанию: false

custom_csp

строка

Настраиваемый заголовок политики безопасности контента для отправки вместо по умолчанию.

log_filenames

boolean

Следует ли регистрировать запросы URL-адреса, чтобы застрять при использовании инструмента CLI. По умолчанию

имя файла

list

Список файлов для обмена. По умолчанию: []

чат

В настоящее время нет настраиваемых настроек для режима чата.