رفتن به محتوا

شروع به کار

این صفحه آلفای v0.3.10-alpha را نصب می‌کند. فایل‌ها از صفحهٔ انتشار هسته و صفحهٔ انتشار پنل می‌آیند. اول نسخهٔ آلفا را بخوانید تا بدانید چه دارد و کجا محدود است.

  • یک سرور لینوکسی با systemd، x86_64 یا aarch64، که از اینترنت روی درگاه‌هایی که انتخاب می‌کنید در دسترس باشد.
  • دسترسی root (با sudo) و curl. اگر minisign نباشد، اسکریپت آن را از مدیر بسته نصب می‌کند.
  • برای پنل: یک نام دامنه که به سرور اشاره کند. اسکریپت می‌تواند وب‌سرور و گواهی را راه بیندازد (به یک وب‌سرور جلوی پنل بگذارید نگاه کنید)، یا وب‌سرور خودتان را بیاورید.

اسکریپت روش پیشنهادی است. نود، پنل یا هر دو را نصب می‌کند و اول هر دانلود را بررسی می‌کند.

نصب با یک خط:

curl -fsSL https://raw.githubusercontent.com/veilway-project/veilway/main/scripts/veilway.sh | sudo bash

برای منو یا اجرای یک دستور، اول فایل را دانلود کنید:

curl -fsSL -o veilway.sh https://raw.githubusercontent.com/veilway-project/veilway/main/scripts/veilway.sh
sudo bash veilway.sh

گزینهٔ 1 (نصب) و بعد node، panel یا both (پیش‌فرض) را انتخاب کنید. برای رد کردن منو، sudo bash veilway.sh install both را اجرا کنید.

آنچه نصب روی سرور می‌گذارد

Section titled “آنچه نصب روی سرور می‌گذارد”
  • نود، در /usr/local/bin/veilway، و سرویس آن، veilway.service.
  • پنل، در /usr/local/bin/veilway-panel، و سرویس آن، veilway-panel.service.
  • دو کاربر سیستمی بدون پوستهٔ ورود: veilway برای نود و veilway-panel برای پنل.
  • پوشهٔ پیکربندی /etc/veilway و پوشه‌های داده /var/lib/veilway و /var/lib/veilway-panel.
  • یک نسخهٔ پیکربندی نمونه از انتشار، و اگر نود هنوز پیکربندی نداشته باشد، یک پیکربندی اولیه.

اسکریپت را بدون آرگومان اجرا کنید:

