راهنمای مدیریت Hysteria2 از طریق رابط خط فرمان (CLI)
این سند یک راهنمای جامع برای استفاده از اسکریپت cli.py ارائه میدهد، که یک رابط خط فرمان برای مدیریت Hysteria2 و سرویسهای مرتبط است. این راهنما نصب، مدیریت کاربران، پیکربندیهای پیشرفته و عیبیابی را پوشش میدهد. دستورات برای وضوح بیشتر در بخشهای جداگانه سازماندهی شدهاند. هر دستور با گزینهها، آرگومانها و رفتار مورد انتظار آن توضیح داده شده است.
مدیریت Hysteria2
این بخش دستورات مربوط به نصب، بهروزرسانی و پیکربندی هسته سرویس Hysteria2 را پوشش میدهد.
install-hysteria2
Hysteria2 را نصب و پیکربندی میکند.
./cli.py install-hysteria2 --port <port> --sni <sni>
--port/-p(الزامی): شماره پورتی که Hysteria2 به آن گوش میدهد. باید یک عدد صحیح باشد.--sni/-s(اختیاری): مشخصه نام سرور (SNI) برای استفاده. پیشفرضbts.comاست.
مثال:
./cli.py install-hysteria2 -p 443 -s example.com
uninstall-hysteria2
Hysteria2 را حذف نصب میکند.
./cli.py uninstall-hysteria2
update-hysteria2
هسته Hysteria2 را به آخرین نسخه بهروزرسانی میکند.
./cli.py update-hysteria2
restart-hysteria2
سرویس Hysteria2 را مجدداً راهاندازی میکند.
./cli.py restart-hysteria2
change-hysteria2-port
پورتی که Hysteria2 به آن گوش میدهد را تغییر میدهد.
./cli.py change-hysteria2-port --port <new_port>
--port/-p(الزامی): شماره پورت جدید.
مثال:
./cli.py change-hysteria2-port -p 8080
change-hysteria2-sni
SNI مورد استفاده Hysteria2 را تغییر میدهد.
./cli.py change-hysteria2-sni --sni <new_sni>
--sni/-s(الزامی): SNI جدید.
مثال:
./cli.py change-hysteria2-sni -s mynew.sni.com
backup-hysteria
از پیکربندی فعلی Hysteria2 پشتیبان تهیه میکند.
./cli.py backup-hysteria
/etc/hysteria/ ایجاد میکند.
restore-hysteria2
پیکربندی Hysteria2 را از یک فایل پشتیبان ZIP بازیابی میکند.
./cli.py restore-hysteria2 <backup_file_path>
backup_file_path: مسیر فایل ZIP حاوی پشتیبان. این مسیر باید به یک فایل موجود اشاره کند. نمیتواند یک دایرکتوری باشد. باید قابل خواندن باشد.
مثال:
./cli.py restore-hysteria2 /path/to/backup.zip
مدیریت کاربر
این بخش دستورات مربوط به مدیریت کاربران Hysteria2 را شرح میدهد.
list-users
لیست تمام کاربران Hysteria2 پیکربندی شده را نمایش میدهد.
./cli.py list-users
get-user
اطلاعات دقیق در مورد یک کاربر خاص را بازیابی میکند.
./cli.py get-user --username <username>
--username/-u(الزامی): نام کاربری کاربری که میخواهید اطلاعاتش را دریافت کنید.
مثال:
./cli.py get-user -u testuser
add-user
یک کاربر جدید Hysteria2 اضافه میکند.
./cli.py add-user --username <username> --traffic-limit <traffic_limit_gb> --expiration-days <expiration_days> --password <password> --creation-date <date>
--username/-u(الزامی): نام کاربری برای کاربر جدید.--traffic-limit/-t(الزامی): محدودیت ترافیک برای کاربر، بر حسب گیگابایت (GB).--expiration-days/-e(الزامی): تعداد روزهایی که حساب کاربری منقضی میشود.--password/-p(اختیاری): رمز عبور برای کاربر.--creation-date/-c(اختیاری): تاریخ ایجاد حساب در فرمتYYYY-MM-DD.
مثال:
./cli.py add-user -u newuser -t 100 -e 30 -p mysecretpassword -c 2023-12-25
edit-user
تنظیمات یک کاربر Hysteria2 موجود را ویرایش میکند.
./cli.py edit-user --username <username> --new-username <new_username> --new-traffic-limit <new_traffic_limit_gb> --new-expiration-days <new_expiration_days> --renew-password --renew-creation-date --blocked
--username/-u(الزامی): نام کاربری کاربری که میخواهید ویرایش کنید.--new-username/-nu(اختیاری): نام کاربری جدید برای کاربر.--new-traffic-limit/-nt(اختیاری): محدودیت ترافیک جدید بر حسب GB.--new-expiration-days/-ne(اختیاری): تعداد جدید روزهای انقضا.--renew-password/-rp(اختیاری، پرچم): اگر اضافه شود، رمز عبور کاربر را تجدید میکند.--renew-creation-date/-rc(اختیاری، پرچم): اگر اضافه شود، تاریخ ایجاد کاربر را بازنشانی میکند.--blocked/-b(اختیاری، پرچم): اگر اضافه شود، کاربر را مسدود میکند.
مثال (تغییر محدودیت ترافیک و مسدود کردن):
./cli.py edit-user -u testuser -nt 50 -b
reset-user
آمار ترافیک کاربر را بازنشانی میکند.
./cli.py reset-user --username <username>
--username/-u(الزامی): نام کاربری برای بازنشانی.
remove-user
یک کاربر Hysteria2 را حذف میکند.
./cli.py remove-user --username <username>
--username/-u(الزامی): نام کاربری برای حذف.
show-user-uri
URI مربوط به Hysteria2 را برای یک کاربر تولید و نمایش میدهد، به صورت اختیاری به عنوان کد QR.
./cli.py show-user-uri --username <username> --qrcode --ipv <ip_version> --all --singbox --normalsub
--username/-u(الزامی): نام کاربری که URI برای آن تولید میشود.--qrcode/-qr(اختیاری، پرچم): اگر اضافه شود، یک کد QR از URI تولید میکند.--ipv/-ip(اختیاری): نسخه IP (4 یا 6) را برای URI مشخص میکند. پیشفرض 4 است.--all/-a(اختیاری، پرچم): URIهای IPv4 و IPv6 را نشان میدهد.--singbox/-s(اختیاری, پرچم): اگر سرویس Singbox فعال باشد، لینک اشتراک Singbox را اضافه میکند.--normalsub/-n(اختیاری، پرچم): اگر سرویس normalsub فعال باشد، پیوند اشتراک Normal-Sub را شامل می شود.
مثال (تولید کد QR برای IPv6):
./cli.py show-user-uri -u testuser -qr -ip 6
مدیریت سرور
این بخش دستورات مربوط به سرور را پوشش میدهد.
traffic-status
آمار استفاده از ترافیک فعلی را نمایش میدهد.
./cli.py traffic-status
server-info
اطلاعات سرور را نمایش میدهد.
./cli.py server-info
manage_obfs
تنظیمات مبهمسازی (obfs) را در پیکربندی Hysteria2 مدیریت میکند.
./cli.py manage_obfs --remove
./cli.py manage_obfs --generate
--remove/-r(اختیاری، پرچم): obfs را از پیکربندی حذف میکند.--generate/-g(اختیاری، پرچم): یک پیکربندی obfs جدید تولید میکند.- ناسازگار: شما باید فقط یکی از 
--removeیا--generateرا ارائه دهید. ارائه ندادن هیچ کدام خطایی را چاپ میکند. 
ip-address
آدرسهای IP سرور ذخیره شده در .configs.env را مدیریت میکند.
./cli.py ip-address
./cli.py ip-address --edit --ipv4 <ipv4_address>
./cli.py ip-address --edit --ipv6 <ipv6_address>
- بدون گزینه: آدرسهای IP شناسایی شده خودکار را به پیکربندی اضافه میکند.
 --edit(اختیاری، پرچم): ویرایش دستی آدرسهای IP را فعال میکند.-4/--ipv4(اختیاری): یک آدرس IPv4 جدید را مشخص میکند (نیاز به--editدارد).-6/--ipv6(اختیاری): یک آدرس IPv6 جدید را مشخص میکند (نیاز به--editدارد).- با ویرایش شما باید حداقل یکی از 
