TINC.CONF(5) File Formats Manual TINC.CONF(5)

tinc.conf — پیکربندی دیمن tinc

پرونده‌های موجود در دایرکتوری /etc/tinc/ حاوی اطلاعات زمان اجرا و امنیتی برای دیمن tinc هستند.

اجرای بیش از یک دیمن tinc کاملاً مجاز و بدون مشکل است. با این حال، در حالت پیش‌فرض، خیلی زود متوجه خواهید شد که بدون گزینه -c نمی‌توانید از دو پرونده پیکربندی مختلف استفاده کنید.

ما به روش دیگری برای حل این موضوع فکر کرده‌ایم: نام‌های شبکه. این به این معناست که شما tinc.conf را با گزینه -n فراخوانی می‌کنید، که نامی را به این دیمن اختصاص می‌دهد.

اثر این کار این است که دیمن ریشه پیکربندی خود را روی /etc/tinc/NETNAME/ تنظیم می‌کند، جایی که NETNAME آرگومان شما به گزینه -n است. متوجه خواهید شد که پیام‌ها در syslog به عنوان پیامی از طرف tincd.NETNAME ظاهر می‌شوند.

با این حال، به طور اکید لازم نیست که tinc را با گزینه -n فراخوانی کنید. در این حالت، نام شبکه صرفاً خالی خواهد بود و به همین صورت استفاده می‌شود. اکنون tinc به دنبال پرونده‌ها در /etc/tinc/ می‌گردد، به جای /etc/tinc/NETNAME/ ؛ پرونده پیکربندی باید /etc/tinc/tinc.conf باشد، و پرونده‌های پیکربندی میزبان اکنون انتظار می‌رود در /etc/tinc/hosts/ باشند.

اما به شدت توصیه می‌شود از این قابلیت tinc استفاده کنید، زیرا بسیار شفاف‌تر خواهد بود که دیمن شما با چه کسی ارتباط برقرار می‌کند. بنابراین، ما فرض خواهیم کرد که از آن استفاده می‌کنید.

هر دیمن tinc باید نامی داشته باشد که در شبکه‌ای که بخشی از آن خواهد بود یکتا باشد. این نام توسط سایر دیمن‌های tinc برای شناسایی استفاده خواهد شد. نام باید در پرونده /etc/tinc/NETNAME/tinc.conf اعلام شود.

برای آسان‌تر شدن کارها، چیزی را انتخاب کنید که نام‌های یکتا و با قابلیت به‌خاطرسپاری آسان به دیمن(های) tinc شما بدهد. می‌توانید مواردی مانند نام‌های میزبان، نام خانوادگی مالک یا نام‌های مکان را امتحان کنید.

باید از دستور tincd -K برای تولید جفت‌کلیدهای عمومی/خصوصی استفاده کنید. این دستور دو کلید تولید خواهد کرد. کلید خصوصی باید در یک پرونده جداگانه ذخیره شود: /etc/tinc/NETNAME/rsa_key.priv -- که در آن NETNAME نشان‌دهنده شبکه است (به بخش شبکه‌ها (NETWORKS) در بالا مراجعه کنید). کلید عمومی باید در پرونده پیکربندی میزبان ذخیره شود: /etc/tinc/NETNAME/hosts/NAME -- که در آن NAME نشان‌دهنده نام دیمن محلی tinc است (به بخش نام‌ها (NAMES) مراجعه کنید).

