Openwrt UCI
مقدمه ای بر UCI
ci
مخفف Unified Configuration Interface است و ابزاری قدرتمند برای ایجاد و مدیریت گزینه های پیکربندی در سیستم عامل امگا است. میتوانید uci
برای تغییر گزینههای زیرسیستمهایی مانند وایفای Omega، اتصال به شبکه یا حتی فایروال بدون نگرانی از موارد زیر استفاده کنید:
- ایجاد خطاهای نحوی در فایل های پیکربندی که گزینه های خاصی را از بین می برد
- جایی که فایل ها در واقع قرار دارند
فقط برای مرجع، فایل های پیکربندی موجود /etc/config
هستند و فایل های متنی ساده هستند.
نحو به این صورت است:
uci [OPTIONS] (COMMAND) [ARGUMENTS]
ما در این مقدمه بر روی (COMMAND)
و بخش ها تمرکز خواهیم کرد. [ARGUMENTS]
اینها دستوراتی هستند که در این مقدمه روی آنها تمرکز خواهیم کرد.
show
add
set
get
commit
همه نمونه ها روی یک فایل پیکربندی ساختگی اجرا می شوند /etc/config/foobar/
. اگر میخواهید همراه با مثالها دنبال کنید، این فایل را روی امگا خود ایجاد کنید:
touch /etc/config/foobar
استفاده عمومی
uci
به طور کلی در طول این فرآیند کار می کند:
- Stage (به طور موقت ذخیره می شود) با استفاده از دستوراتی مانند
uci add
یا به گزینه ها تغییر می کندuci set
- تغییرات مرحلهای را با استفاده از
uci commit
فراموش نکنید که uci commit
پس از انجام تمام تغییرات خود اجرا کنید، در غیر این صورت پیکربندی به روز نمی شود!
show
فایل های پیکربندی را در ترمینال چاپ می کند.
جزئیات پیکربندی UCI به زیرسیستم ها تقسیم می شود . هر زیرسیستم فایل مخصوص به خود را دارد /etc/config
و به بخش هایی تقسیم می شود که شامل گروه هایی از گزینه ها است.
به عنوان مثال، بیایید system
زیرسیستم روی امگا را بررسی کنیم. این شامل برخی از گزینه های اساسی مانند منطقه زمانی، نام میزبان (Omega-ABCD که در خط فرمان می بینید) و کنترل های LED است. دستور زیر را اجرا کنید:
uci show system
چیزی شبیه به:
system.@system[0]=system
system.@system[0].timezone='GMT0'
system.@system[0].ttylogin='0'
system.@system[0].log_size='64'
system.@system[0].urandom_seed='0'
system.@system[0].cronloglevel='8'
system.@system[0].hostname='Omega-F119'
system.ntp=timeserver
system.ntp.enabled='1'
system.ntp.enable_server='0'
system.ntp.server='0.lede.pool.ntp.org' '1.lede.pool.ntp.org' '2.lede.pool.ntp.org' '3.lede.pool.ntp.org'
system.@led[0]=led
system.@led[0].name='On'
system.@led[0].default='0'
system.@led[0].trigger='default-on'
system.@led[0].sysfs='omega2p:amber:system'
بیایید این را با فایل خام مقایسه کنیم. اجرا کن:
cat /etc/config/system
و چیزی شبیه به این دریافت خواهید کرد:
config system
option timezone 'GMT0'
option ttylogin '0'
option log_size '64'
option urandom_seed '0'
option cronloglevel '8'
option hostname 'Omega-F119'
config timeserver 'ntp'
option enabled '1'
option enable_server '0'
list server '0.lede.pool.ntp.org'
list server '1.lede.pool.ntp.org'
list server '2.lede.pool.ntp.org'
list server '3.lede.pool.ntp.org'
config led
option name 'On'
option default '0'
option trigger 'default-on'
option sysfs 'omega2p:amber:system'
ممکن است فایل فوق به اندازه کافی سازماندهی شده به نظر برسد. با این حال، اگر بخواهید آن را ویرایش کنید و اشتباه تایپی یا اشتباهی مرتکب شوید، میتوانید در هر برنامهای که به آن وابسته است، باگ یا خرابی ایجاد کنید، به خصوص در زمان بوت!
بخش ها
هنگام استفاده از uci show
بخش ها با فرمت زیر نمایش داده می شوند:
[SUBSYSTEM].[SECTIONNAME]=[TYPE]
بخش ها می توانند با نام یا بدون نام باشند. بخش های بدون نام جایگزین SECTIONNAME
فیلد می @TYPE[INDEX]
شوند INDEX
. ممکن است بیش از یک بخش بدون نام در یک فایل پیکربندی وجود داشته باشد و در صورت تمایل میتوانند در همان زمان باشند.
به عنوان مثال، firewall
پیکربندی شما می تواند چندین بخش از نوع rule
زیر داشته باشد:
firewall.@rule[0]=rule
firewall.@rule[0].name='Allow-ICMPv6-Input'
firewall.@rule[0].src='wan'
firewall.@rule[0].proto='icmp'
firewall.@rule[1]=rule
firewall.@rule[1].name='Allow-DHCPv6'
firewall.@rule[1].src='wan'
firewall.@rule[1].proto='udp'
...
(and so on)
مرجع : https://docs.onion.io/omega2-docs/intro-to-uci.html
پیکربندی مرکزی OpenWrt به چندین فایل واقع در /etc/config/
فهرست تقسیم می شود. هر فایل تقریباً به بخشی از سیستمی که پیکربندی می کند مربوط می شود. می توانید فایل های پیکربندی را با یک ویرایشگر متن ویرایش کنید یا آنها را با برنامه کاربردی خط فرمان تغییر دهید uci
. فایلهای پیکربندی UCI نیز از طریق APIهای برنامهنویسی مختلف (مانند Shell، Lua و C) قابل تغییر هستند، که همچنین اینگونه است که رابطهای وب مانند LuCI تغییراتی در فایلهای UCI ایجاد میکنند.
پس از تغییر یک فایل پیکربندی UCI، چه از طریق یک ویرایشگر متن یا خط فرمان، سرویسها یا فایلهای اجرایی که تحت تأثیر قرار میگیرند باید با یک فراخوانی init.d (یا در برخی موارد، به سادگی بارگیری مجدد شوند) شروع شوند ، به طوری که پیکربندی به روز شده UCI برای آنها اعمال می شود. بسیاری از برنامهها به این ترتیب با نوشتن فایلهای پیکربندی خاص نرمافزار استاندارد خود، اسکریپت init.d با UCI سازگار میشوند. اسکریپت init.d ابتدا چنین فایل پیکربندی را به درستی در محل مورد انتظار نرم افزار می نویسد و با راه اندازی مجدد فایل اجرایی دوباره خوانده می شود. توجه داشته باشید که فقط (دوباره) راهاندازی فایل اجرایی، بدون تماس init.d، منجر به بهروزرسانی UCI برای انتقال پیکربندی UCI به فایل پیکربندی مورد انتظار برنامه نمیشود . تغییرات در فایل ها در/etc/config/
سپس هیچ تاثیری نداشته باشد
به عنوان نمونه ای از تغییر پیکربندی UCI، فرض کنید می خواهید آدرس IP دستگاه را از پیش فرض ۱۹۲.۱۶۸.۱.۱
به تغییر دهید ۱۹۲.۱۶۸.۲.۱
. برای انجام این کار، با استفاده از هر ویرایشگر متنی مانند vi، خط را تغییر دهید.
option ipaddr ۱۹۲.۱۶۸.۱.۱
in the file/etc/config/network
to:
option ipaddr ۱۹۲.۱۶۸.۲.۱
Next, commit the settings by running
/etc/init.d/network restart
فایل های پیکربندی OPenwrt
فایل های پیکربندی
/etc/config/dhcp | تنظیمات Dnsmasq و odhcpd : DNS ، DHCP ، DHCPv6 |
/etc/config/dropbear | گزینه های سرور SSH |
/etc/config/firewall | NAT ، فیلتر بسته، ارسال پورت و غیره |
/etc/config/network | سوئیچ، رابط و پیکربندی مسیر: مبانی ، IPv4 ، IPv6 ، مسیرها ، قوانین ، WAN ، نامهای مستعار ، سوئیچها ، VLAN ، انتقال IPv4/IPv6 ، تونلسازی |
/etc/config/system | متفرقه تنظیمات سیستم، NTP ، RNG ، Watchcat |
/etc/config/wireless | تنظیمات بی سیم و تعریف شبکه وای فای |
IPv6 | |
---|---|
/etc/config/ahcpd | پروتکل پیکربندی Ad-Hoc (AHCP) پیکربندی سرور و ارسال کننده |
/etc/config/dhcp6c | سرویس گیرنده WIDE-DHCPv6 |
/etc/config/dhcp6s | سرور WIDE-DHCPv6 |
/etc/config/gw6c | پیکربندی مشتری GW6c |
دیگر | |
/etc/config/babeld | پیکربندی بابلد |
/etc/config/bbstored | پیکربندی سرور BoxBackup |
/etc/config/ddns | پیکربندی پویا DNS (ddns-scripts) |
/etc/config/dnscrypt-proxy | پروکسی DNSCrypt |
/etc/config/emailrelay | E-MailRelay: سرور SMTP ساده و پروکسی با پشتیبانی POP . ارسال ایمیل بسته |
/etc/config/etherwake | Wake-on-Lan: etherwake |
/etc/config/freifunk_p2pblock | از iptables layer7-، ipp2p- و ماژول های اخیر برای مسدود کردن ترافیک p2p/sharing استفاده می کند. |
/etc/config/fstab | نقاط را سوار کنید و تعویض کنید |
/etc/config/hd-idle | یک شبح غیرفعال دیگر برای هارد دیسک های متصل |
/etc/config/httpd | گزینه های وب سرور (Busybox httpd، منسوخ شده) |
/etc/config/ipset-dns | ipset-dns را پیکربندی کنید |
/etc/config/luci | پیکربندی پایه LuCI |
/etc/config/luci_statistics | پیکربندی بسته آماری |
/etc/config/mini_snmpd | تنظیمات mini_snmpd |
/etc/config/minidlna | تنظیمات MiniDLNA |
/etc/config/mjpg-streamer | برنامه پخش جریانی برای وب کم های سازگار با Linux-UVC |
/etc/config/mountd | دیمون خودکار OpenWrt |
/etc/config/mroute | فایل های پیکربندی برای چندین مسیر WAN |
/etc/config/multiwan | پیکربندی ساده چند WAN |
/etc/config/mwan3 | پیکربندی چند WAN با تعادل بار و شکست |
/etc/config/nodogsplash | پیکربندی nodogsplash |
/etc/config/ntpclient | گرفتن زمان مناسب |
/etc/config/nut_server | کنترل یک UPS (منبع تغذیه بدون وقفه) و/یا اشتراک گذاری با سایر میزبان ها |
/etc/config/nut_monitor | نظارت بر یک UPS (منبع تغذیه اضطراری) از یک میزبان راه دور یا سرور محلی آجیل |
/etc/config/nut_cgi | رابط کاربری وب برای NUT (مشاهده فقط در UCI) |
/etc/config/p910nd | پیکربندی برای چاپگر غیر اسپولینگ daemon p910nd.server |
/etc/config/pure-ftpd | پیکربندی سرور Pure-FTPd |
/etc/config/qos | اجرای کیفیت خدمات برای آپلود |
/etc/config/racoon | Racoon IPsec Daemon |
/etc/config/samba | تنظیمات فایل مایکروسافت و دیمون خدمات چاپ |
/etc/config/snmpd | تنظیمات SNMPd |
/etc/config/sqm | تنظیمات SQM |
/etc/config/sshtunnel | تنظیمات بستهsshtunnel |
/etc/config/stund | پیکربندی سرور STUN |
/etc/config/tinc | پیکربندی بسته tinc |
/etc/config/tor | پیکربندی Tor |
/etc/config/tor-hs | پیکربندی سرویس های مخفی Tor |
/etc/config/transmission | پیکربندی بیت تورنت |
/etc/config/uhttpd | گزینه های وب سرور (uHTTPd) |
/etc/config/upnpd | تنظیمات سرور miniupnpd UPnP |
/etc/config/users | پایگاه داده کاربران برای خدمات مختلف |
/etc/config/ushare | تنظیمات سرور UPnP را به اشتراک بگذارید |
/etc/config/vblade | vblade userspace AOE target |
/etc/config/vnstat | تنظیمات دانلودر vnstat |
/etc/config/wifitoggle | وای فای را با یک دکمه روشن کنید |
/etc/config/wol | Wake-on-Lan: wol |
/etc/config/znc | پیکربندی ZNC bouncer |
منبع : https://openwrt.org/docs/guide-user/base-system/uci
لیست دستورات Uci در openwrt
Command |
هدف | شرح |
---|---|---|
commit |
[<config>] |
تغییرات فایل پیکربندی داده شده یا اگر هیچ کدام داده نشده است، تمام فایل های پیکربندی را در سیستم فایل می نویسد. تمام دستورات «uci set»، «uci add»، «uci rename» و «uci delete» در یک مکان موقت قرار میگیرند و با «uci commit» فوراً فلش میشوند. این پس از ویرایش فایل های پیکربندی با ویرایشگر متن مورد نیاز نیست، بلکه برای اسکریپت ها، رابط های کاربری گرافیکی و سایر برنامه هایی که مستقیماً با فایل های UCI کار می کنند لازم است. |
batch |
– | یک اسکریپت UCI چند خطی را اجرا می کند که معمولاً در یک دستور سند اینجا پیچیده می شود. |
export |
[<config>] |
پیکربندی را در قالب قابل خواندن ماشین صادر می کند. به صورت داخلی برای ارزیابی فایل های پیکربندی به عنوان اسکریپت های پوسته استفاده می شود. |
import |
[<config>] |
فایل های پیکربندی را در نحو UCI وارد می کند. |
changes |
[<config>] |
تغییرات مرحلهای را در فایل پیکربندی دادهشده یا اگر هیچ کدام داده نشده است، همه فایلهای پیکربندی را فهرست کنید. |
add |
<config> <section-type> |
یک بخش ناشناس از نوع section-type به پیکربندی داده شده اضافه کنید. |
add_list |
<config>.<section>.<option>=<string> |
رشته داده شده را به یک گزینه لیست موجود اضافه کنید. |
del_list |
<config>.<section>.<option>=<string> |
رشته داده شده را از یک گزینه لیست موجود حذف کنید. |
show |
[<config>[.<section>[.<option>]]] |
گزینه، بخش یا پیکربندی داده شده را در نماد فشرده نشان دهید. |
get |
<config>.<section>[.<option>] |
مقدار گزینه داده شده یا نوع بخش داده شده را بدست آورید. |
set |
<config>.<section>[.<option>]=<value> |
مقدار گزینه داده شده را تنظیم کنید یا یک بخش جدید با نوع تنظیم شده به مقدار داده شده اضافه کنید. |
delete |
<config>.<section>[.<option>] |
بخش یا گزینه داده شده را حذف کنید. |
rename |
<config>.<section>[.<option>]=<name> |
نام گزینه یا بخش داده شده را به نام داده شده تغییر دهید. |
revert |
<config>[.<section>[.<option>]] |
گزینه، بخش یا فایل پیکربندی داده شده را برگردانید. |
reorder |
<config>.<section>=<position> |
یک بخش را به موقعیت دیگری منتقل کنید. |
-c <path> مسیر جستجو را برای فایلهای پیکربندی تنظیم کنید (پیشفرض: /etc/config)
-d <str> تعیینکننده جداکننده مقادیر لیست در uci نشان میدهد
-f <file> استفاده از <file> بهعنوان ورودی به جای stdin
-m هنگام وارد کردن، دادهها را در یک بسته موجود ادغام کنید
-n نام بخشهای بدون نام در صادرات (پیشفرض)
-N بخشهای بدون نام را نامگذاری نکنید
-p <path> یک مسیر جستجو برای فایلهای تغییر پیکربندی
اضافه کنید -P <path> یک مسیر جستجو اضافه کنید فایلها را تغییر دهید و از آن بهعنوان پیشفرض استفاده کنید
-q حالت آرام (پیامهای خطا را چاپ نکنید) -
حالت اجباری سخت (توقف خطاهای تجزیهکننده، پیشفرض)
-S غیرفعال کردن حالت سخت
-X از نحو توسعهیافته در «نمایش» استفاده نکنید

