Розширене використання
Збереження вкладок
Закриття вкладок OnionShare, які ви розміщуєте, знищує їх, запобігаючи повторному використанню. Постійно розміщені вебсайти доступні за тією ж адресою, навіть якщо комп’ютер, з якого вони доступні, перезавантажиться.
Зробіть будь-яку вкладку постійною, встановивши прапорець «Завжди відкривати цю вкладку під час запуску OnionShare» перед запуском сервера.

Під час відкриття OnionShare почнуть відкриватися ваші збережені вкладки з попереднього сеансу. Тоді кожну службу можна буде запустити вручну, вона буде доступна за тією самою адресою OnionShare і захищена тим самим приватним ключем.
Якщо ви збережете вкладку, копія її таємного ключа служби onion зберігається на вашому комп’ютері.
Вимкнути приватний ключ
Типово всі служби OnionShare захищені приватним ключем, який Tor називає «автентифікацією клієнта».
Браузер Tor попросить вас ввести свій приватний ключ під час завантаження служби OnionShare. Якщо ви хочете дозволити користуватися вашою службою всім, краще взагалі вимкнути приватний ключ.
Щоб вимкнути приватний ключ для будь-якої вкладки, установіть прапорець «Це загальнодоступна служба OnionShare (вимикає приватний ключ)» перед запуском сервера. Тоді сервер буде загальнодоступним і не потребуватиме приватного ключа для перегляду в Tor Browser.
Власні заголовки
Коли користувачі завантажують службу OnionShare у браузері Tor, вони бачать типову назву типу служби. Наприклад, типова назва бесіди — «OnionShare Chat».
Якщо ви відредагуєте параметр «Власний заголовок» перед запуском сервера, ви можете змінити його.
Запланований час
OnionShare підтримує планування, коли саме служба повинна запускатися та зупинятися. Перш ніж запускати сервер, натисніть «Показати розширені налаштування» на його вкладці, а потім позначте «Запускати службу onion у запланований час», «Зупинити службу onion у запланований час» або обидва і встановіть бажані дати та час.
Служби, заплановані до запуску в майбутньому, показуватимуть таймер зворотного відліку, коли натиснена кнопка «Розпочати надсилання». Служби з черги припинення, показують таймер зворотного відліку, коли вони запускаються.
Планування служби OnionShare для автоматичного запуску може бути використане перемикачем мертвої людини. Це означає, що ваша послуга оприлюднюється в певний час у майбутньому, якщо ви не будете поруч, щоб запобігти цьому. Якщо з вами нічого не станеться, ви можете скасувати запуск цієї служби.

Планування автоматичної зупинки служби OnionShare може бути корисним для обмеження доступу до неї. Якщо ви хочете поділитися таємними даними або чимось, що має термін давності, ви можете вказати обмеження часу.

