استفاده پیشرفته
ذخیره تب ها
بستن تبهای OnionShare که آنها را میزبانی میکنید، آنها را از بین میبرد و از استفاده مجدد از آنها جلوگیری میکند. وبسایتهای میزبانیشدهی دائمی، حتی اگر رایانهای که از آن به اشتراک گذاشته شدهاند، مجدداً راهاندازی شود، همچنان در همان آدرس در دسترس خواهد بود.
قبل از شروع سرور، با علامت زدن گزینه «همیشه این تب هنگام شروع OnionShare باز شود» هر تب ی را دائمی کنید.
هنگام باز کردن OnionShare، تبهای ذخیره شده شما از جلسه قبل شروع به باز شدن میکنند. سپس هر سرویس میتواند به صورت دستی شروع شود و در همان آدرس OnionShare در دسترس خواهد بود و توسط همان کلید خصوصی محافظت میشود.
اگر یک تب را ذخیره کنید، یک کپی از کلید مخفی سرویس onion آن در رایانه شما ذخیره میشود.
کلید خصوصی را خاموش کنید
به طور پیشگزیده، تمام سرویسهای OnionShare با یک کلید خصوصی محافظت میشوند که Tor آن را «هویت سنجی کلاینت» مینامد.
مرورگر Tor هنگام بارگذاری سرویس OnionShare از شما میخواهد که کلید خصوصی خود را وارد کنید. اگر میخواهید به کل مردم اجازه دهید از سرویس شما استفاده کنند، بهتر است کلید خصوصی را به طور کلی غیرفعال کنید.
برای غیرفعال کردن کلید خصوصی برای هر تب، قبل از شروع سرور، کادر «این یک سرویس عمومی OnionShare است (کلید خصوصی را غیرفعال میکند)» را علامت بزنید. سپس سرور عمومی خواهد بود و برای بارگذاری آن در مرورگر Tor نیازی به کلید خصوصی نیست.
عنوانهای سفارشی
وقتی سرویسهای OnionShare در مرورگر Tor بارگذاری شوند، عنوان پیشفرض هر نوع سرویس را مشاهده میکنید. برای مثال، عنوان پیشفرض برای سرویسهای چت «OnionShare چت» است.
اگر قبل از شروع سرور، تنظیمات «عنوان سفارشی» را ویرایش کنید، میتوانید آن را تغییر دهید.
زمانهای برنامهریزیشده
OnionShare از زمانبندی دقیق از شروع تا پایان یک سرویس پشتیبانی میکند. قبل از شروع یک سرور، روی «نمایش تنظیمات پیشرفته» در تب آن کلیک کنید و سپس کادرهای کنار «شروع سرویس Onion در زمان برنامهریزیشده»، «توقف سرویس Onion در زمان برنامهریزیشده» یا هر دو را علامت بزنید و تاریخ و زمانهای دلخواه مربوطه را تنظیم کنید.
سرویسهایی که قرار است در آینده شروع شوند، با کلیک روی دکمهی «شروع اشتراکگذاری» یک تایمر شمارش معکوس نمایش میدهند. سرویسهایی که قرار است در آینده متوقف شوند، هنگام شروع، یک تایمر شمارش معکوس نمایش میدهند.
زمانبندی شروع خودکار سرویس OnionShare میتواند به عنوان یک کلید موقت عمل کند. این بدان معناست که سرویس شما در زمان مشخصی در آینده، در صورتی که شما حضور نداشته باشید، عمومی میشود. اگر اتفاقی برای شما نیفتد، میتوانید سرویس را قبل از شروع برنامهریزی شده لغو کنید.
زمانبندی سرویس OnionShare برای توقف خودکار، میزان افشای آن را محدود میکند. اگر میخواهید اطلاعات محرمانه یا چیزی را که قدیمی میشود به اشتراک بگذارید، میتوانید این کار را برای مدت زمان محدودی انجام دهید.
رابط خط فرمان
علاوه بر اینترفیس گرافیکی، OnionShare دارای یک اینترفیس command-line نیز هست.
نصب نسخه CLI
اگر بسته Snap، macOS یا Windows را نصب کردهاید، نسخه CLI را از قبل نصب کردهاید.
روش دیگر، نصب نسخه خط-فرمان OnionShare با استفاده از pip3:: است.
pip3 install --user onionshare-cli
توجه داشته باشید که به بستهی tor نیز نیاز خواهید داشت. در macOS، آن را با دستور زیر نصب کنید: brew install tor
بعد به این صورت اجرایش کنید:
onionshare-cli --help
اطلاعات مربوط به نصب آن در سیستم عامل های مختلف را می توان در`CLI README file <https://github.com/onionshare/onionshare/blob/develop/cli/README.md>`_در مخزن Git یافت.
اجرای CLI از Snap
اگر OnionShare را با استفاده از بسته Snap نصب کردهاید، میتوانید onionshare.cli را برای دسترسی به نسخه رابط command-line اجرا کنید.
اجرای CLI از macOS
از ترمینال، می توانید``/Applications/OnionShare.app/Contents/MacOS/onionshare-cli --help`` را اجرا کنید.
اجرای CLI از ویندوز
در نصب ویندوز، فایل اجرایی 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 اجرا کرد.
اگر در حالت «پایدار» (persistent mode) کار میکنید و میخواهید هر بار که دستگاه شما روشن میشود، همان سرویس onion را اجرا کنید، این قابلیت میتواند بسیار مفید باشد.
برای انجام این کار، ابتدا باید اول json config مربوط به OnionShare را آماده کنید.
config اصلی 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 در واقع استفاده نکنید! آنها فقط به عنوان مثال نشان داده شدهاند. هرگز کلید خصوصی را با کسی به اشتراک نگذارید.
سادهترین راه برای تولید آدرس onion و کلید خصوصی این است که ابتدا یک تب OnionShare 'پینشده' در برنامه دسکتاپ ایجاد کنید و اشتراکگذاری را برای اولین بار شروع کنید. این کار تنظیمات پایدار را در پوشه .config/onionshare/persistent/ شما با یک نام تصادفی ذخیره میکند. میتوانید پس از ایجاد اولین تب، آن را از حالت پین خارج کنید. یا میتوانید آن را در همان جایی که هست رها کنید و از آن فایل پایدار در فایل واحد systemd خود در زیر استفاده کنید.
اکنون میتوانید یک فایل واحد systemd را در /etc/systemd/system/onionshare-cli.service ایجاد کنید. حتماً User و Group را مطابق با user/group خودتان تنظیم کنید، و همچنین هرگونه تغییری در هر مسیری به فایل باینری onionshare-cli یا مسیرهای configs و اشتراکگذاریهای 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
اگر نمیخواهید کاربرانتان از کلید خصوصی استفاده کنند، در تنظیمات general فایل my-persistent-onion.json، گزینه public را روی true تنظیم کنید.
میانبرهای کیبورد
برنامه دسکتاپ 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 تنظیمات خود را در یک فایل JSON ذخیره میکند. هر دو نسخه CLI و Desktop از این فایل پیکربندی استفاده میکنند. CLI همچنین به شما امکان میدهد با استفاده از --config مسیر فایل پیکربندی سفارشی را مشخص کنید.
در زیر پارامترهای فایل پیکربندی و معنی آنها آمده است. اگر فایل پیکربندی شما پارامترهای دیگری دارد که در اینجا ذکر نشده است، ممکن است از نسخههای قدیمیتر OnionShare منسوخ شده باشند.
پارامتر |
نوع |
توضیح |
|---|---|---|
نسخه |
|
نسخه OnionShare. شما هرگز نیازی به تغییر این مقدار نخواهید داشت. |
نوع_اتصال |
|
نحوه اتصال OnionShare به Tor. گزینههای معتبر عبارتند از «bundled»، «automatic» (از اتصال Tor مرورگر Tor استفاده کنید)، «control_port» یا «socket_file». پیشفرض: «bundled» |
control_port_address |
|
آدرس IP پورت کنترل Tor، اگر |
control_port_port |
|
شماره پورت کنترل تور، اگر |
socks_address |
|
آدرس IP پروکسی SOCKS Tor، در صورتی که |
socks_port |
|
شماره پورت پروکسی SOCKS Tor، در صورتی که |
socket_file_path |
|
مسیر فایل سوکت Tor، اگر |
auth_type |
|
اگر دسترسی به پورت کنترل Tor نیاز به رمز عبور داشته باشد، میتوان آن را روی «password» تنظیم کرد، در غیر این صورت «no_auth». پیشفرض: «no_auth» |
auth_password |
|
اگر دسترسی به پورت کنترل Tor نیاز به رمز عبور دارد و |
auto_connect |
|
اینکه آیا OnionShare هنگام شروع به کار به طور خودکار به Tor متصل شود یا خیر. پیشفرض: غلط |
use_autoupdate |
|
اینکه آیا OnionShare باید بهطور خودکار بهروزرسانیها را بررسی کند (از طریق Tor). این تنظیم فقط برای نصبهای MacOS یا Windows معتبر است. پیشفرض: درست. |
autoupdate_timestamp |
|
آخرین باری که OnionShare بهروزرسانیها را بررسی کرد. پیشفرض: هیچکدام |
bridges_enabled |
|
اینکه آیا با استفاده از پلها به Tor متصل شویم یا خیر. پیشفرض: غلط |
bridges_type |
|
وقتی |
bridges_builtin_pt |
|
وقتی |
bridges_moat |
|
وقتی |
bridges_custom |
|
وقتی |
bridges_builtin |
|
وقتی |
persistent_tabs |
|
اگر کاربر هر تبی را به عنوان «ذخیرهشده» تعریف کرده باشد (به این معنی که هر بار که OnionShare شروع میشود، آنها پایدار هستند و آدرس onion آنها تغییر نمیکند)، به آنها یک شناسه تصادفی داده میشود که در اینجا فهرست میشود. onion پایدار به عنوان یک فایل JSON با همان نام این شناسه، در زیرپوشهای از پوشه پیکربندی OnionShare به نام «persistent» ذخیره میشود. پیشفرض: [] |
locale |
|
Locale مورد استفاده در OnionShare. پیشفرض: None (که معادل 'en' است). برای کدهای زبان locale معتبر، به 'available_locales' در https://github.com/onionshare/onionshare/blob/main/cli/onionshare_cli/settings.py مراجعه کنید. |
تم |
|
تم برنامه دسکتاپ OnionShare. گزینههای معتبر عبارتند از ۰ (تشخیص خودکار تم روشن یا تیره رایانه کاربر)، ۱ (روشن) یا ۲ (تیره). |
پارامترهای فایل پیکربندی برای حالت پایدار onion
همانطور که در بالا توضیح داده شد، هر onion «حالت پایدار» پارامترهای خاص خود را دارد که در فایل 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": {}
}
در زیر پارامترهای فایل پیکربندی برای یک onion پایدار و معنای آنها برای هر بخش در JSON آمده است.
onion
پارامتر |
نوع |
توضیح |
|---|---|---|
private_key |
|
کلید خصوصی رمزگذاری شده با Base64 از سرویس onion |
client_auth_priv_key |
|
کلید خصوصی هنگام استفاده از هویت سنجی کلاینت. این را برای کاربر ارسال کنید. |
client_auth_pub_key |
|
کلید عمومی هنگام استفاده از هویت سنجی کلاینت. در سمت OnionShare استفاده میشود. |
پایدار
پارامتر |
نوع |
توضیح |
|---|---|---|
حالت |
|
حالت مورد استفاده توسط این onion پایدار. گزینهها عبارتند از "اشتراکگذاری"، "دریافت"، "وبسایت" یا "چت". |
فعال شده |
|
آیا پایداری برای این onion فعال است یا خیر. وقتی گزینه پایدار در دسکتاپ تیک نخورده باشد، کل این فایل JSON حذف میشود. پیشگزیده: درست |
autostart_on_launch |
|
اینکه آیا این onion پایدار هنگام شروع OnionShare و پس از اتصال Tor به طور خودکار شروع به کار کند یا خیر. پیشفرض: غلط |
عمومی
پارامتر |
نوع |
توضیح |
|---|---|---|
عنوان |
|
یک عنوان سفارشی اختیاری برای نمایش در سرویس onion. مقدار پیشفرض: پوچ (به جای آن "OnionShare" نمایش داده خواهد شد) |
عمومی |
|
آیا میتوان به سرویس onion با کلید خصوصی یا بدون آن دسترسی داشت (هویت سنجی کلاینت). اگر درست باشد، نیازی به کلید خصوصی نیست. |
autostart_timer |
|
اینکه آیا سرویس onion برای شروع در یک زمان خاص پیکربندی شده است یا خیر. زمان را میتوان در کاره دسکتاپ تنظیم کرد یا با استفاده از |
autostop_timer |
|
آیا سرویس onion طوری پیکربندی شده است که در زمان خاصی متوقف شود. زمان را میتوان در کاره دسکتاپ تنظیم کرد یا با استفاده از |
service_id |
|
آدرس اینترنتی سرویس onion با طول ۳۲ کاراکتر، بدون طرح و بدون پسوند «.onion». |
تنظیمات زیر مختص به «حالت» مشخص شده در بخش پایدار در بالا هستند.
دریافت
پارامتر |
نوع |
توضیح |
|---|---|---|
data_dir |
|
مسیری که فایلها یا پیامهای متنی دریافتی در آن ذخیره میشوند. پیشگزیده: پوشهی 'OnionShare' در دایرکتوری خانگی کاربر. |
webhook_url |
|
یک آدرس وب هوک که OnionShare هنگام دریافت فایل یا پیام متنی، آن را POST میکند. پیشگزیده: null |
disable_text |
|
آیا دریافت پیامهای متنی غیرفعال شود؟ پیشفرض: غلط |
disable_files |
|
آیا دریافت فایل غیرفعال شود؟ پیشگزیده: غلط |
وبسایت
پارامتر |
نوع |
توضیح |
|---|---|---|
disable_csp |
|
اگر روی``درست`` تنظیم شود، OnionShare سربرگ پیشفرض سیاست امنیت محتوا را برای وبسایت تنظیم نمیکند. پیشگزیده: |
custom_csp |
|
یک هدر سفارشی برای سیاست امنیت محتوا به جای هدر پیشگزیده ارسال شود. |
log_filenames |
|
اینکه آیا هنگام استفاده از ابزار CLI، درخواستهای log URL در stdout ثبت شوند یا خیر. پیشگزیده: غلط. |
نام فایلها |
|
فهرستی از فایلهایی که باید به اشتراک گذاشته شوند. پیشگزیده: [] |
chat
در حال حاضر هیچ تنظیمات قابل تنظیمی برای حالت Chat وجود ندارد.