Użytkowanie zaawansowane
Zapisywanie kart
Zamykanie hostowanych kart OnionShare niszczy je, uniemożliwiając ponowne użycie. Stale hostowane strony internetowe są dostępne pod tym samym adresem, nawet jeśli komputer, z którego są udostępniane, zostanie ponownie uruchomiony.
Utrwal dowolną kartę, zaznaczając pole „Zawsze otwieraj tę kartę po uruchomieniu OnionShare” przed uruchomieniem serwera.

Podczas otwierania OnionShare Twoje zapisane karty z poprzedniej sesji zaczną się otwierać. Każda usługa może być następnie uruchomiona ręcznie i będzie dostępna pod tym samym adresem OnionShare, będzie chroniona tym samym kluczem prywatnym.
Jeśli zapiszesz kartę, kopia jej sekretnego klucza usługi cebulowej jest przechowywana na Twoim komputerze.
Wyłączanie obsługi klucza prywatnego
Domyślnie wszystkie usługi OnionShare są chronione kluczem prywatnym, Tor nazywa to „uwierzytelnianiem klienta”.
Tor Browser poprosi Cię o podanie klucza prywatnego podczas ładowania usługi OnionShare. Jeśli chcesz zezwolić na korzystanie z Twojej usługi publicznie, lepiej całkowicie wyłączyć klucz prywatny.
Aby wyłączyć obsługę klucza prywatnego dla dowolnej karty, zaznacz pole „To jest usługa publiczna OnionShare (wyłącza klucz prywatny)” przed uruchomieniem serwera. Wtedy serwer będzie publiczny i nie będzie potrzebował klucza prywatnego do przeglądania w Tor Browser.
Tytuły niestandardowe
Domyślnie, gdy ludzie ładują usługę OnionShare w Tor Browser, widzą domyślny tytuł dla danego typu usługi. Na przykład domyślny tytuł usługi czatu to „OnionShare Chat”.
Jeśli edytujesz ustawienie „Tytuł niestandardowy” przed uruchomieniem serwera, możesz to zmienić.
Harmonogramy
OnionShare umożliwia dokładne planowanie, kiedy usługa powinna zostać uruchomiona i zatrzymana. Przed uruchomieniem serwera kliknij „Pokaż ustawienia zaawansowane” na jego karcie, a następnie zaznacz pole „Uruchom usługę cebulową w zaplanowanym czasie”, „Zatrzymaj usługę cebulową w zaplanowanym czasie” lub oba, a następnie ustaw odpowiednie daty i czasy.
Usługi zaplanowane do uruchomienia w przyszłości wyświetlają licznik czasu po kliknięciu przycisku „Rozpocznij udostępnianie”. Usługi zaplanowane do zatrzymania w przyszłości wyświetlają licznik czasu po uruchomieniu.
Zaplanowanie automatycznego uruchamiania usługi OnionShare może służyć jako wyłącznik awaryjny. Oznacza to, że Twoja usługa zostanie upubliczniona w określonym czasie w przyszłości, jeśli nie będziesz tam, aby temu zapobiec. Jeśli nic Ci się nie stanie, możesz anulować usługę przed planowanym rozpoczęciem.

Zaplanowanie automatycznego zatrzymania usługi OnionShare ogranicza jej ekspozycję. Jeśli chcesz udostępnić tajne informacje lub coś, co będzie nieaktualne, możesz to zrobić przez wybrany ograniczony czas.

