> For the complete documentation index, see [llms.txt](https://sys-call.gitbook.io/tor-newnym/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sys-call.gitbook.io/tor-newnym/twr-chyst/prwtkl-kntrl-twr.md).

# پروتکل کنترل تور

![](https://2267894292-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MZumrX9GHf0ccR_cW5u%2F-MZx0xJW7XuHqn74iOVP%2F-MZx8tohoaUOd89kQ5qv%2Fimage.png?alt=media\&token=a04bc68b-ed91-4d74-a652-3a65cf161809)

خب پروتکل کنترل تور چیه؟

برای اینکه بتونیم با tor daemon ارتباط برقرار کنیم، برنامه نویس های تور یک قابلیت اضافه کردن به تور به اسم Tor Control Protocol

با این پروتکل میتونیم دستوراتی رو به سمت تور ارسال کنیم و دستور مارو پردازش کنه و در صورت لزوم تغییراتی توی خودش انجام بده.

برای اینکه بخوایم این رو فعال کنیم میتونیم به صورت زیر عمل کنیم، برای مثال ما میخوایم روی پورت 7777 گوش بده:

**`ControlPort 7777`**

به همین راحتی. همچنین میتونیم همانند SOCKSPort ادرس رو هم مشخص کنیم:

**`ControlPort 0.0.0.0:7777`**

برای این پورت بیشتر از 9051 استفاده میکنن و توی مرورگر تور هم بیشتر 9151

همچنین میتونیم از unix domain socket هم برای Tor control protocol استفاده کنیم

فرم کلیش به صورت&#x20;

**`ControlPort unix:path`**

هستش.

راستی این هم بگم که TCP/IP هستش.

### احراز هویت

![](https://2267894292-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MZumrX9GHf0ccR_cW5u%2F-MZx0xJW7XuHqn74iOVP%2F-MZx8GPVjxQD09NdxZJT%2Fimage.png?alt=media\&token=043d851a-977e-4949-8ef7-eedc07247eaa)

برای اینکه هر برنامه ای نتونه با این پورت ارتباط بگیره یا اینکه اگه روی ایپی های دیگه بجز localhost گوش دادید برای اینکه بقیه افراد توی شبکه نتونن استفاده کنن بیایم یه پسوورد براش بزاریم.

برای این کار اول باید بیایم یه Hash بسازیم برای این کار باید از دستور زیر استفاده کنیم:

```
$ tor --hash-password PASSWORD
```

این به ما یه Hash میده که توی کانفیگ میزاریم تا هر وقت بخوایم به این پورت وصل شیم باید احراز هویت انجام بدیم.

برای مثال برای پسوورد 1234567890 به ما هش پایین رو میده:

`16:8F5720A8B5AA0FC3604CC029EE76A1035C86DF981AEAEEDEDDCA948AAC`

خب حالا بیایم این Hash رو توی کانفیگ بزاریم:

`HashedControlPassword 16:8F5720A8B5AA0FC3604CC029EE76A1035C86DF981AEAEEDEDDCA948AAC`

به همین سادگی.
