انجمنهای فارسی اوبونتو
کمک و پشتیبانی => راهنماها، نکات و ترفندها => نویسنده: آرمان اسماعیلی در 15 فروردین 1400، 11:39 بظ
-
من یک بورد Raspberry Pi 4B دارم که از طریق کابل شبکه متصلش کردهم به لپتاپ تا یک LAN درست بشه. از این اتصال فقط برای گرفتن نشستهای SSH و VNC استفاده میکنم. پس لازمه که هم لپتاپ و هم SBC، از راه WiFi به اینترنت دسترسی پیدا کنن و اینترفیس Ethernet رو فقط برای شبکه شدن بین خودشون دو تا استفاده کنن. اما تا جایی که یادم میاد، سیستمهای لینوکسی همیشه اتصال eth رو به wlan ترجیح میدن و این قضیه باعث میشه هیچ کدومِ این دو تا دستگاه به اینترنت دسترسی نداشته باشن؛ با اینکه هر دو همزمان با اترنت، اتصال wlan فعال دارن و به مودم adsl متصلن. خلاصه اینکه آب در کوزه و این دو تا تشنهلبان میگردن!
یه راه حل واسه دور زدن مشکل و پاک کردن صورت مسأله هست. اونم اینه که از داخل لپتاپ، نوع اتصال سیمی رو روی Shared to other computers تنظیم کنم. اینطوری در واقع لپتاپ تبدیل به یه کارت شبکهی اکسترنال WiFi میشه و اینترنت رو از مودم میگیره و از طریق پورت اترنت با رزبری به اشتراک میذاره. اما وقتی روی رزبری چیپ وایفای وجود داره، چرا نباید بتونم ازش استفاده کنم؟! لپتاپ چه گناهی کرده که باید جور اون مینی کامپیوتر رو بکشه؟! اگه خواستم لپتاپ رو suspend کنم اما رزبری بیدار بمونه و روی شبکهی خونگی سرویسدهی کنه چی؟
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
اینجا یه روش سریع و ساده برای حل کردن اصولی این مشکل معرفی میکنم. بر پایهی سرویس NetworkManager.
دستور زیر مسیرهای فعال رو لیست میکنه.
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 600 0 0 wlan0
10.42.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 wlan0
میبینیم دو تا اینترفیس wlan0 و eth0 فعالن. چیزی که مهمه ستون Metricـه. این عدد مشخص میکنه که اولویت هر مسیر نسبت به بقیه چیه. هر چقدر این عدد کوچکتر، اولویت آن مسیر بالاتر.
الف) اتصالات رو لیست میکنیم:
$ nmcli connection
NAME UUID TYPE DEVICE
Wired 1698876f-321d-3065-a315-1d1f31082d89 ethernet eth0
543212345 7d225229-3658-4b0c-b2dc-d2d6c426c108 wifi wlan0
K30 Pro Zoom 65a9e297-1ba8-4e1f-877c-a346a23f5d8c wifi --
Xiaomi MI 6 436085a0-69c1-4909-a5ea-dee7d0471edd wifi --
۲ تا اتصال اول، هنگام اجرای فرمان فعال و ۲ تای آخر غیرفعال بودن (از قبل ذخیره شدهن).
ب) حالا با ابزار خط فرمانی سرویس NetworkManager اولویتها رو ویرایش میکنیم:
# nmcli connection edit 543212345
===| nmcli interactive connection editor |===
Editing existing '802-11-wireless' connection: '543212345'
Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [<setting>.<prop>]' for detailed property description.
You may edit the following settings: connection, 802-11-wireless (wifi), 802-11-wireless-security (wifi-sec), 802-1x, ethtool, match, ipv4, ipv6, hostname, tc, proxy
nmcli> set ipv4.route-metric 90
nmcli> save
nmcli> quit
حالا Metric اتصال 543212345 مربوط به اینترفیس wlan0 تغییر کرده و شده 90. Metric اتصال Wired هم که از قبل 100 بود. پس برای هر تعداد اتصال دیگه که لازم باشه میتونیم همین مرحله رو تکرار کنیم.
پ) و تمام! لینوکس به شدت منطقی، بهینه و قدرتمنده:
# systemctl restart NetworkManager
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 90 0 0 wlan0
10.42.0.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 U 90 0 0 wlan0
من تنظیم بالا رو روی رزبری انجام دادم. حالا رزبری هم مستقیم از WiFi خودش استفاده میکنه و اتصال سیمی رو فقط وقتی لازم باشه وارد داستان میکنه.
-
نیازی نداشتم الان
ولی واقعا زیبا و با زبان خوبی بیان کردید که قابل درک تر و دلنشین تره ;)
ممنون از وقت گذاشتن
ویرایش: اینا در ویکی ثبت نمیشه آيا ؟ حیف این مطالب بره پایین و دیده نشه ...
-
ویرایش: اینا در ویکی ثبت نمیشه آيا ؟ حیف این مطالب بره پایین و دیده نشه ...
خود به خود ثبت نمیشه کسی باید این کارو انجام بده.
-
نیازی نداشتم الان
...
من بیشتر دوست داشتم با همین لحن معمولی بنویسم. انگار که یه پست وبلاگ باشه.
اگه بهدردبخور باشه امیدوارم دوستان وارد ویکی بکننش.
-
ویرایش: اینا در ویکی ثبت نمیشه آيا ؟ حیف این مطالب بره پایین و دیده نشه ...
خود به خود ثبت نمیشه کسی باید این کارو انجام بده.
آهاپس یعنی هرکسی میتونه ویکی گسترش بده یعنی حتی من هم میتونم ویکی ویرایش کنم و بعد تایید گذاشته میشه؟
نیازی نداشتم الان
...
من بیشتر دوست داشتم با همین لحن معمولی بنویسم. انگار که یه پست وبلاگ باشه.
اگه بهدردبخور باشه امیدوارم دوستان وارد ویکی بکننش.
اره و واقعا قابل فهم تره و خوبه درکل منظورم اینه حیفه هی از این نکات خوب گذاشته شه ولی در انجمن رو به نابودی بره و کسی هم چنین سوالی داشت نتونه به فارسی پیدا کنه یا به ویکی بره و پیدا کنه
حالا همین جور خوبه اخرش با کمی تغییر میشه تو ویکی ثبت بشه دیگه هم کاربر راحت تره هم شما مطلبی که نوشتی کاربردش بیشتر میشه حالا نظرم بود باز نمیدونم :D
-
آهاپس یعنی هرکسی میتونه ویکی گسترش بده یعنی حتی من هم میتونم ویکی ویرایش کنم و بعد تایید گذاشته میشه؟
هم ویرایش هم ایجاد ;)
حتما انجام بدید :)
-
من یک بورد Raspberry Pi 4B دارم که از طریق کابل شبکه متصلش کردهم به لپتاپ تا یک LAN درست بشه. از این اتصال فقط برای گرفتن نشستهای SSH و VNC استفاده میکنم. پس لازمه که هم لپتاپ و هم SBC، از راه WiFi به اینترنت دسترسی پیدا کنن و اینترفیس Ethernet رو فقط برای شبکه شدن بین خودشون دو تا استفاده کنن. اما تا جایی که یادم میاد، سیستمهای لینوکسی همیشه اتصال eth رو به wlan ترجیح میدن و این قضیه باعث میشه هیچ کدومِ این دو تا دستگاه به اینترنت دسترسی نداشته باشن؛
برای اینترنت از Default Gateway استفاده میشه و وقتی تنها یک Default Gateway دارید، اهمیتی نداره که اون Ethernet است یا Wifi و اتصالات اینترنت از اون Interface گذر میکنه.
در نتیجه هر دو سیستم باید بدون هر تغییری اینترنت داشته باشند و نیازی به تغییر Metric نیست.
-
من یک بورد Raspberry Pi 4B دارم که از طریق کابل شبکه متصلش کردهم به لپتاپ تا یک LAN درست بشه. از این اتصال فقط برای گرفتن نشستهای SSH و VNC استفاده میکنم. پس لازمه که هم لپتاپ و هم SBC، از راه WiFi به اینترنت دسترسی پیدا کنن و اینترفیس Ethernet رو فقط برای شبکه شدن بین خودشون دو تا استفاده کنن. اما تا جایی که یادم میاد، سیستمهای لینوکسی همیشه اتصال eth رو به wlan ترجیح میدن و این قضیه باعث میشه هیچ کدومِ این دو تا دستگاه به اینترنت دسترسی نداشته باشن؛
برای اینترنت از Default Gateway استفاده میشه و وقتی تنها یک Default Gateway دارید، اهمیتی نداره که اون Ethernet است یا Wifi و اتصالات اینترنت از اون Interface گذر میکنه.
در نتیجه هر دو سیستم باید بدون هر تغییری اینترنت داشته باشند و نیازی به تغییر Metric نیست.
از قرار معلوم هر دو تا همیشه برای اینترنت فقط به ethernet نگاه میکنن و wifi رو ندیده میگیرن، در حالی که فقط وایفای اینترنت داره. یعنی مجبورم اتصال کابلی رو غیر فعال کنم تا مشکل حل بشه. هوشمند هم عمل نمیکنن که خودشون تشخیص بدن کدوم اینترفیس اینترنت داره.
مشکل جدیدی هم نیست و همیشه باهاش مواجه بودم تا اینکه بالاخره جستوجو کردم و به این راه حل رسیدم. حالا راه حل بهتری وجود داره؟
ویرایش: البته من این روش رو نیاز داشتم به این دلیل که به بورد رزبری ۱ دانگل وایفای هم وصل کردهم. این دانگل به مودم محلی وصله، و چیپ وایفای رزبری رو به هاتاسپات موبایل وصل میکنم. یعنی ممکنه همزمان ۳ تا اتصال فعال داشته باشه. هاتاسپات رو برای دانلودهای شبانه استفاده میکنم. در نتیجه لازم دارم هر وقت بورد به هاتاسپات وصل بود، اولویت ترافیک اینترنت رو بذاره روی همین اتصال و از دانگل که به مودم وصله استفاده نکنه. اتصال کابلی هم که باید اولویت سوم باشه.