کلید کار دستور
1 نصب install node|panel|both
2 به‌روزرسانی update (هر دو)
3 وضعیت status
4 گزارش‌ها logs node یا logs panel
5 راه‌اندازی مجدد restart (هر دو)
6 بررسی check
7 تشخیص doctor
8 پشتیبان‌گیری backup
9 بازگردانی restore <file>
10 حذف uninstall
11 افزونه‌ها addon xray status، و بعد می‌پرسد که نصب یا حذف شود
12 مدیران admin list، و بعد نام کاربری‌ای را می‌پرسد که گذرواژهٔ تازه بگیرد
0 خروج
دستور کاری که انجام می‌دهد
install node|panel|both|mirror [--version vX.Y.Z] بخش‌های انتخاب‌شده را از آخرین نسخه، یا از برچسبی که می‌دهید، نصب می‌کند. mirror یک آینهٔ رله از نقطهٔ پایانی اشتراک نصب می‌کند. آینه‌های رله را ببینید.
install panel|both --domain <name> [--web caddy|nginx] علاوه بر آن برای آن دامنه یک وب‌سرور با HTTPS راه می‌اندازد، و برای هر مسیر دیگر یک سایت ساده. یک وب‌سرور جلوی پنل بگذارید را ببینید.
install panel|both --no-two-step نصب تازهٔ پنل می‌پرسد که هنگام ورود کد برنامهٔ احراز هویت خواسته شود یا نه، و جواب بله است مگر نه بگویید. این گزینه بدون پرسیدن نه می‌گوید. پیشنهاد نمی‌شود: با خاموش بودنش، رمز مدیر به‌تنهایی پنل را باز می‌کند. از v0.3.4.
update [node|panel|mirror|both] آخرین نسخه یا برچسبی که می‌دهید را نصب می‌کند و سرویس را دوباره راه می‌اندازد. نصب‌کنندهٔ ذخیره‌شده، /usr/local/sbin/veilway.sh، را هم با نسخهٔ امضاشدهٔ همان انتشار جایگزین می‌کند، هرگز با نسخهٔ قدیمی‌تر. دکمه‌های به‌روزرسانی پنل آن را اجرا می‌کنند. به‌روزرسانی پنل را ببینید.
status وضعیت و نسخهٔ هر سرویس و پوشه‌های پیکربندی و وضعیت را نشان می‌دهد. root لازم ندارد. با root نشانی صفحه‌های مدیریت پنل، مسیر اشتراک و نام کاربری مدیران را هم نشان می‌دهد.
logs [node|panel|mirror] ۱۰۰ خط آخر گزارش سرویس را دنبال می‌کند.
restart [node|panel|mirror|both] سرویس را دوباره راه می‌اندازد. راه‌اندازی مجدد نود همهٔ تونل‌های زنده را لحظه‌ای قطع می‌کند.
check دستور veilway check را روی پیکربندی نود اجرا می‌کند.
doctor دستور veilway doctor را با مسیرهای خود سرویس روی نود اجرا می‌کند. فقط می‌خواند.
backup [file] یک tar.gz از پیکربندی، وضعیت مصرف نود، داده‌های پنل و پیکربندی آینه می‌نویسد. کلید دارد، و تا وقتی gateway.next روی سرور است آن را هم، پس خصوصی نگهش دارید.
restore <file> بعد از تأیید شما پشتیبان را بازمی‌گرداند. اول فایل‌های فعلی را ذخیره می‌کند.
admin [list|reset <username>] list نام کاربری مدیران را نشان می‌دهد. reset برای قفل شدن است: دو بار گذرواژهٔ تازه‌ای با ۱۲ نویسه یا بیشتر می‌پرسد، آن را به آن مدیر می‌دهد و او را از همه‌جا بیرون می‌اندازد. کلید احرازگر و توکن‌های API او می‌مانند. پنل v0.2.5 یا تازه‌تر لازم است.
addon xray [install|remove|status] افزونهٔ Xray را نصب، حذف یا وضعیتش را نشان می‌دهد. پیش‌فرض install است. یک انتشار سنجاق‌شده از Xray-core رسمی را دانلود می‌کند و اگر SHA-256 آن با مقدار داخل اسکریپت یکی نباشد رد می‌کند. فایل اجرایی xray در /usr/local/lib/veilway/addons/xray می‌رود، با مالک root. Xray با کاربر جدای veilway-xray اجرا می‌شود و نود وقتی پیکربندی‌اش ورودی Xray دارد آن را راه می‌اندازد. افزونهٔ Xray را ببینید.
mirror-sync <folder> [--version vX.Y.Z] یک انتشار نود و پنل را با امضاها و اشاره‌گرهای امضاشدهٔ latest در پوشه‌ای با چینش GitHub کپی می‌کند و هر فایل را پیش از ذخیره بررسی می‌کند. پوشه را سرو کنید یا روی فلش ببرید. نصب از یک آینه را ببینید. root لازم ندارد.
uninstall فایل‌های اجرایی، یونیت‌ها و خود نصب‌کننده را حذف می‌کند. پیش از حذف پیکربندی و داده‌ها می‌پرسد. پشتیبان‌ها می‌مانند. تنظیمات وب‌سرور تا uninstall web می‌ماند، که نصب‌کننده لازم دارد.
uninstall web آنچه --domain راه انداخته را برمی‌گرداند: فایل سایت، سایت ساده اگر ویرایشش نکرده باشید، not_found پنل، و بسته‌هایی که اسکریپت نصب کرده.
version نسخهٔ اسکریپت، نود و پنل را چاپ می‌کند.

پرچم‌ها:

  • --dry-run می‌گوید دستور چه می‌کرد و چیزی را عوض نمی‌کند.
  • --yes (یا -y) به هر پرسش جواب پیش‌فرضش را می‌دهد.
  • --version <tag> به‌جای آخرین نسخه، یک برچسب انتشار را انتخاب می‌کند.
  • --allow-downgrade اجازه می‌دهد --version برچسبی قدیمی‌تر از نسخهٔ نصب‌شده بگیرد. بدون آن اسکریپت رد می‌کند، و با آن هشدار می‌دهد.
  • --mirror <url> از یک آینه نصب می‌کند (برای چند آینه تکرار کنید). نصب از یک آینه را ببینید. --mirror-only هرگز به GitHub برنمی‌گردد.
  • --domain <name> و --web caddy|nginx یک وب‌سرور برای پنل راه می‌اندازند. پیش‌فرض caddy است.