پیکربندی سرور دیمن در پرونده /etc/tinc/NETNAME/tinc.conf انجام می‌شود. این پرونده شامل توضیحات (خطوطی که با # شروع می‌شوند) یا انتساب‌ها به صورت زیر است:

Variable = Value .

نام متغیرها به بزرگی و کوچکی حروف حساس نیستند، و هرگونه فاصله، تب، خط جدید و بازگشت به ابتدای خط نادیده گرفته می‌شوند. نکته: الزامی نیست که علامت = را قرار دهید، اما انجام این کار خوانایی را بهبود می‌بخشد. اگر آن را حذف می‌کنید، به یاد داشته باشید که حداقل یک نویسه فاصله به جای آن قرار دهید.

پیکربندی سرور با پیکربندی ویژه میزبان تکمیل می‌شود (بخش بعدی را ببینید). اگرچه تمام گزینه‌های پیکربندی برای میزبان محلی فهرست‌شده در این سند را می‌توان در /etc/tinc/NETNAME/tinc.conf نیز قرار داد، اما توصیه می‌شود گزینه‌های پیکربندی ویژه میزبان در پرونده پیکربندی میزبان قرار گیرند، زیرا این کار تبادل آن با سایر گره‌ها را آسان می‌کند.

در اینجا تمام متغیرهای معتبر به ترتیب حروف الفبا فهرست شده‌اند. مقدار پیش‌فرض در داخل پرانتز آورده شده است.

AddressFamily = ipv4 | | (any)
این گزینه بر خانواده نشانی سوکت‌های شنونده و خروجی تأثیر می‌گذارد. اگر "any" انتخاب شود، بسته به سیستم‌عامل هر دو سوکت شنونده IPv4 و IPv6 یا فقط سوکت‌های IPv6 ایجاد خواهند شد.
BindToAddress = address [port] [experimental]
اگر رایانه شما بیش از یک نشانی IPv4 یا IPv6 دارد، tinc به طور پیش‌فرض روی تمام آن‌ها برای اتصالات ورودی گوش فرا می‌دهد. می‌توان چندین متغیر BindToAddress را مشخص کرد، که در این صورت سوکت‌های شنونده برای هر نشانی مشخص‌شده ساخته می‌شوند.

اگر هیچ port مشخص نشود، سوکت به درگاه مشخص‌شده توسط گزینه Port یا در صورتی که هیچ‌کدام داده نشود به درگاه 655 متصل خواهد شد. برای اتصال فقط به یک درگاه خاص اما نه به یک نشانی خاص، از * برای address استفاده کنید.

این گزینه ممکن است در همه پلتفرم‌ها کار نکند.

BindToInterface = interface [experimental]
اگر رایانه شما بیش از یک رابط شبکه دارد، tinc به طور پیش‌فرض روی تمام آن‌ها برای اتصالات ورودی گوش می‌دهد. با این متغیر امکان اتصال تنها به یک رابط منفرد وجود دارد.

این گزینه ممکن است در همه پلتفرم‌ها کار نکند. همچنین، در برخی پلتفرم‌ها در واقع به یک رابط متصل نمی‌شود، بلکه به نشانی که رابط در لحظه ایجاد سوکت دارد متصل می‌شود.

Broadcast = no | | (mst) [experimental]
این گزینه روش ارسال بسته‌های برودکست به سایر دیمن‌ها را انتخاب می‌کند. نکته: تمام گره‌های یک VPN باید از یک حالت Broadcast مشابه استفاده کنند، در غیر این صورت حلقه‌های مسیریابی می‌توانند شکل بگیرند.
no
بسته‌های برودکست هرگز به گره‌های دیگر ارسال نمی‌شوند.
mst
بسته‌های برودکست از طریق درخت پوشای کمینه (Minimum Spanning Tree) مربوط به VPN ارسال و فوروارد می‌شوند. این تضمین می‌کند که بسته‌های برودکست به تمام گره‌ها می‌رسند.
direct
بسته‌های برودکست مستقیماً به تمام گره‌هایی که می‌توان مستقیماً به آن‌ها رسید ارسال می‌شوند. بسته‌های برودکست دریافتی از گره‌های دیگر هرگز فوروارد نمی‌شوند. اگر گزینه IndirectData نیز تنظیم شده باشد، بسته‌های برودکست تنها به گره‌هایی ارسال می‌شوند که با آن‌ها اتصال متا داریم.
ConnectTo = name
مشخص می‌کند در زمان راه‌اندازی به کدام دیمن دیگر tinc متصل شود. می‌توان چندین متغیر ConnectTo را مشخص کرد، که در این صورت اتصالات خروجی به هر دیمن مشخص‌شده tinc برقرار می‌شود. نام‌ها باید برای این دیمن tinc شناخته‌شده باشند (یعنی باید یک پرونده پیکربندی میزبان برای نام موجود در خط ConnectTo وجود داشته باشد).

اگر میزبانی را با ConnectTo مشخص نکنید، tinc اصلاً تلاشی برای اتصال به سایر دیمن‌ها نخواهد کرد و در عوض صرفاً برای اتصالات ورودی گوش فرا می‌دهد.

DecrementTTL = yes | (no) [experimental]
در صورت فعال بودن، tinc فیلد زمان حیات (Time To Live) را در بسته‌های IPv4، یا فیلد محدودیت جهش (Hop Limit) را در بسته‌های IPv6، قبل از فوروارد بسته دریافتی به دستگاه شبکه مجازی یا به گره دیگر کاهش می‌دهد، و بسته‌هایی که مقدار TTL آن‌ها صفر است را دور می‌اندازد، که در این صورت یک بسته ICMP Time Exceeded به عقب ارسال می‌کند.

اگر از حالت switch استفاده می‌کنید و می‌خواهید از IPv6 استفاده نمایید، از این گزینه استفاده نکنید.

Device = device (/dev/tap0 ، /dev/net/tun یا موارد دیگر بسته به پلتفرم)
دستگاه شبکه مجازی برای استفاده. tinc به طور خودکار نوع دستگاه را تشخیص خواهد داد. توجه داشته باشید که به ازای هر دیمن فقط می‌توانید از یک دستگاه استفاده کنید. در ویندوز، به جای Device از Interface استفاده کنید. صفحات info بسته tinc حاوی اطلاعات بیشتری درباره پیکربندی دستگاه شبکه مجازی است.
DeviceType = type (وابسته به پلتفرم)
نوع دستگاه شبکه مجازی. برنامه Tinc معمولاً نوع رابط tun/tap مناسب را به طور خودکار انتخاب می‌کند، و این گزینه نباید استفاده شود. با این حال، این گزینه می‌تواند برای انتخاب یکی از انواع رابط‌های ویژه استفاده شود، در صورتی که پشتیبانی از آن‌ها کامپایل شده باشد.
dummy
استفاده از رابط ساختگی (dummy). هیچ بسته‌ای از یک دستگاه شبکه مجازی خوانده یا روی آن نوشته نمی‌شود. برای آزمایش یا هنگام راه‌اندازی گره‌ای که فقط بسته‌ها را برای سایر گره‌ها فوروارد می‌کند مفید است.
raw_socket
باز کردن یک سوکت خام، و اتصال آن به یک Interface از قبل موجود (پیش‌فرض eth0). تمام بسته‌ها از این رابط خوانده می‌شوند. بسته‌های دریافتی برای گره محلی در سوکت خام نوشته می‌شوند. با این حال، حداقل در لینوکس، سیستم‌عامل بسته‌های IP مقصد میزبان محلی را پردازش نمی‌کند.
multicast
باز کردن یک سوکت چندپخشی (multicast) UDP و اتصال آن به نشانی و درگاه (جداشده با فاصله) و به صورت اختیاری مقدار TTL مشخص‌شده با استفاده از Device . بسته‌ها از این سوکت چندپخشی خوانده و در آن نوشته می‌شوند. می‌توان از این گزینه برای اتصال به نمونه‌های UML، QEMU یا KVM که روی همان نشانی چندپخشی گوش می‌دهند استفاده کرد. چندین دیمن tinc را به یک نشانی چندپخشی یکسان متصل نکنید، این کار به احتمال زیاد باعث ایجاد حلقه‌های مسیریابی خواهد شد. همچنین توجه داشته باشید که در صورت پیکربندی نادرست، این می‌تواند باعث ارسال بسته‌های رمزگشایی‌شده VPN در یک شبکه واقعی شود.
uml (به طور پیش‌فرض کامپایل نشده است)
ایجاد یک سوکت یونیکس با نام پرونده مشخص‌شده توسط Device ، یا /var/run/NETNAME.umlsocket در صورت عدم تعیین. tinc منتظر اتصال یک نمونه User Mode Linux به این سوکت خواهد ماند.
vde (به طور پیش‌فرض کامپایل نشده است)
استفاده از کتابخانه libvdeplug برای اتصال به یک سوییچ Virtual Distributed Ethernet، با استفاده از سوکت یونیکس مشخص‌شده توسط Device ، یا /var/run/vde.ctl در صورت عدم تعیین.
همچنین، در صورتی که به نظر برسد tinc بسته‌های دریافتی از دستگاه شبکه مجازی را به درستی تفسیر نمی‌کند، می‌توان از آن برای تغییر نحوه تفسیر بسته‌ها استفاده کرد:
tun (در BSD و لینوکس)
تنظیم نوع روی tun. بسته به پلتفرم، این می‌تواند با یا بدون سرآیند خانواده نشانی باشد (به زیر مراجعه کنید).
tunnohead (در BSD)
تنظیم نوع روی tun بدون سرآیند خانواده نشانی. برنامه Tinc انتظار خواهد داشت بسته‌های خوانده‌شده از دستگاه شبکه مجازی با یک سرآیند IP شروع شوند. در برخی پلتفرم‌ها در این حالت نمی‌توان بسته‌های IPv6 را از دستگاه خواند یا روی آن نوشت.
tunifhead (در BSD)
تنظیم نوع روی tun با سرآیند خانواده نشانی. برنامه Tinc انتظار خواهد داشت بسته‌های خوانده‌شده از دستگاه شبکه مجازی با یک سرآیند چهار بایتی حاوی خانواده نشانی شروع شوند، و به دنبال آن یک سرآیند IP بیاید. این حالت باید از هر دو بسته‌های IPv4 و IPv6 پشتیبانی کند.
utun (در OS X)
تنظیم نوع روی utun. این فقط در نسخه 10.6.8 و بالاتر OS X پشتیبانی می‌شود، اما نیازی به ماژول tuntaposx ندارد. این حالت باید از هر دو بسته‌های IPv4 و IPv6 پشتیبانی کند.
tap (در BSD و لینوکس)
تنظیم نوع روی tap. برنامه Tinc انتظار خواهد داشت بسته‌های خوانده‌شده از دستگاه شبکه مجازی با یک سرآیند اترنت شروع شوند.
DirectOnly = yes | (no) [experimental]
هنگامی که این گزینه فعال است، بسته‌هایی که نمی‌توانند مستقیماً به گره مقصد ارسال شوند، بلکه باید توسط یک گره میانی فوروارد شوند، دور ریخته می‌شوند. هنگامی که با گزینه IndirectData ترکیب شود، بسته‌ها برای گره‌هایی که با آن‌ها اتصال متا نداریم نیز دور ریخته می‌شوند.
Forwarding = off | | (internal) [experimental]
این گزینه روش فوروارد بسته‌های غیرمستقیم را انتخاب می‌کند.
off
بسته‌های ورودی که برای گره محلی در نظر گرفته نشده‌اند، اما باید به گره دیگری فوروارد شوند، دور ریخته می‌شوند.
internal
بسته‌های ورودی که برای گره دیگری در نظر گرفته شده‌اند به طور داخلی توسط tinc فوروارد می‌شوند.

این حالت پیش‌فرض است، و مگر اینکه واقعاً بدانید که به حالت فوروارد دیگری نیاز دارید، آن را تغییر ندهید.

kernel
بسته‌های ورودی همیشه به دستگاه TUN/TAP ارسال می‌شوند، حتی اگر بسته‌ها برای گره محلی نباشند. این کار کارایی کمتری دارد، اما به هسته اجازه می‌دهد قوانین مسیریابی و فایروال خود را روی آن‌ها اعمال کند، و همچنین می‌تواند به اشکال‌زدایی کمک نماید.
GraphDumpFile = filename [experimental]
اگر این گزینه وجود داشته باشد، tinc گراف شبکه جاری را هر دقیقه در پرونده filename تخلیه می‌کند، مگر اینکه تغییری در گراف رخ نداده باشد. این پرونده قالبی دارد که توسط ابزارهای graphviz قابل خواندن است. اگر filename با نماد پایپ | شروع شود، بقیه نام پرونده به عنوان یک دستور شل تفسیر می‌شود که اجرا شده و سپس گراف به ورودی استاندارد ارسال می‌گردد.
Hostnames = yes | (no)
این گزینه انتخاب می‌کند که آیا نشانی‌های IP (چه واقعی و چه روی VPN) باید تفکیک (resolve) شوند یا خیر. از آنجا که جستجوهای DNS مسدودکننده هستند، ممکن است بر کارایی tinc تأثیر بگذارد، حتی در صورتی که سرور DNS شما پاسخ ندهد، هر بار که جستجویی انجام می‌دهد دیمن را برای چند ثانیه متوقف می‌کند.

این بر تفکیک نام‌های میزبان به نشانی‌های IP از پرونده‌های پیکربندی میزبان تأثیری ندارد، بلکه بر این موضوع تأثیر می‌گذارد که آیا نام‌های میزبان در حین ثبت وقایع باید تفکیک شوند یا خیر.

IffOneQueue = yes | (no) [experimental]
(فقط لینوکس) پرچم IFF_ONE_QUEUE را روی دستگاه‌های TUN/TAP تنظیم می‌کند.
Interface = interface
نام رابط مربوط به دستگاه شبکه مجازی را تعریف می‌کند. بسته به سیستم‌عامل و نوع دستگاه، این گزینه ممکن است نام رابط را تنظیم کند یا نکند. در ویندوز، این متغیر برای انتخاب اینکه کدام رابط شبکه استفاده خواهد شد به کار می‌رود. اگر یک Device مشخص کرده باشید، این متغیر تقریباً همیشه از قبل به درستی تنظیم شده است.
KeyExpire = seconds (3600)
این گزینه دوره‌ای را کنترل می‌کند که کلیدهای رمزنگاری مورد استفاده برای رمزنگاری داده‌ها معتبر هستند. این یک عمل مرسوم است که کلیدها را در فواصل منظم تغییر دهند تا کار برای نفوذگران حتی سخت‌تر شود، هرچند که شکستن یک کلید منفرد تقریباً غیرممکن پنداشته می‌شود.
LocalDiscovery = yes | (no) [experimental]
در صورت فعال بودن، tinc تلاش خواهد کرد همتایانی را که در همان شبکه محلی هستند شناسایی کند. این امر اجازه ارتباط مستقیم با استفاده از نشانی‌های LAN را می‌دهد، حتی اگر هر دو همتا پشت یک NAT باشند و آن‌ها تنها به یک گره سوم در خارج از NAT متصل (ConnectTo) شوند، که معمولاً مانع از اطلاع همتایان از نشانی LAN یکدیگر می‌شود.

در حال حاضر، کشف محلی با ارسال بسته‌های برودکست به LAN در طول کشف MTU مسیر پیاده‌سازی شده است. این ویژگی ممکن است در تمام شرایط ممکن کار نکند.

MACExpire = seconds (600)
این گزینه مدت زمانی را کنترل می‌کند که نشانی‌های MAC قبل از حذف شدن نگهداری می‌شوند. این گزینه تنها زمانی اثر دارد که Mode روی "switch" تنظیم شده باشد.
MaxTimeout = seconds (900)
این حداکثر تأخیر قبل از تلاش برای اتصال مجدد به سایر دیمن‌های tinc است.
Mode = router | | (router)
این گزینه روش مسیریابی بسته‌ها به سایر دیمن‌ها را انتخاب می‌کند.
router
در این حالت، متغیرهای Subnet در پرونده‌های پیکربندی میزبان برای تشکیل جدول مسیریابی استفاده خواهند شد. در این حالت تنها بسته‌های یونیکست پروتکل‌های قابل مسیریابی (IPv4 و IPv6) پشتیبانی می‌شوند.

این حالت پیش‌فرض است، و مگر اینکه واقعاً بدانید به حالت دیگری نیاز دارید، آن را تغییر ندهید.

switch
در این حالت نشانی‌های MAC بسته‌ها روی VPN برای ایجاد پویای جدول مسیریابی درست مانند عملکرد یک سوییچ اترنت استفاده خواهند شد. بسته‌های یونیکست، چندپخشی و برودکست از هر پروتکلی که روی اترنت اجرا می‌شود در این حالت پشتیبانی می‌شوند به بهای درخواست‌های مکرر برودکست ARP و به‌روزرسانی‌های جدول مسیریابی.

این حالت عمدتاً زمانی مفید است که بخواهید بخش‌های اترنت را پل‌بندی (bridge) کنید.

hub
این حالت تقریباً همانند حالت switch است، اما در عوض هر بسته‌ای به سایر دیمن‌ها برودکست می‌شود در حالی که هیچ جدول مسیریابی مدیریت نمی‌شود.
Name = name [required]
این نامی است که این دیمن tinc را مشخص می‌کند. این نام باید برای شبکه خصوصی مجازی که این دیمن به آن متصل می‌شود یکتا باشد. نام تنها ممکن است شامل نویسه‌های الفبایی-عددی و زیرخط (underscore) باشد. اگر Name با یک $ شروع شود، محتوای متغیر محیطی که به دنبال آن می‌آید استفاده خواهد شد. در این حالت، نویسه‌های نامعتبر به زیرخط تبدیل خواهند شد. اگر Name برابر با $HOST باشد، اما چنین متغیر محیطی وجود نداشته باشد، نام میزبان با استفاده از فراخوانی سیستمی gethostname() خوانده خواهد شد.
PingInterval = seconds (60)
تعداد ثانیه‌های عدم فعالیتی که tinc قبل از ارسال یک کاوشگر (probe) به طرف دیگر منتظر خواهد ماند.
PingTimeout = seconds (5)
تعداد ثانیه‌های انتظار برای پاسخ به پینگ‌ها یا اجازه به مسدود شدن اتصالات متا. اگر طرف مقابل در این مدت پاسخ ندهد، اتصال خاتمه می‌یابد و به دیگران در این مورد اطلاع داده خواهد شد.
PriorityInheritance = yes | (no) [experimental]
هنگامی که این گزینه فعال است، مقدار فیلد TOS بسته‌های تونل‌شده IPv4 توسط بسته‌های UDP که به بیرون ارسال می‌شوند به ارث برده خواهد شد.
PrivateKey = key [obsolete]
کلید خصوصی RSA این دیمن tinc. این کلید به این دیمن tinc اجازه می‌دهد هویت خود را برای سایر دیمن‌ها احراز کند.
PrivateKeyFile = filename (/etc/tinc/NETNAME/rsa_key.priv)
پرونده‌ای که کلید خصوصی RSA این دیمن tinc در آن قرار دارد.
ProcessPriority = low | |
هنگامی که این گزینه استفاده می‌شود، اولویت فرآیند tincd تنظیم خواهد شد. افزایش اولویت ممکن است به کاهش تأخیر و افت بسته در VPN کمک کند.
Proxy = socks4 | | | ... [experimental]
استفاده از یک پروکسی هنگام برقراری اتصالات خروجی. انواع پروکسی زیر در حال حاضر پشتیبانی می‌شوند:
socks4 address port [username]
اتصال به پروکسی با استفاده از پروتکل SOCKS نسخه 4. به صورت اختیاری، می‌توان یک username ارائه داد که به سرور پروکسی منتقل می‌شود. تنها اتصالات IPv4 را می‌توان با استفاده از SOCKS 4 پروکسی کرد.
socks5 address port [username password]
اتصال به پروکسی با استفاده از پروتکل SOCKS نسخه 5. اگر username و password داده شوند، احراز هویت اولیه نام کاربری/گذرواژه استفاده خواهد شد، در غیر این صورت هیچ احراز هویتی استفاده نخواهد شد.
http address port
اتصال به پروکسی و ارسال درخواست HTTP CONNECT.
exec command
دستور داده‌شده command را اجرا می‌کند که باید اتصال خروجی را برقرار سازد. متغیرهای محیطی NAME ، NODE ، REMOTEADDRES و REMOTEPORT در دسترس هستند.
ReplayWindow = bytes (16)
این اندازه پنجره ردیابی بازپخش (replay) برای هر گره راه دور، بر حسب بایت است. پنجره یک میدان بیتی است که 1 بسته در هر بیت را ردیابی می‌کند، بنابراین برای مثال تنظیم پیش‌فرض 16 تا 128 بسته را در پنجره ردیابی می‌کند. در سناریوهای پهنای باند بالا، تنظیم این مقدار روی عدد بالاتر می‌تواند افت بسته ناشی از تعامل ردیابی بازپخش با افت واقعی بسته‌ها و/یا تغییر ترتیب آن‌ها را کاهش دهد. تنظیم این مقدار روی صفر، ردیابی بازپخش را به طور کامل غیرفعال کرده و تمام ترافیک را عبور می‌دهد، اما tinc را در برابر حملات مبتنی بر بازپخش روی ترافیک شما آسیب‌پذیر می‌کند.
StrictSubnets = yes | (no) [experimental]
هنگامی که این گزینه فعال است، tinc تنها از عبارات Subnet استفاده خواهد کرد که در پرونده‌های پیکربندی میزبان در دایرکتوری محلی /etc/tinc/NETNAME/hosts/ حضور دارند. زیرشبکه‌های آموخته‌شده از طریق اتصالات به سایر گره‌ها که در پرونده‌های پیکربندی میزبان محلی حضور ندارند نادیده گرفته می‌شوند.
TunnelServer = yes | (no) [experimental]
هنگامی که این گزینه فعال است، tinc دیگر اطلاعات را بین سایر دیمن‌های tinc فوروارد نخواهد کرد، و تنها اتصالات با گره‌هایی را مجاز می‌داند که پرونده‌های پیکربندی میزبان آن‌ها در دایرکتوری محلی /etc/tinc/NETNAME/hosts/ موجود باشد. تنظیم این گزینه همچنین به طور ضمنی StrictSubnets را تنظیم می‌کند.
UDPRcvBuf = bytes (پیش‌فرض سیستم‌عامل)
اندازه بافر دریافت سوکت را برای سوکت UDP بر حسب بایت تنظیم می‌کند. در صورت عدم تنظیم، اندازه بافر پیش‌فرض توسط سیستم‌عامل استفاده خواهد شد.
UDPSndBuf = bytes (پیش‌فرض سیستم‌عامل)
اندازه بافر ارسال سوکت را برای سوکت UDP بر حسب بایت تنظیم می‌کند. در صورت عدم تنظیم، اندازه بافر پیش‌فرض توسط سیستم‌عامل استفاده خواهد شد.

پرونده‌های پیکربندی میزبان حاوی تمام اطلاعات مورد نیاز برای برقراری اتصال به آن میزبان‌ها هستند. یک پرونده پیکربندی میزبان برای دیمن محلی tinc نیز لازم است، که از آن برای خواندن درگاه شنونده، کلید عمومی و زیرشبکه‌های خود استفاده خواهد کرد.

ایده این است که این پرونده‌ها قابل حمل هستند. شما می‌توانید با اطمینان پرونده پیکربندی میزبان خود را برای شخص دیگری ایمیل کنید. آن شخص دیگر می‌تواند آن را در دایرکتوری hosts خود کپی کند، و اکنون دیمن tinc او قادر خواهد بود به دیمن tinc شما متصل شود. از آنجا که پرونده‌های پیکربندی میزبان تنها حاوی کلیدهای عمومی هستند، هیچ رازی با ارسال این اطلاعات فاش نمی‌شود.

Address = address [port] [recommended]
نشانی IP یا نام میزبان این دیمن tinc در شبکه واقعی. این مورد تنها زمانی استفاده خواهد شد که تلاش برای برقراری یک اتصال خروجی به این دیمن tinc صورت گیرد. به صورت اختیاری، می‌توان درگاهی را برای استفاده در این نشانی مشخص کرد. می‌توان چندین متغیر Address را مشخص کرد، که در این صورت هر نشانی تا زمان برقراری یک اتصال فعال امتحان خواهد شد.
Cipher = cipher (aes-256-cbc)
الگوریتم رمز متقارن مورد استفاده برای رمزنگاری بسته‌های UDP. هر رمزی که توسط LibreSSL یا OpenSSL پشتیبانی شود شناسایی می‌گردد. علاوه بر این، مشخص کردن "none" رمزنگاری بسته‌ها را خاموش خواهد کرد. بهتر است تنها از رمزهایی استفاده شود که از حالت CBC پشتیبانی می‌کنند.
ClampMSS = yes | (yes)
این گزینه مشخص می‌کند که آیا tinc باید حداکثر اندازه قطعه (MSS) بسته‌های TCP را به اندازه MTU مسیر مهار (clamp) کند یا خیر. این گزینه در شرایطی کمک می‌کند که پیام‌های ICMP Fragmentation Needed یا Packet too Big توسط فایروال‌ها دور ریخته می‌شوند.
Compression = level (0)
این گزینه سطح فشرده‌سازی مورد استفاده برای بسته‌های UDP را تنظیم می‌کند. مقادیر ممکن عبارتند از 0 (خاموش)، 1 (zlib سریع) و هر عدد صحیحی تا 9 (بهترین zlib)، 10 (lzo سریع) و 11 (بهترین lzo).
Digest = digest (sha256)
الگوریتم چکیده (digest) مورد استفاده برای احراز اصالت بسته‌های UDP. هر چکیده‌ای که توسط LibreSSL یا OpenSSL پشتیبانی شود شناسایی می‌گردد. علاوه بر این، مشخص کردن "none" احراز اصالت بسته‌ها را خاموش خواهد کرد.
IndirectData = yes | (no)
هنگامی که روی yes تنظیم شود، تنها گره‌هایی که از قبل یک اتصال متا با شما دارند تلاش خواهند کرد ارتباط مستقیم با شما برقرار سازند. بهتر است این گزینه حذف شود یا روی no تنظیم گردد.
MACLength = length (4)
طول کد احراز اصالت پیام (MAC) مورد استفاده برای احراز اصالت بسته‌های UDP. می‌تواند هر مقداری از "0" تا طول چکیده تولیدشده توسط الگوریتم چکیده باشد.
PMTU = mtu (1514)
این گزینه مقدار اولیه MTU مسیر به این گره را کنترل می‌کند.
PMTUDiscovery = yes | (yes)
هنگامی که این گزینه فعال است، tinc تلاش خواهد کرد MTU مسیر به این گره را کشف کند. پس از کشف MTU مسیر، روی VPN اعمال خواهد شد.
Port = port (655)
شماره درگاهی که این دیمن tinc روی آن برای اتصالات ورودی گوش فرا می‌دهد، که در صورت عدم تعیین شماره درگاه در یک عبارت Address استفاده می‌شود.
PublicKey = key [obsolete]
کلید عمومی RSA این دیمن tinc. برای بررسی رمزنوشتی هویت آن و برقراری یک اتصال امن استفاده خواهد شد.
PublicKeyFile = filename [obsolete]
پرونده‌ای که کلید عمومی RSA این دیمن tinc در آن قرار دارد.

از نسخه 1.0pre4 به بعد، tinc کلید عمومی را مستقیماً در پرونده پیکربندی میزبان در قالب PEM ذخیره می‌کند، و دو گزینه بالا در این صورت ضروری نیستند. یا باید از قالب PEM استفاده شود، یا دقیقاً یکی از دو گزینه بالا در هر پرونده پیکربندی میزبان مشخص گردد، در صورتی که می‌خواهید بتوانید با آن میزبان اتصال برقرار کنید.

Subnet = address[/prefixlength[#weight]]
زیرشبکه‌ای که این دیمن tinc به آن سرویس خواهد داد. برنامه tinc با جستجوی زیرشبکه مناسب تلاش می‌کند بیابد که بسته را به کدام دیمن دیگر باید ارسال کند. اگر بسته با یک زیرشبکه مطابقت داشته باشد، به دیمنی ارسال می‌شود که این زیرشبکه را در پرونده پیکربندی میزبان خود دارد. می‌توان چندین متغیر Subnet را مشخص کرد.

زیرشبکه‌ها می‌توانند نشانی‌های منفرد MAC، IPv4 یا IPv6 باشند، که در این صورت زیرشبکه‌ای شامل تنها همان نشانی منفرد فرض می‌شود، یا می‌توانند یک نشانی شبکه IPv4 یا IPv6 با طول پیشوند باشند. برای مثال، زیرشبکه‌های IPv4 باید به شکلی مانند 192.168.1.0/24 باشند، که در آن 192.168.1.0 نشانی شبکه و 24 تعداد بیت‌های تنظیم‌شده در ماسک شبکه است. توجه داشته باشید که زیرشبکه‌هایی مانند 192.168.1.1/24 نامعتبر هستند! اگر این موضوع را متوجه نمی‌شوید یک راهنمای شبکه را مطالعه فرمایید. زیرشبکه‌های IPv6 به صورت fec0:0:0:1::/64 نشان داده می‌شوند. نشانی‌های MAC به صورت 0:1a:2b:3c:4d:5e نشان داده می‌شوند.

می‌توان به یک زیرشبکه وزنی اختصاص داد تا اولویت آن نسبت به زیرشبکه‌های یکسان متعلق به گره‌های مختلف مشخص شود. وزن پیش‌فرض 10 است. مقادیر کمتر اولویت بالاتری را نشان می‌دهند. بسته‌ها به گره با بالاترین اولویت ارسال خواهند شد، مگر اینکه آن گره در دسترس نباشد، که در این صورت گره با اولویت بالاتر بعدی امتحان خواهد شد، و الی آخر.

TCPOnly = yes | (no [obsolete])
اگر این متغیر روی yes تنظیم شود، بسته‌ها به جای اتصال UDP روی اتصال TCP تونل می‌شوند. این گزینه به ویژه برای کسانی مفید است که می‌خواهند دیمن tinc را از پشت یک فایروال با ترجمه نشانی (masquerading) اجرا کنند، یا اگر مسیریابی بسته‌های UDP به نوعی غیرفعال شده باشد. تنظیم این گزینه همچنین به طور ضمنی IndirectData را تنظیم می‌کند.

از نسخه 1.0.10 به بعد، tinc به طور خودکار تشخیص می‌دهد که آیا ارتباط از طریق UDP امکان‌پذیر است یا خیر.

علاوه بر خواندن پرونده‌های پیکربندی سرور و میزبان، tinc همچنین می‌تواند اسکریپت‌هایی را در لحظات خاصی اجرا کند. در زیر فهرستی از نام پرونده‌های اسکریپت‌ها و شرح زمان اجرای آن‌ها آمده است. یک اسکریپت تنها در صورتی اجرا می‌شود که وجود داشته باشد و قابل اجرا باشد.

اسکریپت‌ها به صورت همگام اجرا می‌شوند؛ این بدان معناست که tinc موقتاً پردازش بسته‌ها را متوقف می‌کند تا زمانی که اجرای اسکریپت فراخوانی‌شده به پایان برسد. این امر تضمین می‌کند که اسکریپت‌ها دقیقاً به همان ترتیبی اجرا می‌شوند که رویدادهای محرک آن‌ها رخ می‌دهند. اگر نیاز به اجرای ناهمگام دستورات دارید، خودتان باید مطمئن شوید که آن‌ها در پس‌زمینه اجرا می‌شوند.

در ویندوز (به غیر از Cygwin)، اسکریپت‌ها باید پسوند .bat داشته باشند.

/etc/tinc/NETNAME/tinc-up
این مهم‌ترین اسکریپت است. اگر وجود داشته باشد، بلافاصله پس از شروع به کار دیمن tinc و اتصال به دستگاه شبکه مجازی اجرا خواهد شد. باید برای راه‌اندازی رابط شبکه مربوطه استفاده شود، اما می‌تواند برای شروع موارد دیگر نیز به کار رود.

در ویندوز می‌توانید به جای ایجاد این اسکریپت از کنترل پنل Network Connections استفاده کنید.

/etc/tinc/NETNAME/tinc-down
این اسکریپت درست قبل از خروج دیمن tinc شروع می‌شود.
/etc/tinc/NETNAME/hosts/HOST-up
این اسکریپت زمانی شروع می‌شود که دیمن tinc با نام HOST در دسترس قرار می‌گیرد.
/etc/tinc/NETNAME/hosts/HOST-down
این اسکریپت زمانی شروع می‌شود که دیمن tinc با نام HOST از دسترس خارج می‌شود.
/etc/tinc/NETNAME/host-up
این اسکریپت زمانی شروع می‌شود که هر میزبانی در دسترس قرار می‌گیرد.
/etc/tinc/NETNAME/host-down
این اسکریپت زمانی شروع می‌شود که هر میزبانی از دسترس خارج می‌شود.
/etc/tinc/NETNAME/subnet-up
این اسکریپت زمانی شروع می‌شود که یک زیرشبکه در دسترس قرار می‌گیرد. زیرشبکه و گره‌ای که به آن تعلق دارد در متغیرهای محیطی منتقل می‌شوند.
/etc/tinc/NETNAME/subnet-down
این اسکریپت زمانی شروع می‌شود که یک زیرشبکه از دسترس خارج می‌شود.

اسکریپت‌ها بدون آرگومان‌های خط فرمان شروع می‌شوند، اما می‌توانند از متغیرهای محیطی خاصی استفاده کنند. در سیستم‌عامل‌های شبه‌یونیکس، نام متغیرهای محیطی در اسکریپت‌ها باید با یک $ همراه باشد. در ویندوز، در پرونده‌های .bat ، آن‌ها باید بین علامت‌های % قرار گیرند.

اگر نام شبکه‌ای مشخص شده باشد، این متغیر محیطی حاوی آن است.
حاوی نام این دیمن tinc است.
حاوی نام دستگاه شبکه مجازی است که tinc استفاده می‌کند.
حاوی نام رابط شبکه مجازی است که tinc استفاده می‌کند. باید برای دستوراتی مانند ifconfig استفاده شود.
هنگامی که یک میزبان در دسترس یا از دسترس خارج می‌شود، روی نام آن تنظیم می‌شود. اگر یک زیرشبکه در دسترس یا از دسترس خارج شود، روی مالک آن زیرشبکه تنظیم می‌گردد.
هنگامی که یک میزبان در دسترس یا از دسترس خارج می‌شود، روی نشانی واقعی آن تنظیم می‌گردد.
هنگامی که یک میزبان در دسترس یا از دسترس خارج می‌شود، روی شماره درگاهی تنظیم می‌شود که برای ارتباط با سایر دیمن‌های tinc استفاده می‌کند.
هنگامی که یک زیرشبکه در دسترس یا از دسترس خارج می‌شود، روی آن زیرشبکه تنظیم می‌گردد.
هنگامی که یک زیرشبکه در دسترس یا از دسترس خارج می‌شود، روی وزن زیرشبکه تنظیم می‌گردد.

فراموش نکنید که در سیستم‌عامل‌های یونیکس، باید اسکریپت‌ها را با استفاده از دستور chmod a+x script قابل اجرا کنید.

مهم‌ترین پرونده‌ها عبارتند از:

/etc/tinc/
دایرکتوری اصلی برای پرونده‌های پیکربندی.
/etc/tinc/NETNAME/tinc.conf
نام پیش‌فرض پرونده پیکربندی سرور برای شبکه NETNAME .
/etc/tinc/NETNAME/conf.d/
دایرکتوری اختیاری که هر پرونده *.conf از آن بارگذاری خواهد شد.
/etc/tinc/NETNAME/hosts/
پرونده‌های پیکربندی میزبان در این دایرکتوری نگهداری می‌شوند.
/etc/tinc/NETNAME/tinc-up
اگر پرونده‌ای قابل اجرا با این نام وجود داشته باشد، بلافاصله پس از اتصال دیمن tinc به دستگاه شبکه مجازی اجرا خواهد شد. می‌توان از آن برای راه‌اندازی رابط شبکه مربوطه استفاده کرد.
/etc/tinc/NETNAME/tinc-down
اگر پرونده‌ای قابل اجرا با این نام وجود داشته باشد، درست قبل از اینکه دیمن tinc اتصال خود را به دستگاه شبکه مجازی ببندد اجرا خواهد شد.

tincd(8), https://www.tinc-vpn.org, http://www.tldp.org/LDP/nag2 .

مستندات کامل tinc به صورت یک راهنمای Texinfo نگهداری می‌شود. اگر برنامه‌های info و tinc به درستی در سیستم شما نصب شده باشند، دستور info tinc باید دسترسی به راهنمای کامل را برای شما فراهم کند.

نرم‌افزار tinc کاملاً بدون هیچ‌گونه ضمانتی ارائه می‌شود. این یک نرم‌افزار آزاد است و شما مجاز به توزیع مجدد آن تحت شرایط خاصی هستید؛ برای جزئیات به پرونده COPYING مراجعه فرمایید.

2016-10-29