این راهنما توضیح میدهد چطور از Caddy، سرور وب قدرتمند و کاربرپسند، استفاده کنید تا راهاندازی سرور Outline خود را بهبود دهید. قابلیتهای اچتیتیپیاس خودکار Caddy و پیکربندی انعطافپذیر آن، Caddy را به انتخابی عالی برای ارائه سرور Outline شما بدل میکند، بهویژه وقتی از حملونقل WebSocket استفاده میکنید.
Caddy چیست؟
Caddy سرور وب متنبازی است که بهخاطر استفاده آسان، اچتیتیپیاس، و پشتیبانی پروتکلهای مختلف معروف است. پیکربندیهای سرور وب را ساده میکند و ویژگیهایی مثل موارد زیر را ارائه میدهد:
- اچتیتیپیاس خودکار: Caddy بهطور خودکار گواهینامههای «امنیت لایه انتقال» را دریافت و تمدید میکند تا اتصالات ایمن را تضمین کند.
- پشتیبانی HTTP/3: Caddy جدیدترین پروتکل HTTP/3 را برای ترافیک وب سریعتر و کارآمدتر پشتیبانی میکند.
- توسعهپذیر با افزایهها: Caddy میتواند با افزونهها توسعه یابد تا عملکردهای مختلفی را، ازجمله پراکسی معکوس و متوازن کردن بارگیری، پشتیبانی کند.
مرحله ۱: پیشنیازها
- بارگیری و نصب کردن
xcaddy
مرحله ۲: پیکربندی دامنه
پیشاز راهاندازی کردن Caddy، مطمئن شوید نام دامنهتان بهدرستی پیکربندی شده است تا به نشانی IP سرورتان هدایت کند.
- تنظیم کردن ساختارهای A/AAAA: به سیستم ارائهدهنده ساناد خود وارد شوید و ساختارهای A و AAAA را برای دامنهتان تنظیم کنید تا بهترتیب به نشانیهای «پروتکل اینترنتی نسخه ۴» و «پروتکل اینترنتی نسخه ۶» سرورتان هدایت شود.
تأیید کردن ساختارهای ساناد: ساختارهای سانادی را تأیید کنید که بهدرستی با جستجوی معتبری تنظیم شدهاند:
curl "https://cloudflare-dns.com/dns-query?name=DOMAIN_NAME&type=A" \ -H "accept: application/dns-json"
مرحله ۳: ساختن و اجرای ساختار سفارشی Caddy
بااستفاده ازxcaddy
میتوانید دودویی سفارشی caddy
بسازید که شامل واحد اصلی سرور Outline
و واحدهای دیگر افزونه سرور که به آنها نیاز دارید باشد.
xcaddy build \
# The example uses a YAML config, so include a YAML config adapter module.
--with github.com/iamd3vil/caddy_yaml_adapter \
# The Outline core server module.
--with github.com/Jigsaw-Code/outline-ss-server/outlinecaddy
مرحله ۴: پیکربندی و اجرای سرور Caddy با Outline
فایل config.yaml
جدیدی را با پیکربندیهای زیر بسازید:
apps:
http:
servers:
server1:
listen:
- ":443"
routes:
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/TCP_PATH"
handle:
- handler: websocket2layer4
type: stream
connection_handler: ss1
- match:
- host:
- 'DOMAIN_NAME'
- path:
- "/UDP_PATH"
handle:
- handler: websocket2layer4
type: packet
connection_handler: ss1
outline:
shadowsocks:
replay_history: 10000
connection_handlers:
- name: ss1
handle:
handler: shadowsocks
keys:
- id: user-1
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
این پیکربندی نشاندهنده راهبرد Shadowsocks-over-WebSockets است که با
سرور وبی در درگاه 443
میشنود و ترافیکهای شکستهشده Shadowsocks بهصورت TCP و UDP را
بهترتیب در مسیرهای TCP_PATH و UDP_PATH
میپذیرد.
اجرا کردن سرور Caddy توسعهیافته با Outline بااستفاده از پیکربندی ساختهشده:
caddy run --config config.yaml --adapter yaml --watch
نمونههای بیشتر برای پیکربندی را میتوانید در outline-ss-server/outlinecaddy GitHub repo ببینید.
مرحله ۵: ساختن کلید دسترسی پویا
بااستفاده از قالب پیکربندی پیشرفته، فایل YAML مربوط به کلید دسترسی کارخواه را برای کاربرانتان تولید کنید و نقطههای پایانی WebSocket را که قبلاً در سمت سرور پیکربندی شده است به آن اضافه کنید:
transport:
$type: tcpudp
tcp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/TCP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
udp:
$type: shadowsocks
endpoint:
$type: websocket
url: wss://DOMAIN_NAME/UDP_PATH
cipher: chacha20-ietf-poly1305
secret: SHADOWSOCKS_SECRET
پساز تولید فایل YAML مربوط به کلید دسترسی پویا، باید آن را به کاربرانتان بدهید. این فایل را میتوانید در سرویس میزبانی وب ثابت میزبانی کنید یا آن را بهصورت پویا تولید کنید. درباره چگونگی استفاده از کلیدهای دسترسی پویا بیشتر بدانید.
مرحله ۶: اتصال با کارخواه Outline
از یکی از برنامههای کارخواه Outline (نسخه ۱.۱۵.۰ یا بالاتر) رسمی استفاده کنید و کلید دسترسی پویایی را که بهتازگی ساختهاید بهعنوان ورودی سرور اضافه کنید. روی اتصال کلیک کنید تا تونل زدن به سرور خود را بااستفاده از پیکربندی Shadowsocks-over-Websocket آغاز کنید.
از ابزاری مثل IPInfo استفاده کنید تا تأیید کنید اکنون اینترنت را با سرور Outline مرور میکنید.