نصب IBSng بر روی اوبونتو با استفاده از داکر
نرمافزار IBSng (Internet Billing System Next Generation) یکی از محبوبترین و قدرتمندترین سیستمهای اکانتینگ و مدیریت کاربران اینترنت در ایران است که به صورت متن باز ارائه میشود. این نرم افزار برای مدیریت پهنای باند، احراز هویت کاربران (Authentication)، حسابرسی (Accounting) و مدیریت سرویسهای مختلف شبکه کاربرد دارد. در گذشته، نصب IBSng بر روی توزیعهای جدید لینوکس به دلیل وابستگیهای قدیمی (Dependency) بسیار دشوار و گاهی ناممکن بود. اما در این مقاله، روشی نوین و پایدار را بررسی میکنیم.
نصب IBSng با استفاده از داکر (Docker)
این روش نه تنها مشکلات وابستگیها را حل میکند، بلکه قابلیتهایی نظیر پشتیبان گیری آسان، انتقال سریع سرور و ایزوله بودن محیط اجرا را برای مدیران شبکه فراهم میآورد. در ادامه، تمامی مراحل از آماده سازی سرور تا راه اندازی نهایی IBSng را به صورت گام به گام بررسی خواهیم کرد.
پیشنیازهای نصب IBSng بر روی اوبونتو
قبل از شروع نصب، مطمئن شوید که سرور شما شرایط زیر را دارد:
- سیستم عامل: اوبونتو (نسخههای 20.04 یا 22.04 توصیه میشود).
- دسترسی: دسترسی روت (Root) یا کاربری با دسترسی.
- اینترنت: اتصال پایدار به اینترنت برای دریافت پکیجها و ایمیجها.
- منابع سختافزاری: حداقل 1 هسته CPU و 2 گیگابایت رم.
گام اول: آمادهسازی شبکه و حل مشکلات تحریم (DNS)
از آنجایی که مخازن داکر (Docker Hub) و برخی سرویسهای گوگل برای IPهای ایران محدود شدهاند، اولین و مهمترین قدم تنظیم DNSهای مناسب برای عبور از این محدودیتهاست. ما از سرویس Electro DNS استفاده خواهیم کرد که پایداری بالایی دارد. ابتدا فایل resolv.conf را باز کرده و DNSهای جدید را تنظیم کنید. این کار باعث میشود در مراحل بعدی با خطای Connection Refused یا 403 Forbidden مواجه نشوید. دستورات زیر را به ترتیب اجرا کنید:
تهیه نسخه پشتیبان از تنظیمات فعلی:
cp /etc/resolv.conf /etc/resolv.conf.bak
تنظیم DNSهای الکترو:
echo "nameserver 78.157.42.100" > /etc/resolv.conf
echo "nameserver 78.157.42.101" >> /etc/resolv.conf
پس از اتمام نصب، میتوانید با دستور mv /etc/resolv.conf.bak /etc/resolv.conf تنظیمات را به حالت قبل بازگردانید، اما توصیه میشود برای عملکرد صحیح کانتینرها، این DNSها باقی بمانند.
گام دوم: نصب Docker و Docker Compose
هسته اصلی این آموزش بر مبنای داکر است. اگر داکر روی سیستم شما نصب نیست، باید آن را نصب کنید.
1. نصب Docker Engine
برای نصب آسان و مطمئن داکر، از اسکریپت رسمی نصب استفاده میکنیم. چون DNSها را در مرحله قبل تنظیم کردیم، این دستور بدون مشکل اجرا خواهد شد:
curl -fsSL https://get.docker.com | sh
پس از اتمام نصب، سرویس داکر را استارت کرده و آن را برای اجرا در زمان بوت سیستم فعال کنید:
systemctl start docker
systemctl enable docker
2. نصب Docker Compose
برای مدیریت کانتینر IBSng، نیاز به Docker Compose داریم تا بتوانیم پیکربندی شبکه و پورتها را به صورت ساختاریافته مدیریت کنیم.
دانلود آخرین نسخه پایدار Docker Compose:
Apt install docker-compose
گام سوم: دریافت ایمیج اختصاصی IBSng
در این مرحله، ما به جای بیلد کردن ایمیج از سورس کد (که زمان بر و پر از خطا است)، از یک ایمیج آماده و بهینه سازی شده استفاده میکنیم. این ایمیج تمامی پکیجهای لازم، دیتابیس Postgres و سرویسهای وابسته را در خود دارد. فایل ایمیج را دانلود کرده و سپس آن را در داکر بارگذاری (Load) میکنیم. دانلود فایل ایمیج فشرده (حدود 300 تا 400 مگابایت):
wget -O /tmp/ushkayanet-ibsng.tar [https://github.com/aliamg1356/IBSng-manager/releases/download/v1.24/ushkayanet-ibsng.tar](https://github.com/aliamg1356/IBSng-manager/releases/download/v1.24/ushkayanet-ibsng.tar)
بارگذاری ایمیج در داکر:
docker load -i /tmp/ushkayanet-ibsng.tar
حذف فایل فشرده برای آزادسازی فضای دیسک:
rm -f /tmp/ushkayanet-ibsng.tar
پس از اجرای این دستورات، با اجرای دستور docker images باید ایمیجی با نام ushkayanet-ibsng را در لیست مشاهده کنید.
گام چهارم: پیکربندی و ایجاد فایل Docker Compose
برای راهاندازی سرویس، باید یک دایرکتوری کاری ایجاد کرده و فایل تنظیمات docker-compose.yml را بسازیم. این فایل مشخص میکند که سرور IBSng از طریق چه پورتهایی در دسترس خواهد بود.
ایجاد دایرکتوری:
mkdir -p /opt/ibsng
cd /opt/ibsng
ایجاد فایل تنظیمات، با استفاده از ویرایشگر متنی (مانند nano)، فایل docker-compose.yml را ایجاد کنید:
nano docker-compose.yml
با استفاده از ویرایشگر متنی (مانند nano)، فایل docker-compose.yml را ایجاد کنید:
services:
ibsng:
image: ushkayanet-ibsng
container_name: ibsng
ports:
- "80:80" # Web Port (HTTP)
- "1812:1812/udp" # RADIUS Authentication Port
- "1813:1813/udp" # RADIUS Accounting Port
restart: unless-stopped
networks:
- ibsng_net
networks:
ibsng_net:
driver: bridge
نکته مهم در مورد پورتها:
- پورت: 80 برای دسترسی به پنل مدیریت تحت وب.
- پورت: 1812 برای تایید نام کاربری و رمز عبور کاربران در اتصال .
- پورت: 1813 برای محاسبه حجم و زمان مصرفی کاربران.
اگر روی سرور شما پورت 80 توسط وبسرور دیگری (مثل Nginx یا Apache) اشغال شده است، میتوانید خط “80:80” را به چیزی مثل “8080:80” تغییر دهید.
گام پنجم: راه اندازی سرویس IBSng
حالا که همه چیز آماده است، زمان آن رسیده که کانتینر IBSng را اجرا کنیم. در همان مسیری که فایل docker-compose.yml قرار دارد، دستور زیر را اجرا کنید:
docker compose up -d
سویچ -d باعث میشود کانتینر در پسزمینه (Background) اجرا شود. داکر به طور خودکار شبکه ibsng_net را ایجاد کرده و سرویس را بالا میآورد. برای اطمینان از اجرای صحیح سرویس، دستور زیر را بزنید:
docker ps
باید کانتینری با نام ibsng و وضعیت Up مشاهده کنید.
گام ششم: ورود به پنل مدیریت
تبریک میگوییم IBSng با موفقیت نصب شد. اکنون میتوانید از طریق مرورگر وب به پنل مدیریت دسترسی پیدا کنید.
- مرورگر خود را باز کنید.
- آدرس IP سرور خود را به صورت زیر وارد کنید :
- http://YOUR_SERVER_IP/IBSng/admin/
- اگر پورت وب را تغییر دادید (مثلا 8080)، آدرس به صورت http://YOUR_SERVER_IP:8080/IBSng/admin/ خواهد بود.
اطلاعات ورود پیشفرض:
- نام کاربر system:
- رمز عبور admin:
توجه امنیتی: بلافاصله پس از اولین ورود، حتما رمز عبور کاربر system را از طریق منوی “Admin User Information” تغییر دهید تا امنیت سرور شما به خطر نیفتد.
عیب یابی مشکلات نصب IBsng
در ادامه به عیب یابی مشکلات متداول در زمان نصب IBsng بر روی اوبونتو با استفاده از داکر میپردازیم:
1. پنل وب باز نمیشود:
- فایروال سرور (UFW) را چک کنید و مطمئن شوید پورت 80 باز است: ufw allow 80/tcp
- بررسی کنید کانتینر در حال اجرا باشد: docker ps
2. عدم اتصال کاربران خطای RADIUS:
- مطمئن شوید پورتهای 1812 و 1813 از نوع UDP در فایروال باز هستند.
- در تنظیمات NAS (میکروتیک یا سیسکو)، IP سرور IBSng و Secret Key را به درستی وارد کرده باشید.
3. زمان سرور نادرست است:
- کانتینر به صورت پیشفرض از زمان UTC استفاده میکند. برای تنظیم زمان ایران، میتوانید در فایل docker-compose.yml یک Volume برای ساعت اضافه کنید:
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
نتیجه گیری
استفاده از داکر برای نصب IBSng، راهکاری هوشمندانه برای غلبه بر مشکلات ناسازگاری پکیجها در لینوکسهای مدرن است. این روش نه تنها فرایند پیچیده و زمان بر نصب سنتی را به چند دستور ساده تبدیل میکند، بلکه با ایجاد محیطی ایزوله و پایدار، مدیریت و نگهداری سرویس اکانتینگ را برای مدیران شبکه بسیار آسانتر میسازد. با این رویکرد، شما میتوانید از قدرت IBSng بر روی جدید ترین نسخه های اوبونتو بدون نگرانی از خطاهای وابستگی (Dependency) بهرهمند شوید.
سوالات متداول
در روش قدیمی، ناسازگاری پکیجها در لینوکسهای جدید نصب را غیرممکن میکرد. داکر این مشکل را حل کرده و محیطی آماده، ایزوله و پایدار را بدون درگیری با وابستگیها فراهم میکند.
این مشکل به خاطر تحریمهای Docker Hub است. همانطور که در آموزش گفته شد، قبل از نصب باید DNSهای سرور را روی سرویسهایی مثل Electro (78.157.42.100) تنظیم کنید.
در فایل docker-compose.yml بخش ports را ویرایش کنید. مثلا با تغییر “80:80” به “8080:80″، پنل مدیریت روی پورت ۸۰۸۰ در دسترس خواهد بود.
برای اولین ورود از نام کاربری system و رمز عبور admin استفاده کنید. حتما بلافاصله پس از ورود، رمز را تغییر دهید.
منابع
- http://github.com/aliamg1356/IBSng-manager
- https://docs.docker.com/
- https://electrotm.org/
به این مقاله امتیاز دهید!
میانگین امتیاز 5 / 5. تعداد رأی ها : 6
هنوز هیچ رأیی داده نشده. اولین نفر باشید!



دیدگاه (2)
سلام وقتی دستور pip3 install ibsng میزنم ارور زیر را دریافت میکنمERROR: Could not find a version that satisfies the requirement ibsng (from versions: none) ERROR: No matching distribution found for ibsng
۰۶ آذر ۱۴۰۳سلام و وقت بخیر با توجه به خطایی که دریافت میکنید، بستهای به نام ibsng در مخزن رسمی PyPI وجود ندارد یا ممکن است نام بسته را اشتباه وارد کرده باشید. به نظر میرسد شما قصد دارید از pyibsng استفاده کنید، که یک کتابخانه موجود در PyPI است. برای رفع این مشکل، مراحل زیر را انجام دهید: 1. نصب درست کتابخانه pyibsng به جای دستور pip3 install ibsng، از دستور زیر استفاده کنید: pip3 install pyibsng2. اطمینان از بهروز بودن pip قبل از نصب، اطمینان حاصل کنید که نسخه pip شما بهروز است. میتوانید دستور زیر را اجرا کنید: pip3 install --upgrade pipدر صورتی که مشکل شما بر طرف نشد یا نیاز به راهنمایی بیشتری داشتید، سوال خود را مطرح نمایید تا بهطور دقیق و جامع راهنمایی لازم را ارائه دهیم. با احترام
۰۶ آذر ۱۴۰۳