Wiersz poleceń
Oprócz interfejsu graficznego OnionShare posiada również interfejs wiersza poleceń.
Instalowanie wersji CLI
Jeśli zainstalowano pakiet Snap, macOS lub Windows, masz już zainstalowaną wersję CLI.
Ewentualnie możesz zainstalować wersję OnionShare dostępną w wierszu poleceń, używając polecenia pip3
:
pip3 install --user onionshare-cli
Zauważ, że będziesz także potrzebował zainstalowanego pakietu tor
. W macOS zainstaluj go za pomocą: brew install tor
Następnie uruchom go następująco:
onionshare-cli --help
Informacje o instalacji na różnych systemach operacyjnych można znaleźć w pliku CLI README w repozytorium Git.
Uruchamianie CLI ze Snapa
Jeśli zainstalowano OnionShare przy użyciu pakietu Snap, możesz uruchomić onionshare.cli
, aby uzyskać dostęp do wersji interfejsu wiersza poleceń.
Uruchamianie CLI z poziomu systemu macOS
Z poziomu terminala możesz uruchomić /Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help
Uruchamianie CLI z poziomu systemu Windows
W instalacji systemu Windows dostępny jest plik wykonywalny onionshare-cli.exe
.
Użytkowanie
Przejrzyj dokumentację wiersza poleceń, uruchamiając 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
Uruchamianie CLI jako pliku jednostki systemd
Możliwe jest automatyczne uruchomienie OnionShare z poziomu CLI przy użyciu pliku jednostki systemd.
Może to okazać się szczególnie przydatne, jeśli pracujesz w trybie „trwałym” i chcesz uruchamiać tę samą usługę Onion przy każdym uruchomieniu komputera.
Aby to zrobić, musisz najpierw przygotować konfigurację JSON OnionShare.
Oto główna konfiguracja OnionShare. W tym przykładzie jest ona przechowywana w /home/user/.config/onionshare/onionshare.json
. Być może będzie trzeba dostosować niektóre ustawienia, ale jeśli masz już zainstalowany OnionShare, prawdopodobnie wygląda to mniej więcej tak:
{
"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
}
Zwróć uwagę na sekcję «persistent_tabs». Teraz utworzymy plik w /home/user/.config/onionshare/persistent/my-persistent-onion.json
, który wygląda tak:
{
"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": {}
}
Nie używaj tego klucza prywatnego, service_id ani kluczy client_auth! Są one pokazane tylko jako przykład. Nigdy nie udostępniaj klucza prywatnego nikomu.
Najprostszym sposobem na wygenerowanie adresu onion i klucza prywatnego jest najpierw utworzenie „przypiętej” karty OnionShare w aplikacji na komputer i uruchomienie udostępniania po raz pierwszy. Spowoduje to zapisanie trwałych ustawień w folderze .config/onionshare/persistent/
z losową nazwą. Możesz odpiąć tę kartę po jej pierwszym wygenerowaniu. Możesz też zostawić ją tam, gdzie jest, i użyć tego trwałego pliku w pliku jednostki systemd poniżej.
Teraz możesz utworzyć plik jednostki systemd w /etc/systemd/system/onionshare-cli.service
. Pamiętaj, aby dostosować użytkownika i grupę do własnego użytkownika/grupy, a także zmienić ścieżki do pliku binarnego onionshare-cli lub ścieżki do konfiguracji JSON i udziałów.
Plik jednostki systemd powinien wyglądać następująco:
[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
Należy pamiętać, że chociaż /home/user/my-shared-file.txt
został zdefiniowany w sekcji filenames
pliku my-persistent-onion.json
, nadal konieczne jest jego określenie jako argumentu polecenia onionshare-cli.
Pamiętaj o uruchomieniu sudo systemctl daemon-reload
po utworzeniu pliku jednostki.
Teraz możesz uruchomić sudo systemctl start onionshare-cli.service
. Jeśli zainstalowano journalctl
, możesz uruchomić sudo journalctl -f -t onionshare-cli
, a powinny pojawić się jakieś dane wyjściowe usługi:
[...]
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
Jeśli nie chcesz, aby użytkownicy korzystali z klucza prywatnego, ustaw opcję public
na true
w ustawieniach general
pliku my-persistent-onion.json.
Skróty klawiszowe
Aplikacja komputerowa OnionShare zawiera kilka skrótów klawiszowych dla wygody i dostępności:
Ctrl T - New Tab
Ctrl X - Closes current tab
Natomiast z głównego ekranu wyboru trybu:
Ctrl S - Share mode
Ctrl R - Receive mode
Ctrl W - Website mode
Ctrl C - Chat mode
Ctrl H - Settings tab
Parametry pliku konfiguracyjnego
OnionShare przechowuje swoje ustawienia w pliku JSON. Zarówno wersja CLI, jak i Desktop używają tego pliku konfiguracyjnego. CLI pozwala również określić ścieżkę do niestandardowego pliku konfiguracyjnego za pomocą --config
.
Poniżej znajdują się parametry pliku konfiguracyjnego i ich znaczenie. Jeśli plik konfiguracyjny zawiera inne parametry, które nie są tutaj wymienione, mogą być nieaktualne w starszych wersjach OnionShare.
Parametr |
Typ |
Wyjaśnienie |
---|---|---|
version |
|
Wersja OnionShare. Nie powinno zmieniać się tej wartości. |
connection_type |
|
Sposób, w jaki OnionShare łączy się z Tor. Prawidłowe opcje to «bundled», «automatic» (użyj połączenia Tor przeglądarki Tor Browser), «control_port» lub «socket_file». Domyślnie: «bundled» |
control_port_address |
|
Adres IP portu kontrolnego Tor, jeśli |
control_port_port |
|
Numer portu kontrolnego Tor, jeśli |
socks_address |
|
Adres IP serwera proxy SOCKS sieci Tor, jeśli |
socks_port |
|
Numer portu proxy SOCKS sieci Tor, jeśli |
socket_file_path |
|
Ścieżka do pliku gniazda sieci Tor, jeśli |
auth_type |
|
Jeśli dostęp do portu kontrolnego sieci Tor wymaga hasła, można ustawić je na «password», w przeciwnym razie «no_auth». Domyślnie: «no_auth» |
auth_password |
|
Jeśli dostęp do portu kontrolnego sieci Tor wymaga hasła, a |
auto_connect |
|
Czy OnionShare powinien automatycznie łączyć się z siecią Tor podczas uruchamiania. Domyślnie: false |
use_autoupdate |
|
Czy OnionShare ma automatycznie sprawdzać aktualizacje (przez sieć Tor). To ustawienie jest ważne tylko dla instalacji MacOS lub Windows. Domyślnie: true. |
autoupdate_timestamp |
|
Ostatni raz, kiedy OnionShare sprawdzał aktualizacje. Domyślnie: none |
bridges_enabled |
|
Czy połączyć się z siecią Tor za pomocą mostków. Domyślnie: false |
bridges_type |
|
Gdy |
bridges_builtin_pt |
|
Gdy |
bridges_moat |
|
Gdy |
bridges_custom |
|
Gdy |
bridges_builtin |
|
Gdy |
persistent_tabs |
|
Jeśli użytkownik zdefiniował jakieś karty jako «saved» (co oznacza, że są trwałe przy każdym uruchomieniu OnionShare, a ich adres onion się nie zmienia), otrzymują one losowy identyfikator, który jest tutaj wymieniony. Trwały onion jest przechowywany jako plik JSON o tej samej nazwie co ten identyfikator, w podfolderze folderu konfiguracji OnionShare o nazwie «persistent». Domyślnie: [] |
locale |
|
Ustawienia regionalne używane w OnionShare. Domyślne: None (to samo co «en»). Prawidłowe kody ustawień regionalnych można znaleźć w «available_locales» w https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py |
theme |
|
Motyw dla aplikacji OnionShare na komputer. Prawidłowe opcje to 0 (automatyczne wykrywanie jasnego lub ciemnego motywu komputera użytkownika), 1 (jasny) lub 2 (ciemny). |
Parametry pliku konfiguracyjnego dla trwałych cebul
Jak opisano powyżej, każda cebula «persistent» ma własne parametry, które są przechowywane w jej własnym pliku JSON. Ścieżka do tego pliku może być określona dla narzędzia CLI za pomocą --persistent
.
Oto przykład trwałej konfiguracji 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": {}
}
Poniżej znajdują się parametry pliku konfiguracyjnego dla trwałej cebuli i ich znaczenie dla każdej sekcji w JSON
onion
Parametr |
Typ |
Wyjaśnienie |
---|---|---|
private_key |
|
Prywatny klucz usługi Onion zakodowany w standardzie Base64 |
client_auth_priv_key |
|
Klucz prywatny podczas korzystania z uwierzytelniania klienta. Wyślij go użytkownikowi. |
client_auth_pub_key |
|
Klucz publiczny podczas korzystania z uwierzytelniania klienta. Używany po stronie OnionShare. |
persistent
Parametr |
Typ |
Wyjaśnienie |
---|---|---|
mode |
|
Tryb używany przez tę trwałą cebulę. Opcje to „share”, „receive”, „website” lub „chat”. |
enabled |
|
Czy trwałość jest włączona dla tej cebuli. Gdy opcja trwałości jest odznaczona w wersji komputerowej, cały ten plik JSON jest usuwany. Domyślnie: true |
autostart_on_launch |
|
Czy automatycznie uruchomić tę trwałą cebulę, gdy OnionShare się uruchomi i gdy sieć Tor zostanie podłączony. Domyślnie: false |
general
Parametr |
Typ |
Wyjaśnienie |
---|---|---|
title |
|
Opcjonalny niestandardowy tytuł do wyświetlania w usłudze onion. Domyślnie: null (zamiast tego będzie wyświetlany tytuł „OnionShare”) |
public |
|
Czy do usługi onion można uzyskać dostęp z kluczem prywatnym (uwierzytelnianie klienta) lub bez niego. Jeśli True, nie jest wymagany żaden klucz prywatny. |
autostart_timer |
|
Czy usługa onion jest skonfigurowana do uruchamiania o określonej godzinie. Czas można ustawić w aplikacji komputerowej lub określić w sekundach za pomocą |
autostop_timer |
|
Czy usługa onion jest skonfigurowana tak, aby zatrzymać się o określonej godzinie. Czas można ustawić w aplikacji komputerowej ub określić w sekundach za pomocą |
service_id |
|
32-znakowy adres URL usługi onion, bez schematu i bez sufiksu „.onion”. |
Poniżej znajdują się ustawienia specyficzne dla «mode» określonego w sekcji persistent
powyżej.
receive
Parametr |
Typ |
Wyjaśnienie |
---|---|---|
data_dir |
|
Ścieżka, w której będą przechowywane odebrane pliki lub wiadomości tekstowe. Domyślnie: folder „OnionShare” w katalogu domowym użytkownika. |
webhook_url |
|
Adres URL webhooka, do którego OnionShare będzie wysyłać POST, gdy otrzyma pliki lub wiadomości tekstowe. Domyślnie: null |
disable_text |
|
Czy wyłączyć odbieranie wiadomości tekstowych. Domyślnie: false |
disable_files |
|
Czy wyłączyć odbieranie plików. Domyślnie: false |
website
Parametr |
Typ |
Wyjaśnienie |
---|---|---|
disable_csp |
|
Jeżeli ustawione na |
custom_csp |
|
Niestandardowy nagłówek zasad bezpieczeństwa treści, który należy wysłać zamiast domyślnego. |
log_filenames |
|
Czy rejestrować żądania URL do stdout podczas korzystania z narzędzia CLI. Domyślnie: false |
filenames |
|
Lista plików do udostępnienia. Domyślnie: [] |
chat
W tej chwili nie ma żadnych konfigurowalnych ustawień trybu czatu.