Інтерфейс командного рядка
Окрім графічного інтерфейсу, 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 у вигляді юніт-файлу systemd
Існує можливість автоматичного запуску OnionShare з CLI за допомогою юніт-файлу systemd.
Це може виявитися особливо корисним, якщо ви працюєте в „постійному“ режимі та хочете запускати одну й ту ж onion-службу за кожного запуску машини.
Для цього вам потрібно спочатку підготувати певну json-конфігурацію OnionShare.
Ось основна конфігурація OnionShare. У цьому прикладі вона розміщена у файлі /home/user/.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
}
Зверніть увагу на секцію persistent_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": {}
}
Не використовуйте цей приватний ключ, ключі service_id або client_auth! Вони показані лише для прикладу. Ніколи нікому не повідомляйте private_key.
Найпростіший спосіб згенерувати адресу onion і приватний ключ — це спочатку створити «закріплену» вкладку OnionShare у застосунку для комп’ютерів і розпочати надсилання перший раз. Це збереже постійні налаштування у вашій теці .config/onionshare/persistent/
з довільною назвою. Ви можете відкріпити цю вкладку після першого генерування. Або ви можете залишити її там, де вона є, і використовувати цей постійний файл у вашому юніт-файлі systemd нижче.
Тепер ви можете створити юніт-файл systemd в /etc/systemd/system/onionshare-cli.service
. Не забудьте відкоригувати User і Group відповідно до ваших власних користувача/групи, а також змінити будь-які шляхи до бінарного файлу onionshare-cli або шляхи до ваших JSON конфігурацій і спільних файлів.
Юніт-файл systemd повинен мати схожий вигляд:
[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
Якщо ви не хочете, щоб ваші користувачі використовували приватний ключ, встановіть для 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 stores its settings in a JSON file. Both the CLI and the Desktop versions use this configuration file. The CLI also lets you specify a path to a custom configuration file with --config
.
Below are the configuration file parameters and what they mean. If your configuration file has other parameters not listed here, they may be obsolete from older OnionShare versions.
Параметр |
Тип |
Пояснення |
---|---|---|
версія |
|
The version of OnionShare. You should not ever need to change this value. |
connection_type |
|
The way in which OnionShare connects to Tor. Valid options are „bundled“, „automatic“ (use Tor Browser’s Tor connection), „control_port“ or „socket_file“. Default: „bundled“ |
control_port_address |
|
The IP address of Tor’s Control port, if |
control_port_port |
|
The port number of Tor’s Control port, if |
socks_address |
|
The IP address of Tor’s SOCKS proxy, if |
socks_port |
|
The port number of Tor’s SOCKS proxy, if |
socket_file_path |
|
The path to Tor’s socket file, if |
auth_type |
|
If access to Tor’s control port requires a password, this can be set to „password“, otherwise „no_auth“. Default: „no_auth“ |
auth_password |
|
If access to Tor’s control port requires a password, and |
auto_connect |
|
Whether OnionShare should automatically connect to Tor when it starts. Default: False |
use_autoupdate |
|
Whether OnionShare should automatically check for updates (over Tor). This setting is only valid for MacOS or Windows installations. Default: True. |
autoupdate_timestamp |
|
The last time OnionShare checked for updates. Default: None |
bridges_enabled |
|
Whether to connect to Tor using bridges. Default: False |
bridges_type |
|
When |
bridges_builtin_pt |
|
When |
bridges_moat |
|
When |
bridges_custom |
|
When |
bridges_builtin |
|
When |
persistent_tabs |
|
If the user has defined any tabs as „saved“ (meaning that they are persistent each time OnionShare starts, and their onion address doesn’t change), these are given a random identifier which gets listed here. The persistent onion is stored as a JSON file with the same name as this identifier, in a subfolder of the OnionShare configuration folder called „persistent“. Default: [] |
locale |
|
The locale used in OnionShare. Default: None (which is the same as „en“). For valid locale codes, see „available_locales“ in https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py |
theme |
|
The theme for the OnionShare desktop app. Valid options are 0 (automatically detect the user’s computer’s light or dark theme), 1 (light) or 2 (dark). |
Configuration file parameters for persistent onions
As described above, each „persistent“ onion has parameters of its own which are stored in its own JSON file. The path to this file can be specified for the CLI tool with --persistent
.
Here is an example persistent JSON configuration:
{
"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": {}
}
Below are the configuration file parameters for a persistent onion and what they mean, for each section in the JSON
onion
Параметр |
Тип |
Пояснення |
---|---|---|
private_key |
|
Base64-encoded private key of the onion service |
client_auth_priv_key |
|
The private key when using Client Authentication. Send this to the user. |
client_auth_pub_key |
|
The public key when using Client Authentication. Used on OnionShare’s side. |
persistent
Параметр |
Тип |
Пояснення |
---|---|---|
mode |
|
The mode used by this persistent onion. Options are «share», «receive», «website» or «chat». |
enabled |
|
Whether persistence is enabled for this onion. When the persistent option is unchecked in the desktop, this entire JSON file is deleted. Default: true |
autostart_on_launch |
|
Whether to automatically start this persistent onion when OnionShare starts and once Tor is connected. Default: false |
general
Параметр |
Тип |
Пояснення |
---|---|---|
title |
|
An optional custom title for displaying on the onion service. Default: null («OnionShare» will be shown instead) |
public |
|
Whether the onion service can be accessed with or without a Private Key (Client Authentication). If true, no Private Key is required. |
autostart_timer |
|
Whether the onion service is configured to start at a specific time. The time can be set in the desktop app or specified in seconds with |
autostop_timer |
|
Whether the onion service is configured to stop at a specific time. The time can be set in the desktop app or specified in seconds with |
service_id |
|
The 32-character onion service URL, without the scheme and without the „.onion“ suffix. |
The below are settings specific to the „mode“ specified in the persistent
section above.
receive
Параметр |
Тип |
Пояснення |
---|---|---|
data_dir |
|
The path where received files or text messages will be stored. Default: the „OnionShare“ folder of the user’s home directory. |
webhook_url |
|
A webhook URL that OnionShare will POST to when it receives files or text messages. Default: null |
disable_text |
|
Whether to disable receiving text messages. Default: false |
disable_files |
|
Whether to disable receiving files. Default: false |
вебсайт
Параметр |
Тип |
Пояснення |
---|---|---|
disable_csp |
|
If set to |
custom_csp |
|
A custom Content Security Policy header to send instead of the default. |
log_filenames |
|
Whether to log URL requests to stdout when using the CLI tool. Default: false |
filenames |
|
A list of files to share. Default: [] |
chat
There are currently no configurable settings for the Chat mode.