متغیرهای محیطی:

  • NO_COLOR رنگ‌ها را خاموش می‌کند.
  • VEILWAY_PANEL_PORT درگاه پنل را تعیین می‌کند. پیش‌فرض 8480 است.
  • VEILWAY_MIRRORS نشانی آینه‌ها را می‌گیرد، جدا شده با فاصله. بعد از --mirrorها امتحان می‌شوند.

هر دانلود یک امضای minisign دارد. اسکریپت آن را با کلید عمومی داخل خودش بررسی می‌کند و اگر شکست بخورد می‌ایستد. «Trusted comment» امضا باید برای نود veilway <tag> <asset> و برای پنل veilway-panel <tag> <asset> باشد، تا امضای یک فایل برای فایل دیگر کار نکند. بدون بررسی چیزی نصب نمی‌شود.

اگر مدیر بسته‌تان minisign ندارد (اوبونتو ۲۲.۰۴، دبیان ۱۱)، اسکریپت نسخهٔ 0.11 سازنده‌اش را در /usr/local/bin نصب می‌کند و اول آن را با SHA-256 سنجاق‌شده در اسکریپت بررسی می‌کند.

install node تازه، اگر فایل نباشد، /etc/veilway/node/config.json را می‌نویسد، با مالک veilway و حالت 0600. پیکربندی اولیه این‌ها را دارد:

  • یک خروجی به نام This server که از اتصال خود نود بیرون می‌رود
  • بدون ورودی، پس هنوز هیچ دستگاهی نمی‌تواند وصل شود
  • بدون کاربر
  • دو قاعدهٔ مسیریابی: یکی ترافیک بین کاربران را رد می‌کند و یکی نشانی‌های خصوصی را.

اسکریپت veilway check را اجرا می‌کند و نود را فقط اگر بگذرد راه می‌اندازد. اگر نگذرد، نود متوقف می‌ماند و اسکریپت دلیلش را می‌گوید.

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

برای بررسی پیکربندی در هر زمان، sudo bash veilway.sh check را اجرا کنید.

install panel فایل /etc/veilway/panel.json را یک بار می‌نویسد و فایل موجود را هرگز عوض نمی‌کند. پنل فقط روی 127.0.0.1:8480 گوش می‌دهد، کوکی‌هایش امن (secure) هستند و مسیر مدیریتش تصادفی است، مثلاً /3f9c0a7e21b84d65. برای جابه‌جا کردن بعدی صفحه‌های مدیریت، sudo bash veilway.sh panel-prefix [/new-path] را اجرا کنید.

نصب در پایان مسیر مدیریت و یک توکن راه‌اندازی یک‌بارمصرف را چاپ می‌کند. برای دیدن دوبارهٔ توکن این را اجرا کنید:

sudo journalctl -u veilway-panel -o cat | grep 'Setup token' | tail -n 1

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

یک وب‌سرور جلوی پنل بگذارید

Section titled “یک وب‌سرور جلوی پنل بگذارید”

پنل TLS ندارد، پس یک وب‌سرور باید آن را روی HTTPS سرو کند. اسکریپت این کار را بکند، یا خودتان دستی انجام دهید.

یک نام دامنه را به سرور اشاره دهید (یک رکورد A، و اگر سرور IPv6 دارد یک رکورد AAAA)، بعد --domain را اضافه کنید:

sudo bash veilway.sh install panel --domain panel.example.com

install both هم آن را می‌پذیرد. بدون --domain، اسکریپتی که در ترمینال اجرا شود می‌پرسد وب‌سرور می‌خواهید یا نه و دامنه چیست. با --yes هرگز نمی‌پرسد.

--https-port <port> سایت HTTPS را روی درگاهی غیر از ۴۴۳ می‌گذارد، مثلاً --https-port 8443. آن‌وقت پنل در https://panel.example.com:8443/<prefix>/ است. درگاه ۸۰ در هر حال باید در دسترس بماند، چون گواهی از روی آن بررسی می‌شود. انتقال TCP نودی که روی آن درگاه است به ۸۴۴۳ می‌رود (اگر ۸۴۴۳ را انتخاب کرده باشید به ۸۴۴۴)، مثل درگاه ۴۴۳ پایین‌تر. اجرای دوباره بدون این گزینه درگاه قبلی را نگه می‌دارد.

