Openwrt UCI
Unified Configuration Interface (UCI) یک ابزار قدرتمند و جامع برای مدیریت و ایجاد گزینههای پیکربندی در سیستمعامل امگا است. این ابزار به کاربران اجازه میدهد تا تنظیمات مختلفی را برای زیرسیستمهای متفاوت مانند وایفای، اتصال به شبکه، و حتی فایروال، به سادگی و بدون نگرانی از ایجاد خطاهای نحوی یا مکان فایلهای پیکربندی تغییر دهند. استفاده از UCI به ویژه برای مدیران سیستم، متخصصان پشتیبانی IT، و کسانی که با خدمات شبکه و فناوری اطلاعات سروکار دارند، بسیار مفید است. این مقاله با هدف ارائه یک معرفی جامع از UCI، نحوه استفاده از آن، و مثالهای کاربردی در مدیریت پیکربندی سیستمهای امگا نگاشته شده است.
نحو UCI
UCI از یک نحو ساده و قابل درک برای تعامل با فایلهای پیکربندی استفاده میکند. این نحو به شکل زیر است:
uci [OPTIONS] (COMMAND) [ARGUMENTS]
در این دستور، [OPTIONS]
شامل گزینههای اضافی است که میتوانند به دستور اضافه شوند، (COMMAND)
دستور اصلی است که باید اجرا شود، و [ARGUMENTS]
آرگومانهایی هستند که به دستور اضافه میشوند. برخی از دستورات اصلی UCI شامل موارد زیر هستند:
show
: نمایش تنظیمات فعلی.add
: اضافه کردن یک بخش جدید.set
: تنظیم یک گزینه خاص.get
: دریافت مقدار یک گزینه.commit
: ذخیره تغییرات موقتی.
ایجاد فایل پیکربندی
برای شروع کار با UCI، نیاز به یک فایل پیکربندی دارید. به عنوان مثال، برای ایجاد یک فایل پیکربندی ساختگی به نام foobar
، میتوانید از دستور زیر استفاده کنید:
touch /etc/config/foobar
این فایل به عنوان نمونهای برای تمرین و آزمایش دستورات UCI استفاده خواهد شد.
استفاده عمومی از UCI
روند کار با UCI به طور کلی شامل مراحل زیر است:
- مرحلهای کردن تغییرات: با استفاده از دستورات
uci add
یاuci set
تغییرات به طور موقت اعمال میشوند. - ذخیره نهایی تغییرات: با اجرای دستور
uci commit
، تغییرات موقتی به صورت دائمی ذخیره میشوند.
توجه داشته باشید که فراموش کردن اجرای uci commit
پس از اعمال تغییرات، باعث عدم بهروزرسانی پیکربندی سیستم میشود.
مثال: اضافه کردن یک بخش جدید
فرض کنید میخواهید یک بخش جدید به فایل پیکربندی foobar
اضافه کنید. برای این کار از دستور uci add
استفاده میکنید:
uci add foobar section
این دستور یک بخش جدید به نام section
به فایل foobar
اضافه میکند. برای مشاهده تغییرات میتوانید از دستور uci show
استفاده کنید:
uci show foobar
مثال: تنظیم یک گزینه
برای تنظیم یک گزینه خاص در یک بخش از فایل پیکربندی، از دستور uci set
استفاده کنید. به عنوان مثال، اگر بخواهید مقدار گزینه option1
را در بخش section
تنظیم کنید، دستور زیر را اجرا کنید:
uci set foobar.section.option1='value'
پس از تنظیم گزینهها، باید تغییرات را با دستور uci commit
ذخیره نهایی کنید:
uci commit foobar
نمایش فایلهای پیکربندی
دستور uci show
برای نمایش تنظیمات فعلی فایلهای پیکربندی استفاده میشود. هر زیرسیستم در سیستمعامل امگا فایل پیکربندی مخصوص به خود را دارد که در دایرکتوری /etc/config
ذخیره میشود. این فایلها به بخشهایی تقسیم میشوند که هر بخش شامل گروهی از گزینهها است.
مثال: نمایش تنظیمات سیستم
برای مثال، دستور زیر تنظیمات زیرسیستم system
را نمایش میدهد:
uci show system
خروجی این دستور شامل اطلاعاتی نظیر منطقه زمانی، نام میزبان و تنظیمات LED خواهد بود. به عنوان مثال:
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'
مقایسه با فایل خام
برای درک بهتر ساختار فایلهای پیکربندی، میتوانید محتوای فایل خام system
را مشاهده کنید:
cat /etc/config/system
این فایل شامل بخشهای مختلفی از تنظیمات است که به صورت دستی نیز قابل ویرایش هستند. با این حال، استفاده از UCI برای اعمال تغییرات ایمنتر و موثرتر است.
محتوای فایل خام به شکل زیر است:
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]
بخشها میتوانند با نام یا بدون نام باشند. بخشهای بدون نام به صورت [TYPE][INDEX]
نمایش داده میشوند. به عنوان مثال، پیکربندی فایروال ممکن است چندین بخش از نوع 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'
...
پیکربندی مرکزی OpenWrt
پیکربندی مرکزی OpenWrt به چندین فایل در دایرکتوری /etc/config/
تقسیم میشود. هر فایل مرتبط با بخشی از سیستم است که پیکربندی میکند. فایلهای پیکربندی را میتوان با ویرایشگر متن یا با استفاده از UCI تغییر داد. همچنین، این فایلها از طریق APIهای مختلف برنامهنویسی قابل تغییر هستند که این قابلیت امکان تغییر پیکربندیها را از طریق اسکریپتها و رابطهای وب فراهم میکند.
استفاده از UCI برای مدیریت پیکربندی شبکه
یکی از کاربردهای مهم UCI در مدیریت پیکربندی شبکه است. با استفاده از UCI میتوان تنظیمات مربوط به شبکه را به سادگی تغییر داد و مدیریت کرد. در ادامه به برخی از کاربردهای UCI در پیکربندی شبکه میپردازیم.
تغییر آدرس IP
فرض کنید میخواهید آدرس IP دستگاه را از 192.168.1.1 به 192.168.2.1 تغییر دهید. برای این کار، خط مربوطه را در فایل /etc/config/network
به صورت زیر تغییر دهید:
uci set network.lan.ipaddr='192.168.2.1'
uci commit network
/etc/init.d/network restart
این دستورات آدرس IP دستگاه را تغییر داده و تنظیمات جدید را اعمال میکند.
تنظیم DHCP
برای تنظیم DHCP میتوانید از دستورات زیر استفاده کنید:
uci set dhcp.lan.start='100'
uci set dhcp.lan.limit='150'
uci set dhcp.lan.leasetime='12h'
uci commit dhcp
/etc/init.d/dnsmasq restart
این دستورات محدوده DHCP، تعداد آدرسهای قابل تخصیص، و زمان اجاره آدرسها را تنظیم میکند.
استفاده از UCI برای مدیریت فایروال
فایروال یکی از اجزای حیاتی در هر سیستم شبکهای است. با استفاده از UCI میتوان به سادگی قوانین فایروال را تنظیم و مدیریت کرد.
اضافه کردن یک قانون جدید
برای اضافه کردن یک
قانون جدید به فایروال، از دستورات زیر استفاده کنید:
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-HTTP'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].proto='tcp'
uci set firewall.@rule[-1].dest_port='80'
uci set firewall.@rule[-1].target='ACCEPT'
uci commit firewall
/etc/init.d/firewall restart
این دستورات یک قانون جدید برای اجازه دادن به ترافیک HTTP از شبکه خارجی اضافه میکند.
استفاده از UCI برای مدیریت وایفای
پیکربندی وایفای یکی دیگر از کاربردهای مهم UCI است. با استفاده از UCI میتوانید تنظیمات مربوط به وایفای را به سادگی تغییر دهید.
تنظیم SSID و کلید رمزنگاری
برای تنظیم SSID و کلید رمزنگاری شبکه وایفای، از دستورات زیر استفاده کنید:
uci set wireless.@wifi-iface[0].ssid='MyNetwork'
uci set wireless.@wifi-iface[0].key='MyPassword'
uci commit wireless
/etc/init.d/network restart
این دستورات SSID و کلید رمزنگاری شبکه وایفای را تنظیم میکند.
نتیجهگیری
UCI یک ابزار کارآمد و ساده برای مدیریت پیکربندی سیستمعامل امگا است. با استفاده از این ابزار، میتوانید بدون نگرانی از خطاهای نحوی یا مکان فایلهای پیکربندی، به راحتی تنظیمات سیستم را تغییر دهید و مدیریت کنید. این امکان به ویژه برای مدیران سیستم و افرادی که به پشتیبانی IT و خدمات شبکه و فناوری اطلاعات مشغول هستند، بسیار مفید و ضروری است. UCI با ارائه یک رابط کاربری یکپارچه و ساده، باعث سهولت در مدیریت و کاهش احتمال خطاهای پیکربندی میشود.
منابع
پیوست: دستورات UCI مفید
در این بخش، مجموعهای از دستورات مفید UCI که میتوانند در مدیریت پیکربندی سیستمعامل امگا به شما کمک کنند، ارائه میشود.
نمایش پیکربندیها
برای نمایش تمامی پیکربندیهای یک زیرسیستم خاص:
uci show [subsystem]
برای نمایش مقدار یک گزینه خاص:
uci get [subsystem].[section].[option]
تنظیم و اضافه کردن پیکربندیها
برای تنظیم مقدار یک گزینه خاص:
uci set [subsystem].[section].[option]='value'
برای اضافه کردن یک بخش جدید:
uci add [subsystem] [section_type]
حذف پیکربندیها
برای حذف یک بخش خاص:
uci delete [subsystem].[section]
برای حذف یک گزینه خاص:
uci delete [subsystem].[section].[option]
ذخیره تغییرات
برای ذخیره تمامی تغییرات موقتی:
uci commit [subsystem]
بارگذاری مجدد تنظیمات
برای بارگذاری مجدد تنظیمات شبکه:
/etc/init.d/network restart
برای بارگذاری مجدد تنظیمات فایروال:
/etc/init.d/firewall 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[0].port
Append an entry to a list
uci add_list system.ntp.server='0.de.pool.ntp.org'
Replace a list completely
uci delete system.ntp.server uci add_list system.ntp.server='0.de.pool.ntp.org' uci add_list system.ntp.server='1.de.pool.ntp.org' uci add_list system.ntp.server='2.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[-1].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 ورودی در پورت گوش می دهد 22/tcp
. برای “ssh into your router”، می توانید با استفاده از آدرس IP LAN روتر خود، دستور زیر را در شبیه ساز ترمینال وارد کنید که معمولاً عبارت است از : 192.168.1.1
ssh root @ 192.168.1.1
اولین باری که به روتر خود ssh می کنید، احتمالاً هشداری در مورد اثر انگشت کلید RSA خواهید دید . اگر مطمئن هستید که این آدرس دستگاه OpenWrt شماست، به سادگی تایپ yes
کرده و Return را فشار دهید. سپس رمز عبوری که به روتر خود داده اید را وارد کنید یا اگر این تنظیمات اولیه است، Return را فشار دهید. در اینجا یک جلسه نمونه است:
$ ssh [email protected] <== شما این را تایپ کنید اصالت میزبان "192.168.1.1 (192.168.1.1)" قابل اثبات نیست. اثر انگشت کلید RSA SHA256:4VbDA/MOc7inPiyllF5f0r3Q6iEx89ddKdhLGBovsiY است. آیا مطمئن هستید که می خواهید به اتصال ادامه دهید (بله/خیر)؟ بله <== و این هشدار: "192.168.1.1" (RSA) برای همیشه به لیست میزبان های شناخته شده اضافه شد. رمز عبور [email protected]: <== و رمز عبور در اینجا BusyBox نسخه 1.28.4 () پوسته داخلی (خاکستر) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| بی سیم ------------------------------------------------ --- 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 ارائه دهند.
ترمینال های داخلی ویندوز 10/11
Windows Terminal ، PowerShell و Command Prompt اجازه استفاده از سرویس گیرنده SSH را می دهد. آن کلاینت اکنون به صورت پیشفرض در دسترس است، اما اگر نسخه ویندوز شما قدیمیتر است، میتوانید این راهنما را برای فعال کردن SSH دنبال کنید .
اگر یک توزیع WSL نصب کرده اید ، کلاینت SSH معمولاً در آنجا از قبل نصب شده است.
اگر مستقیماً راهاندازی کنید cmd.exe
، powershell.exe
یا wsl.exe
ترمینال قدیمی ConHost باز میشود. در غیر این صورت، می توانید ترمینال مدرن ویندوز را از فروشگاه MS نصب کنید و هر یک از این پوسته ها را از آنجا انتخاب کنید.
- هر یک از شبیه سازهای ترمینال بالا را باز کنید و بنویسید (“ssh” فرمان است، “root” کاربر OpenWrt است که به آن متصل می شوید و “192.168.1.1” IP
ssh [email protected]
پیش فرض OpenWrt است ). - پیامی مبنی بر پذیرش یک کلید جدید از دستگاه OpenWrt وجود دارد، “بله” را بنویسید و کلید Enter را فشار دهید.
- اگر به دلایلی OpenWrt را مجدداً نصب کرده باشید، دستگاه کلید دیگری خواهد داشت و با خطای عدم تطابق کلید مواجه می شوید. خطا بیان می کند که خط فرمان برای کپی-پیست کردن در ترمینال برای حذف کلید قدیمی و ادامه دادن چیست. انجامش بده و دوباره امتحان کن اگر با این کار خطا برطرف نشد، ممکن است لازم باشد حذف کنید
C:\Users\yourusername\.ssh\known_hosts
و دوباره امتحان کنید.
- اگر به دلایلی OpenWrt را مجدداً نصب کرده باشید، دستگاه کلید دیگری خواهد داشت و با خطای عدم تطابق کلید مواجه می شوید. خطا بیان می کند که خط فرمان برای کپی-پیست کردن در ترمینال برای حذف کلید قدیمی و ادامه دادن چیست. انجامش بده و دوباره امتحان کن اگر با این کار خطا برطرف نشد، ممکن است لازم باشد حذف کنید
- اگر میخواهید جلسه را ببندید، «خروج» را بنویسید.
ویژگی اختیاری SSH ویندوز همچنین شامل کلاینت SCP است (برای باز کردن/ویرایش/دانلود/آپلود فایل ها در OpenWrt از طریق SSH ). از آموزش های google for SCP برای یادگیری نحوه استفاده از آن استفاده کنید. در غیر این صورت، از WinSCP استفاده کنید که برای اهداف SCP راحت تر است.
پاورشل
Powershell دسترسی SSH را فراهم می کند .
زیرسیستم ویندوز برای لینوکس (WSL)
زیرسیستم ویندوز برای لینوکس روشی مناسب برای اجرای یک محیط لینوکس به انتخاب شما از جمله اکثر ابزارهای خط فرمان، ابزارهای کمکی و برنامه های کاربردی مستقیماً در ویندوز است. برای جزئیات دقیق نحوه نصب WSL در ویندوز 10، به مستندات مایکروسافت مراجعه کنید: https://docs.microsoft.com/en-us/windows/wsl/install-win10
بتونه
PuTTY به شما امکان دسترسی خط فرمان به OpenWrt را می دهد.
- PuTTY را دانلود کنید، 32 بیت
putty.exe
را ازAlternative binary files
بخش دریافت کنید. - در سرویس گیرنده ویندوز خود شروع
putty.exe
کنید → پنجره ورود PuTTY ظاهر می شود. - به
Session
رده پنجره ورود PuTTY بروید، به دنبال فیلد بگردید و به سادگی آدرس IP (به عنوان مثال 192.168.1.1 ) دستگاه OpenWrt خود را وارد کنید، پورت 22 پیش فرض ارائه شده را نگه دارید .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
22
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 در 192.168.1.1، تایپ کنید
ssh [email protected]
و سپس Return را فشار دهید.
SmartTTY
SmarTTY به شما امکان دسترسی خط فرمان به OpenWrt را می دهد و به شما امکان می دهد فایل ها را در OpenWrt باز/ویرایش/دانلود/آپلود کنید و به طور کلی مدرن تر و کاربرپسندتر از PuTTY است (ابزار دیگری که در زیر توضیح داده شده است).
- SmartTTY را دانلود کنید، «دانلود» را برای نصبکننده یا «نسخه قابل حمل» را انتخاب کنید اگر میخواهید آن را به عنوان یک برنامه مستقل که بدون نصب کار میکند، انتخاب کنید.
- پس از نصب یا پس از باز کردن آرشیو، روی فایل اجرایی SmartTTY دوبار کلیک کنید.
- با پنجره ای با دو گزینه روبرو می شوید، روی “تنظیم یک اتصال SSH جدید ” دوبار کلیک کنید (گزینه دیگر برای اتصالات سریال است، برای دانگل های usb- TTL و مواردی که به پین های سریال اشکال زدایی دستگاه روی برد متصل می شوید، برنده شدیم. اکنون از آن استفاده نکنید).
- پنجره به تنظیمات SSH تغییر می کند ، اطلاعات زیر را بنویسید:
- نام میزبان: آدرس IP دستگاه OpenWrt (پیشفرض 192.168.1.1 است )
- نام کاربری: 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 است که به آن متصل می شوید و “192.168.1.1” IP
ssh [email protected]
پیش فرض OpenWrt است ) - پیامی در مورد پذیرش یک کلید جدید از دستگاه OpenWrt وجود دارد، “بله” را بنویسید و کلید Enter را فشار دهید.
- اگر به دلایلی OpenWrt را مجدداً نصب کرده باشید، دستگاه کلید دیگری خواهد داشت و با خطای عدم تطابق کلید مواجه می شوید. خطا بیان می کند که خط فرمان برای کپی-پیست کردن در ترمینال برای حذف کلید قدیمی و ادامه دادن چیست.
- اگر می خواهید جلسه را ببندید، “خروج” را بنویسید
لینوکس همچنین معمولاً دارای کلاینت های SCP/ SFTP (برای باز کردن/ویرایش/دانلود/آپلود فایل ها در OpenWrt) است که ممکن است به صورت پیش فرض نصب شوند یا نباشند. شما باید اسناد توزیع خود را جستجو کنید یا با رابط مدیریت بسته خود برای “scp” و “sftp” جستجو کنید تا مکان و وضعیت نصب فعلی آن را پیدا کنید. راهنمای scp را برای سرویس گیرنده SCP خط فرمان بخوانید یا چند آموزش را در گوگل جستجو کنید تا نحوه استفاده از آن را بیاموزید.
فرمانده نیمه شب
Midnight Commander نرم افزار Norton Commander مانند فایل منیجر است که روی لینوکس و macOS کار می کند. می توانید از طریق mc به فایل های راه دور در OpenWrt دسترسی داشته باشید:
- ‘F9’ را فشار دهید
- تنظیمات پنل “چپ” را انتخاب کنید
- “پیوند پوسته” را انتخاب کنید
- “[email protected]/” را وارد کرده و OK را فشار دهید
- اکنون لیستی از فایل ها و دایرکتوری ها را در ریشه OpenWrt خواهید دید
در داخل بر روی scp مانند پروتکل FISH کار می کند بنابراین به سرور SFTP نصب شده نیاز ندارد .
شبیه سازهای ترمینال macOS
در macOS (مک OSX سابق) هر شبیه ساز ترمینال به شما امکان ssh را می دهد.
- ترمینال – برنامه ترمینال داخلی macOS، آن را در /Applications/Utilities پیدا کنید.
- iTerm2 یک برنامه ترمینال بسیار پیشرفته، ابزار اهدایی – ارزشش را دارد.
برای ssh به روتر OpenWrt خود در 192.168.1.1، تایپ کنید ssh [email protected]
، سپس Return را فشار دهید.
شبیه ساز ترمینال ChromeOS
منبع : https://openwrt.org/docs/guide-user/base-system/uci
منبع2 :https://openwrt.org/docs/guide-quick-start/sshadministration
یک نظر
[…] Openwrt UCI […]