🚀 راهاندازی و مدیریت سرور dnstt با یک کلیک
اسکریپت جامع اتوماسیون برای راهاندازی و مدیریت سرورهای تونل DNS dnstt روی سیستمهای لینوکس. این اسکریپت همه چیز از نصب تا پیکربندی را انجام میدهد و راهاندازی تونل DNS را بدون دردسر میکند.
قبل از استفاده از این اسکریپت، باید رکوردهای DNS دامنه خود را به درستی پیکربندی کنید. در اینجا راهاندازی مورد نیاز آمده است:
- نام دامنه شما:
example.com - آدرس IPv4 سرور شما:
203.0.113.2 - آدرس IPv6 سرور شما:
2001:db8::2(اختیاری) - زیردامنه تونل:
t.example.com - نام سرور:
tns.example.com
وارد پنل پیکربندی ثبتکننده دامنه خود شوید و این رکوردها را اضافه کنید:
| نوع | نام | اشاره به |
|---|---|---|
| A | tns.example.com |
203.0.113.2 |
| AAAA | tns.example.com |
2001:db8::2 (اگر IPv6 در دسترس باشد) |
| NS | t.example.com |
tns.example.com |
مهم: منتظر انتشار DNS بمانید (ممکن است تا 24 ساعت طول بکشد) قبل از تست تونل خود.
- پشتیبانی از همه توزیعهای رایج: Fedora، Rocky Linux، CentOS، Debian، Ubuntu
- منوی مدیریت: رابط کاربری آسان برای همه عملیات
- قابلیت خودبروزرسانی: مکانیزم بروزرسانی داخلی برای اسکریپت
- تشخیص خودکار: تشخیص OS، معماری و پورت SSH
- یکپارچگی با systemd: ایجاد و مدیریت سرویس اختصاصی systemd برای عملکرد پایدار، راهاندازی خودکار در هنگام بوت و ثبت لاگهای جامع
- امنیت: اجرای سرویس غیر root با ویژگیهای امنیتی systemd
- پیکربندی هوشمند: تنظیمات پایدار و استفاده مجدد خودکار از کلیدها
- تونل انعطافپذیر: حالت SSH یا حالت پروکسی SOCKS
- تنظیمات شبکه: پیکربندی خودکار firewall و iptables
- تأیید باینری: اعتبارسنجی checksum های MD5، SHA1 و SHA256
- باینریهای رسمی: دانلود از dnstt.network
- سرور لینوکس (Fedora، Rocky، CentOS، Debian یا Ubuntu)
- دسترسی root یا مجوزهای sudo
- اتصال اینترنت برای دانلود بستهها
- نام دامنه با پیکربندی مناسب DNS (بخش راهاندازی دامنه DNS بالا را ببینید)
نصب با یک دستور:
bash <(curl -Ls https://raw.githubusercontent.com/bugfloyd/dnstt-deploy/main/dnstt-deploy.sh)این دستور موارد زیر را انجام خواهد داد:
- دانلود و نصب اسکریپت در
/usr/local/bin/dnstt-deploy - شروع فرآیند راهاندازی تعاملی
- پیکربندی خودکار سرور dnstt شما
پس از نصب، میتوانید سرور dnstt خود را با استفاده از دستور نصب شده مدیریت کنید:
dnstt-deployاین دستور منوی تعاملی با گزینههای زیر را نشان میدهد:
- نصب/پیکربندی مجدد سرور dnstt - راهاندازی یا تغییر پیکربندی
- بروزرسانی اسکریپت dnstt-deploy - بررسی و نصب بروزرسانیهای اسکریپت
- بررسی وضعیت سرویس - مشاهده وضعیت فعلی سرویس
- مشاهده لاگهای سرویس - نظارت بر لاگهای real-time (Ctrl+C برای خروج)
- خروج - خروج از منو
در طول راهاندازی (گزینه 1)، از شما خواسته میشود:
- زیردامنه nameserver (مثل
t.example.com) - مقدار MTU (پیشفرض: 1232)
- حالت تونل (SSH یا SOCKS)
حالت SOCKS (گزینه 1)
- پروکسی SOCKS5 یکپارچه Dante را راهاندازی میکند
- روی
127.0.0.1:1080گوش میدهد - پورت پروکسی ساکس را به سمت کلانیتهای متصل شده به تونل فوروارد می کند
حالت SSH (گزینه 2)
- پورت SSH را به طور خودکار تشخیص میدهد (پیشفرض: 22)
- عالی برای دسترسی shell امن از طریق DNS
- سازگار با اپلیکیشنهای موبایل
- پورت اتصال SSH سرور را به سمت کلانیتهای متصل شده به تونل فوروارد می کند
- پیشفرض: 1232 بایت
- محدوده: 512-1400 بایت
- مقادیر توصیه شده:
- شبکههای پایدار/سریع: 1400
- شبکههای استاندارد: 1232
- شبکههای ناپایدار/کند: 1200
- شبکههای موبایل محدود: 512
برای تغییر MTU یا سایر تنظیمات:
dnstt-deployرا اجرا کنید- گزینه 1 (نصب/پیکربندی مجدد سرور dnstt) را انتخاب کنید
- مقادیر جدید را هنگام درخواست وارد کنید
اسکریپت به طور خودکار پیکربندی را بروزرسانی کرده و سرویسها را مجدداً راهاندازی میکند.
باینری مناسب کلاینت dnstt را برای پلتفرم خود از dnstt.network دانلود کنید:
پلتفرمهای رایج:
- Linux x64:
dnstt-client-linux-amd64 - Windows x64:
dnstt-client-windows-amd64.exe - macOS Intel:
dnstt-client-darwin-amd64 - macOS Apple Silicon:
dnstt-client-darwin-arm64
بعد از راهاندازی سرور، کلید عمومی دریافت خواهید کرد. از آن برای اتصال استفاده کنید:
dnstt-client -udp DNS_SERVER_IP:53 -pubkey-file server.pub t.example.com 127.0.0.1:7000IP سرور DNS بستگی به سیستم شما دارد:
Linux:
systemd-resolve --status | grep "DNS Servers"گزینههای رایج: 127.0.0.53:53، 127.0.0.1:53 یا IP روتر شما
Windows:
ipconfig /all | findstr /C:"DNS Servers"macOS:
scutil --dns | grep nameserverهمچنین میتوانید از موارد زیر استفاده کنید:
- IP داخلی روتر/مودم شما (مثل
192.168.1.1:53) - IP سرور DNS ارائهدهنده اینترنت شما
- سرورهای DNS عمومی مثل
8.8.8.8:53یا1.1.1.1:53(در صورت در دسترس بودن)
برای تونلهای SSH، میتوانید از این اپلیکیشنهای Android/iOS بدون نیاز به کامپیوتر استفاده کنید:
Android:
iOS:
آسانترین راه برای مدیریت سرور dnstt شما از طریق منوی تعاملی است:
dnstt-deployاین دستور دسترسی سریع به موارد زیر فراهم میکند:
- پیکربندی مجدد سرور
- بروزرسانی اسکریپت
- نظارت بر وضعیت سرویس
- مشاهده لاگهای real-time
/usr/local/bin/dnstt-deploy # اسکریپت مدیریت
/usr/local/bin/dnstt-server # باینری اصلی
/etc/dnstt/ # دایرکتوری پیکربندی
├── dnstt-server.conf # پیکربندی اصلی
├── {domain}_server.key # کلید خصوصی (برای هر دامنه)
└── {domain}_server.pub # کلید عمومی (برای هر دامنه)
/etc/systemd/system/dnstt-server.service # سرویس systemd
اگر مدیریت خط فرمان را ترجیح میدهید:
سرویس dnstt-server:
sudo systemctl status dnstt-server # بررسی وضعیت
sudo systemctl start dnstt-server # شروع سرویس
sudo systemctl stop dnstt-server # توقف سرویس
sudo systemctl restart dnstt-server # راهاندازی مجدد سرویس
sudo journalctl -u dnstt-server -f # مشاهده لاگهاسرویس Dante SOCKS (فقط حالت SOCKS):
sudo systemctl status danted # بررسی وضعیت
sudo systemctl start danted # شروع سرویس
sudo systemctl stop danted # توقف سرویس
sudo systemctl restart danted # راهاندازی مجدد سرویس
sudo journalctl -u danted -f # مشاهده لاگهااسکریپت میتواند خود را به دو روش بروزرسانی کند:
روش 1: استفاده از منو (توصیه میشود)
dnstt-deploy
# گزینه 2 را انتخاب کنید: بروزرسانی اسکریپت dnstt-deployروش 2: اجرای مجدد دستور curl
bash <(curl -Ls https://raw.githubusercontent.com/bugfloyd/dnstt-deploy/main/dnstt-deploy.sh)
# اسکریپت به طور خودکار بروزرسانیها را تشخیص داده و نصب خواهد کردمنوی مدیریت دسترسی سریع به ابزارهای عیبیابی فراهم میکند:
- بررسی وضعیت سرویس (گزینه منو 3): نشان میدهد که آیا سرویسها به درستی اجرا میشوند
- مشاهده لاگهای سرویس (گزینه منو 4): نظارت real-time بر لاگهای سرویس
اگر خطاهایی مثل این میبینید:
FORMERR: requester payload size 512 is too small (minimum 1232)
MTU را به عدد ذکر شده کاهش دهید:
dnstt-deployرا اجرا کنید- گزینه 1 (نصب/پیکربندی مجدد سرور dnstt) را انتخاب کنید
- مقدار MTU پیشنهادی را هنگام درخواست وارد کنید
مبادلات عملکرد را هنگام استفاده از مقادیر MTU بسیار پایین در نظر بگیرید.
سرویس شروع نمیشود:
dnstt-deploy # از گزینه منو 3 برای بررسی وضعیت استفاده کنید
# یا به صورت دستی:
sudo systemctl status dnstt-server # بررسی وضعیت سرویس
sudo journalctl -u dnstt-server -n 50 # بررسی لاگها برای خطاها
ls -la /usr/local/bin/dnstt-server # تأیید مجوزهای باینریمشکلات پیکربندی DNS:
dig @YOUR_SERVER_IP t.mydomain.com # تست تونل DNS (از کلاینت)
sudo iptables -t nat -L PREROUTING -n -v # بررسی قوانین iptablesمشکلات پروکسی SOCKS:
curl --socks5 127.0.0.1:1080 http://httpbin.org/ip # تست محلی پروکسی SOCKS
sudo cat /etc/danted.conf # بررسی پیکربندی Danteبررسی پورت:
sudo ss -tulnp | grep 5300 # بررسی پورت dnstt-server
sudo ss -tulnp | grep 1080 # بررسی پورت پروکسی SOCKS (در صورت فعال بودن)اسکریپت از چندین دامنه با ایجاد جفت کلیدهای جداگانه برای هر دامنه پشتیبانی میکند. با این حال، تنها یک پیکربندی دامنه میتواند در یک زمان فعال باشد زیرا همه پیکربندیها از پورت 53 برای ترافیک DNS استفاده میکنند. برای تغییر بین دامنهها:
dnstt-deployرا اجرا کنید- گزینه 1 (نصب/پیکربندی مجدد سرور dnstt) را انتخاب کنید
- زیردامنه جدید را هنگام درخواست وارد کنید
برای پیکربندیهای DNS-over-HTTPS (DoH) یا DNS-over-TLS (DoT)، به مستندات رسمی dnstt برای دستورالعملهای راهاندازی دقیق مراجعه کنید.
از نمایشگر لاگ داخلی (گزینه منو 4) یا دستورات دستی استفاده کنید:
sudo ss -tulnp | grep -E "(5300|1080)" # نظارت بر تعداد اتصالات
sudo systemctl status dnstt-server # بررسی منابع سرویس
sudo journalctl -u dnstt-server -f --no-pager # نظارت بر لاگها برای خطاهامشارکتها خوشآمد هستند! لطفاً برای ارسال Pull Request احساس راحتی کنید. برای تغییرات بزرگ، لطفاً ابتدا یک issue باز کنید تا در مورد آنچه میخواهید تغییر دهید بحث کنیم.
- dnstt توسط David Fifield
- Dante SOCKS server برای قابلیت پروکسی SOCKS
- مشکلات: GitHub Issues
- بحثها: GitHub Discussions
- وبسایت رسمی پروژه: dnstt.network
ساخته شده با ❤️ برای حریم خصوصی و امنیت