روی Debian و Ubuntu این کارها را می‌کند:

  1. Caddy را نصب می‌کند، از بسته‌های سیستم اگر نسخهٔ ۲٫۶ یا جدیدتر باشند، وگرنه از مخزن apt خود Caddy با کلید امضایش. --web nginx به‌جای آن nginx و certbot (python3-certbot-nginx) را نصب می‌کند.
  2. سایت را در فایل جدایی می‌نویسد. برای Caddy آن /etc/caddy/conf.d/veilway-panel.caddy است، به‌علاوهٔ یک خط، import /etc/caddy/conf.d/*.caddy، در انتهای /etc/caddy/Caddyfile. بقیهٔ Caddyfile موجود می‌ماند، بعد از کپی در /var/backups/veilway. برای nginx فایل /etc/nginx/conf.d/veilway-panel.conf است.
  3. دو مسیر پنل را هدایت می‌کند به 127.0.0.1:8480: پیشوند مدیریت و مسیر اشتراک، که از panel.json خوانده می‌شوند.
  4. هر جای دیگر یک سایت ساده نشان می‌دهد: یک صفحهٔ معمولی در /var/www/veilway-site، بدون نام یا متن Veilway. از v0.3.3 اسکریپت صفحه را برای هر سرور جدا می‌سازد (موضوع، متن، تاریخ‌ها، قلم و رنگ‌ها)، پس جست‌وجوی یک صفحه همهٔ سرورهای Veilway را پیدا نمی‌کند. صفحه‌ای از خودتان سرور را بهتر پنهان می‌کند: آزادانه ویرایش یا جایگزینش کنید، سایت پوششی شما را ببینید. اسکریپت هرگز روی صفحهٔ ویرایش‌شده نمی‌نویسد. update به جای صفحه‌ای که پیش از v0.3.3 در همهٔ نصب‌ها یکی بود، صفحهٔ تازه‌ای می‌سازد، فقط اگر هرگز ویرایشش نکرده باشید. همین سایت روی HTTP ساده در 127.0.0.1:8080 هم سرو می‌شود (فقط همین دستگاه، در همان فایل سایت). این مبدأ پوششی پیش‌فرض ترنسپورت‌های tls، ws و fronted نود است، پس غریبه‌ای که به نود برسد همین صفحه را می‌بیند. اگر چیز دیگری آن درگاه را گرفته باشد، اسکریپت می‌گوید و از آن می‌گذرد. VEILWAY_DECOY_PORT=<port> درگاه دیگری انتخاب می‌کند.

برای این‌که ترنسپورت ws یا fronted از این وب‌سرور بگذرد، در پنل زیر خط‌های وب‌سرور آن ترنسپورت افزودن به وب‌سرور همین سرور را بزنید (از v0.3.9). سرور خط‌ها را در /etc/caddy/veilway-routes یا /etc/nginx/veilway-routes می‌نویسد که فایل سایت آن را شامل می‌کند، آزمایش می‌کند و وب‌سرور را دوباره بارگذاری می‌کند. اگر وب‌سرور آن‌ها را نپذیرد، چیزی تغییر نمی‌کند. هنوز می‌توانید خط‌ها را دستی در فایل سایت بگذارید، راهنمای پنل را ببینید. 5. not_found پنل را برابر پاسخ ۴۰۴ خود وب‌سرور می‌گذارد، تا غریبه نتواند مسیرهای پنل را از هر صفحهٔ گمشدهٔ دیگر تشخیص دهد. 6. گواهی می‌گیرد. Caddy خودش می‌گیرد و تمدید می‌کند. برای nginx، certbot یک بار می‌گیرد و زمان‌سنجش تمدید می‌کند. هر دو لازم دارند دامنه به این سرور اشاره کند و درگاه ۸۰ در دسترس باشد. اگر certbot شکست بخورد، اسکریپت می‌گوید و سایت فقط روی http جواب می‌دهد تا sudo certbot --nginx -d panel.example.com را اجرا کنید.

اگر وب‌سروری از قبل اجرا می‌شود، یا چیز دیگری درگاه ۸۰ یا ۴۴۳ را گرفته، اسکریپت پیش از هر تغییر توضیح می‌دهد و می‌ایستد. وب‌سروری را که خودش نصب نکرده هرگز متوقف یا جایگزین نمی‌کند. اگر Caddy (یا با --web nginx، nginx) از قبل اجرا می‌شود، اسکریپت پیش از افزودن فایل و خط import می‌پرسد. --yes بله می‌گوید.

درگاه ۴۴۳ و نود. نودی که روی درگاه ۴۴۳ ترنسپورت tls دارد، درگاهی را نگه داشته که وب‌سرور لازم دارد. اسکریپت راه امن را می‌رود: وب‌سرور ۴۴۳ را می‌گیرد و ترنسپورت‌های TCP نود روی ۴۴۳ به ۸۴۴۳ می‌روند. اول می‌پرسد (--yes بله می‌گوید)، از پیکربندی نود پشتیبان می‌گیرد، پیکربندی تغییرکرده را بررسی می‌کند، نود را دوباره راه می‌اندازد و اگر چیزی شکست بخورد پیکربندی قبلی را برمی‌گرداند. پروفایل‌هایی که درگاه ۴۴۳ را نام می‌برند تا دوباره در پنل منتشر نکنید کار نمی‌کنند. راهی که نود ۴۴۳ را نگه دارد و وب‌سرور پشتش باشد ساخته نشده: نود نمی‌تواند فایل‌های گواهی وب‌سرور را بخواند، چون جعبهٔ امنیتی نود و مالک فایل‌ها هر دو اجازه نمی‌دهند. برای نگه داشتن نود روی ۴۴۳، --domain را نزنید و وب‌سرور را دستی روی درگاه یا میزبان دیگری بگذارید.

sudo bash veilway.sh uninstall web همه را برمی‌گرداند: فایل سایت، خط import، سایت ساده اگر تغییر نکرده باشد، not_found پنل، و بسته‌هایی که اسکریپت نصب کرده. ترنسپورت‌های جابه‌جاشدهٔ نود روی ۸۴۴۳ می‌مانند.

برای وب‌سروری که پیش از v0.2.15 راه افتاده، sudo bash veilway.sh update سایت پوششی روی 127.0.0.1:8080 را در فایلی جدا اضافه می‌کند: /etc/caddy/conf.d/veilway-decoy.caddy با Caddy و /etc/nginx/conf.d/veilway-decoy.conf با nginx. uninstall web آن را هم برمی‌دارد.

مثال‌ها از panel.example.com، مسیر مدیریت /3f9c0a7e21b84d65 و مسیر اشتراک /sub استفاده می‌کنند. از دامنه و مسیر مدیریت خودتان استفاده کنید.

برای nginx اسکریپت این بلوک را با مسیر مدیریت شما چاپ می‌کند:

location ~ ^(/3f9c0a7e21b84d65|/sub)(/|$) {
proxy_pass http://127.0.0.1:8480;
client_max_body_size 100m;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
}

برای Caddy این را بگذارید:

panel.example.com {
handle /3f9c0a7e21b84d65/* {
reverse_proxy 127.0.0.1:8480
}
handle /sub/* {
reverse_proxy 127.0.0.1:8480
}
}

بعد https://panel.example.com/3f9c0a7e21b84d65/ را باز کنید، توکن راه‌اندازی را با یک نام کاربری و گذرواژه وارد کنید، شرایط اپراتور را بپذیرید و راهنمای پنل را دنبال کنید. در روش دستی، not_found پنل را برابر صفحهٔ ۴۰۴ وب‌سرور خودتان بگذارید، تا غریبه نتواند مسیر اشتراک را از هر مسیر گمشدهٔ دیگر تشخیص دهد.

اگر دامنه ندارید، اسکریپت می‌تواند اشتراک‌ها را روی آدرس IP سرور بدهد:

sudo bash veilway.sh install panel --no-domain

اسکریپت وب‌سرور (پیش‌فرض nginx)، درگاه (۴۴۳ اگر آزاد باشد) و آدرس IP عمومی سرور را می‌پرسد. --https-port و --ip این دو مورد آخر را بدون پرسش تنظیم می‌کنند. با --yes مقدارهای پیش‌فرض گرفته می‌شود. روی سرور ابری پشت NAT، آدرسی که پیدا می‌شود خصوصی است: آدرس عمومی را با --ip بدهید. آدرس خصوصی‌ای که با --ip بدهید همان‌طور به کار می‌رود، برای سروری که فقط در شبکهٔ خانه استفاده می‌شود.

اسکریپت برای همان IP یک گواهی خودامضا می‌سازد. صفحه‌های مدیریت روی 127.0.0.1 می‌مانند و در اینترنت نیستند. وب‌سرور فقط مسیر اشتراک، /sub، را می‌دهد. هر مسیر دیگری پاسخ ۴۰۴ می‌دهد.

برای باز کردن صفحه‌های مدیریت، از رایانه خودتان یک تونل SSH بسازید:

ssh -L 8480:127.0.0.1:8480 root@<IP سرور>

بعد http://localhost:8480/<مسیر مدیریت>/ را باز کنید. اسکریپت دستور و نشانی دقیق را در پایان نشان می‌دهد.

گواهی خودامضا برای کاربرانتان امن است. برنامه‌ها آن را با «پین» بررسی می‌کنند، یعنی هش کلید عمومی آن، نه با نام. اسکریپت پین را نشان می‌دهد. نقطه پایانی را زیر Settings > Endpoints با نشانی https://<IP سرور>:<درگاه>/sub/main و همان پین اضافه کنید.

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

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

sudo bash veilway.sh install node --mirror https://mirror.example.org
  • --mirror <url> را می‌شود تکرار کرد. آینه‌ها برای هر دانلود به ترتیب امتحان می‌شوند و GitHub آخر است. --mirror-only هرگز به GitHub برنمی‌گردد. بدون --mirror، VEILWAY_MIRRORS (نشانی‌ها با فاصله) همین کار را می‌کند.
  • فقط نشانی https:// کار می‌کند. http:// برای 127.0.0.1، localhost و [::1] برای آزمایش پذیرفته می‌شود.
  • چینش همان چینش GitHub است: <mirror>/<owner>/<repo>/releases/download/<tag>/<file>.
  • اگر آینه‌ای از کار افتاده یا مسدود باشد، یا فایلی بدهد که امضایش درست نیست، اسکریپت هشدار می‌دهد و آینهٔ بعدی را امتحان می‌کند.
  • بدون --version، تازه‌ترین برچسب از یک فایل اشاره‌گر امضاشده می‌آید، latest-veilway.txt (برای پنل latest-veilway-panel.txt)، که اول از آینه‌ها و بعد از نشانی releases/latest/download/ در GitHub خوانده می‌شود. اشاره‌گر قدیمی‌تر از نسخهٔ نصب‌شده رد می‌شود، پس آینهٔ کهنه نمی‌تواند شما را به عقب برگرداند. برچسب قدیمی‌تر --version <tag> --allow-downgrade می‌خواهد.
  • انتشارهای پیش از وجود اشاره‌گر آن را ندارند. اسکریپت آن‌وقت آخرین انتشار را از GitHub می‌پرسد، مگر --mirror-only داده باشید. در آن حالت از --version استفاده کنید.
  • افزونهٔ Xray و پیکربندی نمونه هنوز از GitHub می‌آیند.

اسکریپت را از یک آینه بگیرید

Section titled “اسکریپت را از یک آینه بگیرید”

آینه نصب‌کنندهٔ امضاشده را هم دارد. پیش از اجرا دستی بررسی‌اش کنید. minisign لازم دارد (apt install minisign):

curl -fsSLO https://mirror.example.org/veilway.sh
curl -fsSLO https://mirror.example.org/veilway.sh.minisig
minisign -V -m veilway.sh -x veilway.sh.minisig -P RWQiodKlFCiJ3bkZD3ojKV7AYyTYf3F5x/XY8upWvpSFTVm3O2cNRbrV

خروجی باید Signature and comment signature verified بگوید و Trusted comment: آن veilway <tag> veilway.sh باشد. فقط بعد از آن اجرایش کنید:

sudo bash veilway.sh install both --mirror https://mirror.example.org

اسکریپت آینه را مستقیم به bash پایپ نکنید. اول بررسی‌اش کنید.

یک پوشه برای سرو یا حمل بسازید

Section titled “یک پوشه برای سرو یا حمل بسازید”

mirror-sync همین چینش را روی ماشینی که به GitHub (یا آینهٔ دیگری) می‌رسد می‌سازد، برای وب‌سرور یا فلش:

bash veilway.sh mirror-sync ./veilway-mirror
bash veilway.sh mirror-sync ./veilway-mirror --version v0.3.10-alpha

فایل‌های نود و پنل را با امضاها و اشاره‌گرها دانلود می‌کند، هر کدام را پیش از ذخیره بررسی می‌کند و veilway.sh را بالای پوشه می‌گذارد. اشاره‌گر جدیدتری را که از قبل آنجا باشد نگه می‌دارد. index.html قابل مرور را که veilway-release-mirror می‌نویسد نمی‌نویسد.

Docker جایگزین است. ایمیج‌ها در GitHub Container Registry هستند، برای linux/amd64 و linux/arm64:

  • ghcr.io/veilway-project/veilway، نود
  • ghcr.io/veilway-project/veilway-panel، پنل

هر برچسب انتشار v* هر دو ایمیج را با یک برچسب نسخه و latest منتشر می‌کند.

پوشهٔ deploy/compose مخزن هسته نود و پنل را با هم اجرا می‌کند، با حجم مشترکی برای سوکت کنترل نود. README آن مراحل کامل را دارد، از جمله دستورهای کپی پیکربندی‌ها داخل حجم‌ها. خلاصه:

  1. پیکربندی نود را از config.example.json بنویسید. ترنسپورت ws داخل کانتینر روی درگاه ۸۴۴۳ گوش می‌دهد و Compose درگاه ۴۴۳ میزبان را به آن می‌رساند.
  2. کلیدها را با docker compose run --rm --no-deps --entrypoint veilway node genkey بسازید.
  3. پیکربندی نود و پنل را داخل حجم‌ها کپی کنید، با مالک uid ‏65532 که ایمیج‌ها با آن اجرا می‌شوند.
  4. فایل panel.json را با یک prefix تصادفی و listen برابر 127.0.0.1:8480 بنویسید.
  5. پشته را با docker compose up -d راه بیندازید و با docker compose ps بررسی کنید. وقتی درگاه ۸۴۸۰ اتصال بپذیرد، پنل healthy می‌شود.

پنل از شبکهٔ میزبان استفاده می‌کند، چون فقط روی loopback گوش می‌دهد و میزبان به loopback کانتینر نمی‌رسد. مثل بالا یک وب‌سرور با TLS جلویش بگذارید.

  • docker compose down -v حجم‌ها را حذف می‌کند، که کلیدها و وضعیت مصرف را دارند. هنگام توقف پشته آن‌ها را نگه دارید.

  • فقط خروجی l3 دسترسی بیشتر می‌خواهد: root با NET_ADMIN و دستگاه TUN. این خطوط را زیر node در docker-compose.yml اضافه کنید:

    user: "0"
    cap_add: [NET_ADMIN]
    devices: ["/dev/net/tun"]

    خروجی‌های netstack به هیچ‌کدام نیاز ندارند.

  • هر درگاه UDP برای WireGuard در پیکربندی یک خط جدا زیر ports نود می‌خواهد.

مسیر محتوا
/usr/local/bin/veilway فایل اجرایی نود
/usr/local/bin/veilway-panel فایل اجرایی پنل
/etc/veilway/node/config.json پیکربندی نود. مالک veilway، حالت 0600
/etc/veilway/config.example.json پیکربندی نمونه از انتشار
/etc/veilway/panel.json پیکربندی پنل
/var/lib/veilway/veilway-state.json وضعیت مصرف نود
/var/lib/veilway/veilway-replay حافظهٔ بازپخش نود
/var/lib/veilway-panel/panel.db پایگاه داده پنل
/var/lib/veilway-panel/panel.keys کلیدهای پنل برای رازهای رمزشده
/var/lib/veilway-panel/signing.keys کلیدهای امضای اشتراک
/var/lib/veilway-panel/gateway.keys کلیدهای دروازه که درخواست‌های اشتراک را باز می‌کنند
/var/lib/veilway-panel/gateway.next نیمهٔ خصوصی کلید دروازهٔ بعدی، تا وقتی آن را از سرور بیرون نبرده‌اید
/etc/veilway-mirror/mirror.json پیکربندی آینهٔ رله، اگر نصب کرده باشید
/usr/local/lib/veilway/addons/xray افزونهٔ Xray، اگر نصب کرده باشید
/run/veilway/control.sock سوکت کنترل نود، با گروه veilway
/etc/systemd/system/veilway.service یونیت نود
/etc/systemd/system/veilway-panel.service یونیت پنل
/var/backups/veilway پشتیبان‌ها، و نسخه‌هایی که اسکریپت پیش از بازنویسی یک فایل می‌گیرد

نسخه‌های نصب‌شده در /var/lib/veilway/node.version و /var/lib/veilway-panel/panel.version هستند.