--ipv4یا--ipv6را ارائه دهید. 
- با ویرایش شما باید حداقل یکی از 
 
update-geo
فایلهای داده GeoIP و GeoSite را بهروزرسانی میکند.
./cli.py update-geo --country <country>
--country/-c(اختیاری): کشوری که فایلهای Geo برای آن بهروزرسانی میشوند (iran،china، یاrussia). پیشفرضiranاست.
مثال (بهروزرسانی برای چین):
./cli.py update-geo -c china
masquerade
تنظیمات masquerade را در پیکربندی Hysteria2 مدیریت میکند.
./cli.py masquerade --remove
./cli.py masquerade --enable <domain>
--remove/-r(اختیاری، پرچم): پیکربندی masquerade را حذف میکند.--enable/-e(اختیاری): masquerade را با دامنه مشخص شده فعال میکند.- ناسازگار: شما باید فقط یکی از 
--removeیا--enableرا ارائه دهید. ارائه ندادن هیچ کدام خطایی را چاپ میکند. 
مثال (فعال کردن masquerade):
./cli.py masquerade -e example.com
منوی پیشرفته
این بخش دستوراتی را توضیح میدهد که عملکردهای اضافی را ارائه میدهند.
install-tcp-brutal
TCP Brutal را نصب میکند.
./cli.py install-tcp-brutal
install-warp
WARP را نصب میکند.
./cli.py install-warp
uninstall-warp
WARP را حذف نصب میکند.
./cli.py uninstall-warp
configure-warp
تنظیمات WARP را پیکربندی میکند.
./cli.py configure-warp --all --popular-sites --domestic-sites --block-adult-sites --warp-option <option> --warp-key <key>
--all/-a(اختیاری، پرچم): از WARP برای تمام ترافیک استفاده میکند.--popular-sites/-p(اختیاری، پرچم): از WARP برای وبسایتهای محبوب استفاده میکند.--domestic-sites/-d(اختیاری، پرچم): از WARP برای وبسایتهای داخلی (ایرانی) استفاده میکند.--block-adult-sites/-x(اختیاری، پرچم): محتوای بزرگسالان را مسدود میکند.--warp-option/-w(اختیاری): بینwarp(عادی) وwarp plusانتخاب میکند.--warp-key/-k(اختیاری): کلید WARP Plus (اگر--warp-optionبرابرwarp plusباشد الزامی است).
مثال (استفاده از WARP Plus):
./cli.py configure-warp -w "warp plus" -k YOUR_WARP_PLUS_KEY
warp-status
وضعیت فعلی WARP را نمایش می دهد.
./cli.py warp-status
telegram
ادغام ربات تلگرام را مدیریت میکند.
./cli.py telegram --action <action> --token <token> --adminid <admin_id>
--action/-a(الزامی): عملی که باید انجام شود (startیاstop).--token/-t(برایstartالزامی است): توکن ربات تلگرام.--adminid/-aid(برایstartالزامی است): شناسه(های) ادمین تلگرام (جدا شده با کاما).
مثال (راهاندازی ربات):
./cli.py telegram -a start -t YOUR_BOT_TOKEN -aid 123456789,987654321
singbox
سرویس Singbox را مدیریت میکند.
./cli.py singbox --action <action> --domain <domain> --port <port>
--action/-a(الزامی):startیاstop.--domain/-d(برایstartالزامی است): نام دامنه برای SSL.--port/-p(برایstartالزامی است): شماره پورت برای سرویس Singbox.
normal-sub
سرویس Normal-Sub را مدیریت میکند.
./cli.py normal-sub --action <action> --domain <domain> --port <port>
--action/-a(الزامی):startیاstop.--domain/-d(برایstartالزامی است): نام دامنه برای SSL.--port/-p(برایstartالزامی است): شماره پورت برای سرویس.
webpanel
سرویس وب پنل را مدیریت میکند.
./cli.py webpanel --action <action> --domain <domain> --port <port> --admin-username <admin_username>  --admin-password <admin_password> --expiration-minutes <expiration_minutes> --debug
--action/-a(الزامی):startیاstop.--domain/-d(برایstartالزامی است): نام دامنه برای SSL.--port/-p(برایstartالزامی است): شماره پورت برای سرویس وب پنل.--admin-username/-au(برایstartالزامی است): نام کاربری مدیر برای وب پنل.--admin-password/-ap(برایstartالزامی است): رمز عبور مدیر برای وب پنل.--expiration-minutes/-e(اختیاری): زمان انقضا برای جلسات وب پنل بر حسب دقیقه، پیش فرض: 20.--debug/-gحالت اشکال زدایی وب پنل را فعال میکند.- هنگامی که وب پنل را راه اندازی میکنید، اسکریپت وضعیت سرویسهای مرتبط را نشان میدهد.
 - 
وب پنل دارای پورت پیش فرض 80 است.
./cli.py webpanel -a start -d example.com -p 8080 -au admin -ap 1234 
get-webpanel-url
URL وب پنل را دریافت میکند.
./cli.py get-webpanel-url
get-webpanel-api-token
توکن API وب پنل را دریافت میکند.
./cli.py get-webpanel-api-token
get-webpanel-services-status
وضعیت سرویسهای وب پنل را دریافت میکند.
 ./cli.py get-webpanel-services-status
get-services-status
وضعیت تمام سرویسهای مدیریت شده را نمایش میدهد (فعال یا غیرفعال).
./cli.py get-services-status