نمونه دستورات UCI برای شبکه :
Display just the value of an option
uci get httpd.@httpd[۰].port
Append an entry to a list
uci add_list system.ntp.server='۰.de.pool.ntp.org'
Replace a list completely
uci delete system.ntp.server uci add_list system.ntp.server='۰.de.pool.ntp.org' uci add_list system.ntp.server='۱.de.pool.ntp.org' uci add_list system.ntp.server='۲.de.pool.ntp.org'
Adding a new section to subsystem configuration
uci add SUBSYSTEM_NAME SECTION_NAME
It will generate a new section called SECTION_NAME inside the subsystem called SUBSYSTEM_NAME. Afterwards you can add keys to this section as normal. It will print an alphanumeric code that you can use as “section” for further adding keys to it.
See this example:
uci add firewall rule uci set firewall.@rule[-۱].src='wan'
Showing the not-yet-saved modified values
uci changes
Saving modified values of a single subsystem
uci commit SUBSYSTEM_NAME reload_config
Saving all modified values
uci commit reload_config
دسترسی SSH برای تازه واردان
یکی از روش های مدیریت OpenWrt استفاده از رابط خط فرمان بر روی SSH است. OpenWrt به طور پیش فرض به اتصالات SSH ورودی در پورت گوش می دهد ۲۲/tcp
. برای “ssh into your router”، می توانید با استفاده از آدرس IP LAN روتر خود، دستور زیر را در شبیه ساز ترمینال وارد کنید که معمولاً عبارت است از : ۱۹۲.۱۶۸.۱.۱
ssh root @ 192.168.1.1
اولین باری که به روتر خود ssh می کنید، احتمالاً هشداری در مورد اثر انگشت کلید RSA خواهید دید . اگر مطمئن هستید که این آدرس دستگاه OpenWrt شماست، به سادگی تایپ yes
کرده و Return را فشار دهید. سپس رمز عبوری که به روتر خود داده اید را وارد کنید یا اگر این تنظیمات اولیه است، Return را فشار دهید. در اینجا یک جلسه نمونه است:
$ ssh root@192.168.1.1 <== شما این را تایپ کنید اصالت میزبان "۱۹۲.۱۶۸.۱.۱ (۱۹۲.۱۶۸.۱.۱)" قابل اثبات نیست. اثر انگشت کلید RSA SHA256:4VbDA/MOc7inPiyllF5f0r3Q6iEx89ddKdhLGBovsiY است. آیا مطمئن هستید که می خواهید به اتصال ادامه دهید (بله/خیر)؟ بله <== و این هشدار: "۱۹۲.۱۶۸.۱.۱" (RSA) برای همیشه به لیست میزبان های شناخته شده اضافه شد. رمز عبور root@192.168.1.1: <== و رمز عبور در اینجا BusyBox نسخه ۱.۲۸.۴ () پوسته داخلی (خاکستر) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| بی سیم ------------------------------------------------ --- OpenWrt 18.06.2، r7676-cddd7b4c77 ------------------------------------------------ --- root@OpenWrt:~# <== دستور next را در اینجا تایپ کنید
برای پایان دادن به جلسه ssh به روتر خود، تایپ کرده exit
و Return را فشار دهید.
بقیه این صفحه چندین شبیه ساز ترمینال را توضیح می دهد که ویندوز، لینوکس یا macOS می توانند برای دسترسی به دستگاه OpenWrt شما استفاده کنند.
توجه: برای افزودن یک کلید عمومی SSH به دستگاه OpenWrt خود، از رابط وب LuCI رجوع کنید
شبیه سازهای ترمینال ویندوز
ترمینال ویندوز یا گزینه های قدیمی PowerShell، Command Prompt، ConHost یا WSL Bash در دسترس هستند. برنامه های شخص ثالث مانند PuTTY ، MinGW (نصب شده با Git)، Cmder، SmarTTY، و WinSCP نیز شبیه سازهای ترمینال هستند که می توانند SSH را در روتر OpenWrt ارائه دهند.
ترمینال های داخلی ویندوز ۱۰/۱۱
Windows Terminal ، PowerShell و Command Prompt اجازه استفاده از سرویس گیرنده SSH را می دهد. آن کلاینت اکنون به صورت پیشفرض در دسترس است، اما اگر نسخه ویندوز شما قدیمیتر است، میتوانید این راهنما را برای فعال کردن SSH دنبال کنید .
اگر یک توزیع WSL نصب کرده اید ، کلاینت SSH معمولاً در آنجا از قبل نصب شده است.
اگر مستقیماً راهاندازی کنید cmd.exe
، powershell.exe
یا wsl.exe
ترمینال قدیمی ConHost باز میشود. در غیر این صورت، می توانید ترمینال مدرن ویندوز را از فروشگاه MS نصب کنید و هر یک از این پوسته ها را از آنجا انتخاب کنید.
- هر یک از شبیه سازهای ترمینال بالا را باز کنید و بنویسید (“ssh” فرمان است، “root” کاربر OpenWrt است که به آن متصل می شوید و “۱۹۲.۱۶۸.۱.۱” IP
ssh root@192.168.1.1
پیش فرض OpenWrt است ). - پیامی مبنی بر پذیرش یک کلید جدید از دستگاه OpenWrt وجود دارد، “بله” را بنویسید و کلید Enter را فشار دهید.
- اگر به دلایلی OpenWrt را مجدداً نصب کرده باشید، دستگاه کلید دیگری خواهد داشت و با خطای عدم تطابق کلید مواجه می شوید. خطا بیان می کند که خط فرمان برای کپی-پیست کردن در ترمینال برای حذف کلید قدیمی و ادامه دادن چیست. انجامش بده و دوباره امتحان کن اگر با این کار خطا برطرف نشد، ممکن است لازم باشد حذف کنید
C:\Users\yourusername\.ssh\known_hosts
و دوباره امتحان کنید.
- اگر به دلایلی OpenWrt را مجدداً نصب کرده باشید، دستگاه کلید دیگری خواهد داشت و با خطای عدم تطابق کلید مواجه می شوید. خطا بیان می کند که خط فرمان برای کپی-پیست کردن در ترمینال برای حذف کلید قدیمی و ادامه دادن چیست. انجامش بده و دوباره امتحان کن اگر با این کار خطا برطرف نشد، ممکن است لازم باشد حذف کنید
- اگر میخواهید جلسه را ببندید، «خروج» را بنویسید.
ویژگی اختیاری SSH ویندوز همچنین شامل کلاینت SCP است (برای باز کردن/ویرایش/دانلود/آپلود فایل ها در OpenWrt از طریق SSH ). از آموزش های google for SCP برای یادگیری نحوه استفاده از آن استفاده کنید. در غیر این صورت، از WinSCP استفاده کنید که برای اهداف SCP راحت تر است.
پاورشل
Powershell دسترسی SSH را فراهم می کند .
زیرسیستم ویندوز برای لینوکس (WSL)
زیرسیستم ویندوز برای لینوکس روشی مناسب برای اجرای یک محیط لینوکس به انتخاب شما از جمله اکثر ابزارهای خط فرمان، ابزارهای کمکی و برنامه های کاربردی مستقیماً در ویندوز است. برای جزئیات دقیق نحوه نصب WSL در ویندوز ۱۰، به مستندات مایکروسافت مراجعه کنید: https://docs.microsoft.com/en-us/windows/wsl/install-win10
بتونه
PuTTY به شما امکان دسترسی خط فرمان به OpenWrt را می دهد.
- PuTTY را دانلود کنید، ۳۲ بیت
putty.exe
را ازAlternative binary files
بخش دریافت کنید. - در سرویس گیرنده ویندوز خود شروع
putty.exe
کنید → پنجره ورود PuTTY ظاهر می شود. - به
Session
رده پنجره ورود PuTTY بروید، به دنبال فیلد بگردید و به سادگی آدرس IP (به عنوان مثال ۱۹۲.۱۶۸.۱.۱ ) دستگاه OpenWrt خود را وارد کنید، پورت ۲۲ پیش فرض ارائه شده را نگه دارید .Host Name (or IP address)
- روی
Open
دکمه در پایین کلیک کنید تا یک اتصال باز شود. با این کار یک پنجره پوسته ظاهر می شود که از شما خواسته میlogin as
شود. با رمز عبور OpenWrt که مدتی قبل تعریف کرده اید به عنوان root وارد شوید. اگر هنوز رمز عبوری را روی “root” تنظیم نکرده اید، رمز عبور از شما خواسته نمی شود. - تمام شد، شما وارد خط فرمان OpenWrt شده اید.
تنظیم احراز هویت مبتنی بر کلید.
- یک جفت کلید با استفاده از
puttygen.exe
. کلید خصوصی را در رایانه شخصی ذخیره کنید و کلید عمومی را به/etc/dropbear/authorized_keys
دستگاه OpenWrt خود اضافه کنید. - Connection → SSH → Auth: در کادر «Parameters Authentication» در زیر «Private key file for Authentication» مسیر فایل کلید خصوصی خود را برای این اتصال (مثلاً
openwrt.ppk
فایلی که قبلا ایجاد کرده اید) ذکر کنید. بهترین کار این است که روی «مرور…» کلیک کنید و فایل را از طریق گفتگوی فایل انتخاب کنید.
اتصالات خودکار
- اتصال → داده: در کادر «جزئیات ورود»، «نام کاربری ورود خودکار» را وارد کنید
root
. - یک جلسه ذخیره شده را بارگیری، ذخیره یا حذف کنید،
openwrt.lan
در Saved Sessions وارد شده و روی دکمه Save کلیک کنید. - برای ایجاد یک میانبر PuTTY با ورود خودکار، یکی ایجاد کنید و جلسه ذخیره شده را با یک
@
علامت اضافه کنید، به عنوان مثال PuTTY را با:putty.exe @openwrt.lan
WinSCP
WinSCP به شما امکان می دهد فایل سیستم OpenWrt را در Windows Exlorer مانند GUI -style مرور کنید.
- WinSCP را دانلود کنید، نسخه بتا
Installation package
یا غیربتا را دریافتportable executables
کنید و آنها را در کلاینت ویندوز خود نصب یا از حالت فشرده خارج کنید - در کلاینت ویندوز خود شروع
WinSCP.exe
کنید، پنجره ورود به سیستم WinSCP ظاهر می شود - روی
New Site
سمت چپ کلیک کنید، مطمئن شوید که روی scpFile protocol
تنظیم شده است، سپس آدرس IP دستگاه OpenWrt خود (192.168.1.1) را در سمت راست وارد کنید، پورت پیش فرض را نگه دارید . در root root ، در ، رمز عبور root خود را وارد کنید (یا اگر هنوز رمز عبور تنظیم نکرده اید، آن را خالی بگذارید)Host name
۲۲
User name
Password
Login
در پایین پنجره کلیک کنید .- انجام شده. اکنون یک نمای Exlorer مانند از سیستم فایل OpenWrt خود دارید.
ویرایش فایل های پیکربندی OpenWrt با ویرایشگر رابط کاربری گرافیکی یکپارچه WinSCP.
- برای ویرایش یک فایل پیکربندی OpenWrt با ویرایشگر مبتنی بر رابط کاربری گرافیکی WinSCP ، فقط روی فایل در WinSCP کلیک راست کرده و
Edit
از منوی زمینه انتخاب کنید.
Cmder
Cmder برای ویندوز یک شبیه ساز ترمینال منبع باز است که بر روی ویندوز اجرا می شود. استفاده از آن رایگان است و یک “پوسته خط فرمان” آسان را ارائه می دهد که به شما امکان می دهد به OpenWrt ssh کنید. فونت های جذاب و رنگ بندی آن برای چشم ها آسان است. توزیع کامل ترجیح داده می شود (به توزیع کوچک )، زیرا یک شبیه سازی bash را با مجموعه ای از دستورات Unix-y ارائه می دهد.
- Cmder را دانلود کنید .
- فایل cmder.zip را از حالت فشرده خارج کنید.
- پوشه Cmder را باز کنید و روی نماد Cmder دوبار کلیک کنید. پنجره Cmder را می بینید که مشابه تصویر زیر باز می شود.
- برای ssh به روتر OpenWrt در ۱۹۲.۱۶۸.۱.۱، تایپ کنید
ssh root@192.168.1.1
و سپس Return را فشار دهید.
SmartTTY
SmarTTY به شما امکان دسترسی خط فرمان به OpenWrt را می دهد و به شما امکان می دهد فایل ها را در OpenWrt باز/ویرایش/دانلود/آپلود کنید و به طور کلی مدرن تر و کاربرپسندتر از PuTTY است (ابزار دیگری که در زیر توضیح داده شده است).
- SmartTTY را دانلود کنید، «دانلود» را برای نصبکننده یا «نسخه قابل حمل» را انتخاب کنید اگر میخواهید آن را به عنوان یک برنامه مستقل که بدون نصب کار میکند، انتخاب کنید.
- پس از نصب یا پس از باز کردن آرشیو، روی فایل اجرایی SmartTTY دوبار کلیک کنید.
- با پنجره ای با دو گزینه روبرو می شوید، روی “تنظیم یک اتصال SSH جدید ” دوبار کلیک کنید (گزینه دیگر برای اتصالات سریال است، برای دانگل های usb- TTL و مواردی که به پین های سریال اشکال زدایی دستگاه روی برد متصل می شوید، برنده شدیم. اکنون از آن استفاده نکنید).
- پنجره به تنظیمات SSH تغییر می کند ، اطلاعات زیر را بنویسید:
- نام میزبان: آدرس IP دستگاه OpenWrt (پیشفرض ۱۹۲.۱۶۸.۱.۱ است )
- نام کاربری: root (این “مدیر” و تنها کاربر در OpenWrt پیش فرض است)
- رمز عبور: این قسمت را برای اولین اتصال خود خالی بگذارید، سپس رمز عبوری را که تنظیم کرده اید بنویسید (چه در Luci GUI یا بعد از اولین دسترسی SSH )
- روی دکمه “اتصال” در پایین کلیک کنید و اکنون صفحه ترمینال بزرگی را خواهید دید
- یک میانافزار پیشفرض OpenWrt فاقد مؤلفه سرور است که به شما امکان میدهد فایلها را در SmartTTY باز/ویرایش/مشاهده/آپلود/دانلود کنید، بنابراین پس از اتصال به اینترنت
opkg update && opkg install openssh-sftp-server
برای نصب آن بنویسید. اگر مرحله بعدی ناموفق بود، ممکن است لازم باشد دستگاه OpenWrt را مجددا راه اندازی کنید تا این سرویس جدید به درستی راه اندازی شود. - اکنون میتوانید روی File → Open a Remote File کلیک کنید تا پنجرهای باز شود که سیستم فایل دستگاه OpenWrt را نشان میدهد و میتوانید در آن پیمایش کنید و فایلهای متنی را برای مثال به طور معمول باز کنید (آنها در یک پنجره ویرایشگر متنی SmartTTY باز میشوند)
- اگر میخواهید فایلها را در/از یک پوشه خاص در دستگاه آپلود یا دانلود کنید، میتوانید روی منوی SCP کلیک کنید و مناسبترین اقدام را از آنجا انتخاب کنید.
پس از اولین باری که به دستگاهی وصل شدید، SmarTTY یک نمایه را ذخیره کرد، بنابراین می توانید با دوبار کلیک کردن روی نماد آن در اولین پنجره ای که هنگام راه اندازی SmartTTY می بینید، دوباره به همان دستگاه (در آن آدرس IP با آن رمز عبور) متصل شوید. در صورت نیاز می توانید روی این نماد نمایه کلیک راست کنید تا دوباره آن را ویرایش کنید.
شبیه ساز ترمینال لینوکس
همه توزیعهای لینوکس یک سرویس گیرنده ssh خط فرمان را به عنوان بخشی از نصب پیشفرض ارائه میکنند.
- یک شبیه ساز ترمینال را باز کنید و بنویسید (“ssh” فرمان است، “root” کاربر OpenWrt است که به آن متصل می شوید و “۱۹۲.۱۶۸.۱.۱” IP
ssh root@192.168.1.1
پیش فرض OpenWrt است ) - پیامی در مورد پذیرش یک کلید جدید از دستگاه OpenWrt وجود دارد، “بله” را بنویسید و کلید Enter را فشار دهید.
- اگر به دلایلی OpenWrt را مجدداً نصب کرده باشید، دستگاه کلید دیگری خواهد داشت و با خطای عدم تطابق کلید مواجه می شوید. خطا بیان می کند که خط فرمان برای کپی-پیست کردن در ترمینال برای حذف کلید قدیمی و ادامه دادن چیست.
- اگر می خواهید جلسه را ببندید، “خروج” را بنویسید
لینوکس همچنین معمولاً دارای کلاینت های SCP/ SFTP (برای باز کردن/ویرایش/دانلود/آپلود فایل ها در OpenWrt) است که ممکن است به صورت پیش فرض نصب شوند یا نباشند. شما باید اسناد توزیع خود را جستجو کنید یا با رابط مدیریت بسته خود برای “scp” و “sftp” جستجو کنید تا مکان و وضعیت نصب فعلی آن را پیدا کنید. راهنمای scp را برای سرویس گیرنده SCP خط فرمان بخوانید یا چند آموزش را در گوگل جستجو کنید تا نحوه استفاده از آن را بیاموزید.
فرمانده نیمه شب
Midnight Commander نرم افزار Norton Commander مانند فایل منیجر است که روی لینوکس و macOS کار می کند. می توانید از طریق mc به فایل های راه دور در OpenWrt دسترسی داشته باشید:
- ‘F9’ را فشار دهید
- تنظیمات پنل “چپ” را انتخاب کنید
- “پیوند پوسته” را انتخاب کنید
- “root@192.168.1.1/” را وارد کرده و OK را فشار دهید
- اکنون لیستی از فایل ها و دایرکتوری ها را در ریشه OpenWrt خواهید دید
در داخل بر روی scp مانند پروتکل FISH کار می کند بنابراین به سرور SFTP نصب شده نیاز ندارد .
شبیه سازهای ترمینال macOS
در macOS (مک OSX سابق) هر شبیه ساز ترمینال به شما امکان ssh را می دهد.
- ترمینال – برنامه ترمینال داخلی macOS، آن را در /Applications/Utilities پیدا کنید.
- iTerm2 یک برنامه ترمینال بسیار پیشرفته، ابزار اهدایی – ارزشش را دارد.
برای ssh به روتر OpenWrt خود در ۱۹۲.۱۶۸.۱.۱، تایپ کنید ssh root@192.168.1.1
، سپس Return را فشار دهید.
شبیه ساز ترمینال ChromeOS
منبع : https://openwrt.org/docs/guide-user/base-system/uci
منبع۲ :https://openwrt.org/docs/guide-quick-start/sshadministration
[…] Openwrt UCI […]