خوب صورت مسئله که مطرح شد ، میریم ببینیم جوابش چیه ... فرض بر اینه که از پورت lan و اینترفیس eth0 برای اتصال به اینترنت در سیستم اصلی استفاده میشه در غیر اینصورت هرجا eth0 دیدین با اسم کانکشن خودتون عوضش کنین.
پروتوکول ارتباطی بلوتوث L2CAP هست ، این با MAC address سرو کار داره یعنی در لایه دوم عمل می کنه، چیزی که ما بهش احتیاج داریم پروتوکلیه که بتونه توی لایه 3 کار کنه یعنی BNEP که مخفف این کلمه است :
Bluetooth Network Emulation/Encapsulation Protocol
و چیز دیگه ای که احتیاج داریم یک برنامه است که بتونه برای ما یک کانکشن بسازه که بتونیم روش ip ست کنیم یعنی pand .
که دقیقا اسم کاریه که ما میخوایم انجام بدیم ، PAN یا Personal Area Network
تمام چیز هایی که نیاز داریم توی دو تا بسته به اسم bluez-utils و bluetooth جمع شده که میشه از مخازن اوبونتو نصبش کرد :
(تمام کارها روی هر دو سیستم باید انجام بشه مگر در موردی که دقیقا اشاره به سیستم خاصی شده باشه)
sudo apt-get install bluez-utils bluetooth
حالا باید ماجول bnep رو بارگذاری کنیم :
sudo modprobe bnep
و از اینکه ماجول بلوتوث هم بارگذاری شده باید مطمئن بشیم ، پس محض احتیاط :
sudo modprobe bluetooth
خوب از اینجا به بعدش 3 4 روز سرکار بودم و زحمت کشیدم پس بقیه رو نمیگم
اول یه فایل باید ویرایش بشه :
sudo gedit /etc/default/bluetooth
این خط :
PAND_ENABLED=0
رو به این :
PAND_ENABLED=1
تغییر بدین.
و بعد :
/etc/init.d/bluetooth restart
بعد روی سیستم سرویس گیرنده آدرس MAC بلوتوث سیستم بعدی رو به دست میاریم ، اگر بلوتوث گوشیتون روشنه خاموش کنین که اشتبا نکنین :
hcitool scan
عددی مثل این رو باید ببینین : 00:0D:F0:28:C1:9C
برای اینکه مطمئن بشیم لایه 2 خوب کار میکنه از دستور زیر استفاده می کنیم که من خیلی دوستش دارم :
sudo l2ping 00:0D:F0:28:C1:9C
مثل پینگ معمولی باید خروجی بده.... به جای اون عدد عجیب هم مال خودتون رو که با دستور قبلی به دست اوردین بذارین. این آدرس بلوتوث سیستم بعدیه...
میریم سراغ دستور pand ، قبل از این کار با هر راهی که میتونین بلوتوث ها رو pair و trusted و visible و connectable بکنین ، همه این کارها با اپلت بلوتوث که توی tray هست انجام میشه.
در روی یکی از سیستم ها ترجیحا سیستمی که میخواد اینترنت رو در اختیار اونیکی قرار بده این دستور رو اجرا می کنیم :
sudo pand -M --listen
اصولا بدون هیچ خروجی و خیلی سریع باید اجرا بشه ، اگر نشد بگید که راهشو بگم.در این مرحله سیستم در پس زمینه منتظر برقراری ارتباط از جانب سیستم دیگه میمونه و بعد از این که ارتباط برقرار شد یک کانکشن میسازه....
روی سیستم سرویس گیرنده هم این دستور رو اجرا کنید :
sudo pand --connect 0A:0D:F0:27:01:BB
اتوجه توجه : اینجا آدرس MAC اونیکی سیستم رو باید بگذارید .
فرض بر اینه که تنظیمات پیش فرض رو عوض نکردید و هر دو سیستم بلوتوث روی کانال 1 برای برقراری ارتباط تنظیم شدن .
اگر جواب نداد بگید که راه اونم بگم....
خوب حالا با دستور زیر مطمئن میشیم که ارتباط برقرار شده :
pand -l
باید خروجی مثل این ببینید :
bnep0 00:0D:F0:28:C1:9C PANU
اگر خروجی نداد یعنی هیچ اتفاق خوبی نیوفتاده
(loop back)
کلمه اول یعنی bnep0 هم اسم کانکشنمونه....
خوب تا اینجا ما یک کانکشن یا همون اینترفیس داریم که باید روش ip ست کنیم ...
با دستور ifconfig خالی نمیشه این اینترفیس رو دید چون هنوز ست نشده ، با دستور زیر میتونین ببینینش :
ifconfig -a
خوب اینجا دیگه بحث کلاینت و سرور تموم شد ، از این به بعد دو تا سیستم فرقی با هم ندارن.
با دستور زیر برای سیستم اول ip ست می کنیم :
sudo ifconfig bnep0 192.168.0.5
اینم روی سیستم بعدی ست میکنیم :
sudo ifconfig bnep0 192.168.0.6
این ip ها اختیاری هستن ولی باید طوری انتخاب بشه که بخش شبکه اونا یکی باشه و با ip سیستمی که اینترنت داره تداخل نکنه ، ترجیحا بخش شبکه هم فرق داشته باشه...
حالا باید با دستور ifconfig ساده بتونین اینترفیس ها رو روی سیستم ها ست شده ببینین...
خوب اینم از این ...
حالا اگر مشکلی پیش نیومده باشه باید بتونین سیستم ها رو پینگ بکنین ... اینجارو 3 ساعت طول کشید تا موفق بشم.... اشکال هم از iptables روی یکی از سیستم ها بود که با یک بار stop و start کردن firestarter حل شد ... البته این کار رو میشه توی firestarte و در تب events و راست کلیک روی پیغام های قرمز رنگ حاوی ip سیستم پینگ کننده و انتخاب گزینه allow connection from source عاقلانه تر انجام داد ، اگر چیزی اونجا ندیدین یک بار دکمه reload رو بزنین. اگر firestarter نصب نکردین اصولا نباید مشکلی باشه ... در غیر اینصورت با اجرای دستور ping با پیغام وحشتناک ping: not permited مواجه میشین ...
اگر ping گرفتین که مبارکه دیگه چیزی نمونده ...
از این به بعد برای اشتراک اینترنته :
روی سیستمی که میخواد سرویس اینترنت بده باید تنظیمات NAT انجام بدیم که با iptables میشه اینکارو کرد...
جا داره از علیرضا طالقانی گل تشکر کنم به خاطی این پستی که زده بود :
http://forum.ubuntu.ir/index.php?topic=3954.0جهت اطلاعات بیشتر پیشنهاد می کنم حتما بخونین ، من فقط چند خطی که به دردمون میخوره رو مینویسم برای اینکه تنظیمات دائمی بشن اون پست رو ببینید .
این دستورات رو در سیستم میزبان اجرا کنید (فرض بر اینه که اینترنت رو از اینترفیس eth0 میگیرین در غیر اینصورت عوضش کنین) :
اول فعال کردن port forwarding :
sudo gedit /etc/sysctl.conf
خط زیر رو پیدا کنین و # رو از اولش بردارین :
net.ipv4.conf.default.forwarding=1
تغییرات رو ذخیره کنین و بعد دستورات زیر رو برای NAT کردن انجام بدین :
sudo iptables -A FORWARD -i bnep0 -o eth0 -s 192.168.0.0/24 -m state --state NEW -j ACCEPT
و بعد :
sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
و نهایتا :
sudo iptables -A POSTROUTING -t nat -j MASQUERADE
خوب تنظیمات روی سرویس دهنده اینترنت تموم شد ...
میریم سراغ سرویس گیرنده . در تمام مراحل سعی کنین با ping از اینکه ارتباط هنوز برقراره مطمئن بشین.
سمت گیرنده باید name server رو ست کنیم ، نکته مهم اینه که از name server مجاز استفاده کنیم... می تونیم دقیقا از همون name server ای که روی سیستم سرویس دهنده استفاده میشه استفاده کنیم ، یا هر name server دیگه ای که مجاز باشه مثل 4.2.2.4 یا ...
روی سیستم سرویس دهنده این دستور رو بزنید تا آدرس name server یا name server ها رو دربیاریم .... اگر زیاد بود دو تای اولی کافیه ..
cat /etc/resolv.conf
خروجی برای من اینطوریه :
nameserver 10.0.0.2
که دقیقا همون رو (به همراه کلمه nameserver) توی سیستم گیرنده ذخیره کردم ...
در سمت گیرنده :
sudo gedit /etc/resolv.conf
و خروجی دستور قبل رو توش بنویسید و ذخیره کنید.
مرحله بعد باز هم روی سیستم گیرنده ، دستکاری کردن جدول مسیر یابیه .... باید سیستم سرویس دهنده رو به عنوان gateway تعریف کنیم ...
sudo route del default
sudo route add default gw 192.168.0.5
من روی سیستم گیرنده eth0 رو down کردم ، چون دستور اول رو انجام ندادم وبسته ها به طور پیش فرض به این اینترفیس ارسال می شدن ، ولی اصولا مثل روش بالا باید مسیری که به eth0 منتهی می شد رو حذف می کردم ...
که باید با اجرای دستور route تنظیماتی که انجام دادید رو ببینید . برای من اینطوریه (البته همون خطی که تغییر دادیم رو فقط مینویسم) :
default 192.168.0.5 0.0.0.0 UG 0 0 0 bnep0
خوب در این مرحله باید بتونید هر سایتی رو پینگ بکنید ، مثلا :
ping www.yahoo.com
الان از سیستم گیرنده دارم پست می زنم سرعت اینترنت فوق العاده است و حتی حس می کنم بهتر از سیستم اصلی هم هست !!!! ولی توهمه.... بعدا روش دائمی کردن این تنظیمات رو می گم به جز ip forwarding که توی اون لینک علیرضا توضیح داده....
دیگه دارم از بی خوابی می میرم .... اگر مشکلی بود بعدا جواب میدم ... فعلا شب به خیر ... البته صبح به خیر... 6:15 am
------------------------------------------------------------------------------
خوب خیلی ممنون خوابمم نمیبره!!! یکم دیگه مینویسم ...
اشتراک فایلها :
البته این فقط مربوط به بلوتوث نمیشه و در هر دو تا سیستمی که با هم شبکه شده باشن میشه اینکارو کرد. من از NFS برای اشتراک فایل استفاده میکنم ، شاید کسی با smb حال کنه ، به من ربطی نداره
اول باید سرویس ها ی لازم رو نصب کنیم :
sudo apt-get install nfs-kernel-server nfs-common portmap
و بعد :
sudo dpkg-reconfigure portmap
به سوالی که می پرسه جواب منفی بدین...
بعد روی سیستمی که میخواد یک دایرکتوری رو به اشتراک بگذاره فایل exports رو باید ویرایش کنیم :
sudo gedit /etc/exports
برای هر دایرکتوری باید یک خط مشابه این بنویسیم :
/home/behnam 192.168.0.6(rw,no_root_squash,async,subtree_check)
من اینجا دایرکتوری home/behnam/ رو از سیستم local خودم با سیستم remote ای به شماره ip ای که بالا میبینین به اشتراک میگذارم.
بعد دستور زیر رو روی سیستم local اجرا میکنیم :
sudo exportfs -a
بعد میریم روی سیستم بعدی و یک mount point درست می کنیم :
sudo mkdir /media/shares
و بعد خیلی راحت مونت می کنیم :
sudo mount 192.168.0.5:/home/behnam /media/shares
اینجا از ip سیستم قبلی استفاده میشه... ممکنه اینجا یک خطا بگیرین mount.nfs internal error و.... که باز هم مربوط iptables میشه ، از روش قبلی روی fire starter استفاده کنین...
با این کار یک آیکون روی دسکتاپ ظاهر میشه ....
تموم شد . برای unmount هم که یا با کلیک راست یا با دستور زیر میشه اینکارو کرد :
sudo umount 192.168.0.5:/home/behnam
البته روی بلوتوث طبیعتا سرعتش به lan نمیرسه... پس برای اشتراک فایل های بزرگ از بلوتوث استفاده نکنید ، خیلی مسخرست...
برم بخوابم دیگه...