انجمنهای فارسی اوبونتو
کمک و پشتیبانی => شبکه و سرویس دهندهها => نویسنده: joje-linuxi در 28 اردیبهشت 1386، 10:47 قظ
-
سلام
من یه لپ تاپ دارم که روش dapperنصبه و یه pc که روش feisty نصبه من با لپ تاپ در یه شبکه وایرلس هستم و از طریق اون به اینترنت وصل میشم حالا چه جوری میتونم اینترنت رو بین این دو کامپیوتر share کنم؟
-
می توانی با iptables یک NAT سرور راه بندازی.
یکی را gateway کن. فرض می کنیم که PC تو دارای دو کارت شبکه هست. یک کارت شبکه ی تو از ISP بوسیله ی dhcp به اینترنت وصل می شود. و دیگری که کارت شبکه وابرلس هست به نوت بوک تو اینترنت می رساند.
اولین کاری که می کنی. در pc این گزینه را در کرنل فعال می کنی.
echo 1 > /proc/sys/net/ipv4/ip_forward
بعد در NAT TABLE این را فعال می کنی.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
کارت eth0 کارتی هست که به ISP تو وصل می باشد. اگر از DHCP استفاده نمی کنی. از این دستور استفاده کن:
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 192.168.10.22
این ip هست که از isp گرفتی. آن را مطابق شرایط خودت عوض کن.
-
سلا م وممنونم
ما در شبکه از dhcp استفاده میکنیم در این حالت چه تغییراتی باید داده بشه به این دستورات؟
-
من اینو از آقا مهدی پرسیدم ایشون هم گفتن از دستور زیر استفاده کنم
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE
سادهترین راهه. شما به جای اون ppp0 باید آدرسی که ازش اینترنت دارید رو بگذارید. مثلا بگذارید eth0 یا eth1 یا...
-
فقط کافی است که از دو دستور اولی استفاده کنی. می توانی برای اطلاعات بیشتر به این آدرس ها مراجعه کنی:
یک howto ساده:
http://www.howtoforge.com/nat_iptables
برای اطلاعات بیشتر در مورد iptables به سایت رسمی آن هم سر بزنی بد نیست. اطلاعات خوبی می توانی بدست بیاوری:
http://netfilter.org/
-
ممنون بابت جواب از همگی
مشکلی که هست اینه که دستوری رو که برای فعال کردن ایپی فورواد هست رو وقتی میرنم حتی با sudo ارور میده :Permisson denied
-
نباید مشکلی داشته باشد. مطمئن هستید که رمز عبور را درست می زنید؟ در هر صورت یک راه دیگه هم هست ( ولی امید وارم که بقیه اعضای انجمن این را نخوانند. چون باعث می شود یک عادت بد جا بیفتد و تمام منافع دستور sudo از بین برود )
sudo bash
در این حالت شما وارد یک شل می شوید که با کاربر root دستورات را اجرا می کند.
در این حالت امتحان کنید ببینید جواب می دهد؟
-
ممنون بابت جوابتون با این روشی که گفتید شد.من این دستورات رو تو کدوم کامپیوتر بزنم؟در مورد شبکه هم من تو لپ تاپ با کارت وایرلس خودش اینترنت دارم از طریق شبکه که بوسیله وایرلس کامپیوتر ها شبکه شده اند و dhcp که در شبکه داریم ای پی میگیریم و به شبکه واینترنت متصل میشیم حالا من میخوام pcرو بوسیله کابل از طریق اپ تاپ به اینترنت متصل کنم
-
همان طور که اول هم گفتم، آن یکی هم که به اینترنت وصل هست و هم به شبکه داخلی باید به عنوان gateway استفاده شود. ببین کدوم یکی به اینترنت وصله این دستور ها را توی آن بزن. فقط در اینجا جای eth0 اسم اینترفیسی که به اینترنت وصل هست بزن. این قاعده کلی هست.
در مورد شبکه هم من گیج شدم. یعنی لپ تاپ تو از طریق یک کارت وایر لس همزمان هم به اینتر نت وهم به شبکه داخلی وصل می شود، یا اینکه دو تا کارت وایرلس داری؟ اگر دو تا داری مشکلی نیست. اسم آن یکی که به خارج وصل هست را در دستور iptables بزن بقیه کار ها خود به خود انجام می شود. ( در بقیه هم باید ip این کامپیوتر به عنوان default gateway تنظیم شده باشند.) اگر یکی هست آنوقت موضوع فرق می کند. اگر خواستی می توانم در این مورد برایت دستور های لازم را بنویسم. فقط باید تنظیمات شبکه را دقیق تر برایم پست کنی.
یک چیز عجیب این هست که چرا لپ تاپ را به عنوان gateway اتنخاب کردی. معمولا این کار را انجام نمی دهند.
-------------------------------------------------------------------------------------------------------------------------
می بخشید الان متوجه شدم که شبکه چه جوری بسته شده است. باید در لپ تاپ این دو دستور را بزنی. در مورد کارت شبکه که در لپ تاپ هست. باید یک ip که با کارت شبکه pc در یک رنج باشند ولی با ip کامپیوتر های خارجی متفاوت باشند انتخاب کنی.
یک مثال
کارت وایرلس تو این ip را دارد. ۱۹۲.۱۶۸.۱۱.۲۰ با netmask ۲۵۵.۲۵۵.۲۵۵.۰
می توانی کار شبکه لپ تاپ را اینجوری تنظیم کنی: ۱۹۲.۱۶۸.۱۲.۱ با netmask ۲۵۵.۲۵۵.۲۵۵.۰ برایی این کارت نباید که gateway تعریف شود.
کارت شبکه ی pc هم می توانی این آدرس را داشته باشد: ۱۹۲.۱۶۸.۱۲.۲ با netmask 255.255.255.0 و gateway ۱۹۲.۱۶۸.۱۲.۱ که این همان آدرس کارت شبکه لپ تاپ هست.
فکر کنم که فهمیدی فضیه چی شد. بعد هم همان دستور های بالا را در لپ تاپ بزن. کارت راه می افتد
-
معذرت میخوام مثله اینکه منطورمو خوب نرسوندم.ببینید ما یه adsl داریم که مودمش به یه روتر وایرلس وصله این روتر تو شبکه نقش dhcp رو هم داره کلاینت ها از طریق کارت وایرلس از شبکه و اینترنت استفاده میکنند من هم برای این کار از لپ تاپ ام که کارت شبکه وایرلیس داره(eth1) استفاده میکنم .من بوسیله dhcp یه ایپی تو رنج ۱۹۲.۱۶۸.۱.۰تا ۱۹۲.۱۶۸.۱.۲۵۵ میگیرم و به اینترنت وصل میشم .رو همین لپ تاپ من به کارت شبکه معمولی هم دارم (eth0)که ایپی ۱۹۲.۱۶۸.۰.۲ رو براش ست کردم حالا میخوام این اینترنت رو با کامپیوتر خونه شر کنم که ایپیش ۱۹۲.۱۶۸.۰.۱ هست و گیت وی اش هم ۱۹۲.۱۶۸.۰.۲ .من اون دوتا دستور رو باید در لپ تاپ اجرا کنم که به اون روشی که گفتید iptables رو اون رول رو بهش اضافه کردم ولی برای فعال کردن ایپی فورواردینگ هنوز همون مشکل هست دستور اجرا میشه ولی وقتی ip_forward رو با به ادیتور باز میکنم بازم صفر هست و نمیشه به یک تغییرش داد و سیو کرد و ارور میده:
"/proc/sys/net/ipv4/ip_forward"
WARNING: The file has been changed since reading it!!!
Do you really want to write to it (y/n)?
اول فکر کردم این لینوکسم مشکل پیدا کرده ولی تو pc هم که روش فیستی نصب کردم هم همین مشکل رو داره و نمیشه ip_forward رو تغییر داد
-
اول اینکه لازم نیست و اصلا درست نیست که فایل های داخل شاخه ی proc را با ادیتور باز کنی. اگه خواستی داخل آن ها را ببینی با دستور cat محتویات آن را ببین. این طوری مطمئن تر هست.
cat /proc/sys/net/ipv4/ip_forward
دوم اینکه باز هم پوزش. برای فعال کردن ip_forwad در اوبونتو باید این کار را بکنی. اطلاعات من یک خورده قدیمی هست. من عادت به روش های اوبونتو ندارم.
فایل زیر را ادیت کن و این خط را باید عوض کنی:
# edit /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
#net/ipv4/ip_forward=1
کافی هست که # را از اول خط بر داری یعنی این جوری:
# edit /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net/ipv4/ip_forward=1
سیستم هم باید یک بار ریبوت شود. فکر کنم الان مشکل تو حل بشود. در هر صورت با روش قبلی هم باید کار می کرد. نباید به مشکلی بر می خوردی.
-
راستش در مورد ip forwarding در واقع کافیه که مقدار مقدار 0 تو فایل ip_forward بشه 1
platoali همون دستور echo کار رو راه میندازه! هم تو توزیعهای قدیمی و هم تو توزیعهای جدید... و البته این فایل sysctl.conf رو هم تا جایی که من دیدم همه توزیعها دارن. بنابراین برای فعال کردن ip forwarding دو راه دارید:
۱.
sudo -s -H
echo 1 > /proc/sys/net/ipv4/ip_forward
۲. ویرایش فایل etc/sysctl.conf/ و تغییر مقدار
#net.ipv4.conf.default.forwarding=1
به
net.ipv4.conf.default.forwarding=1
تفاوت این دو روش هم در اینه که در روش اول ip forwarding بعد از reboot دوباره 0 میشه و بنابراین بعد از هر reboot ماشین باید اون دستور echo اجرا بشه...
platoali ممنون که به بحث کمک کردی :)
-
البته در همه ی توزیع ها این طوری نیست( ولی در همه ی توزیع های اصلی هست) . من همیشه عادت داشتم که این را در سر اسکریپت اصلی فایروال بنویسم.(ترک عادت هم همیشه مورد مرض هست. :) ) در slackware هم یک اسکریپت هست که باید اگه بخواهیم فعالش کنیم باید به آن اجازه اجرا شدن را بدهیم.
chmod +x /etc/rc.d/rc.ip_forward
-
راستی یادم رفت بگم firestarter یه ابزار گرافیکی هست که کار به اشتراک گذاری اینترنت رو فارغ از این دستورات خیلی راحت و با یه تیک زدن انجام میده ;)
-
ممنون از همگی درست شد
-
راستی یادم رفت بگم firestarter یه ابزار گرافیکی هست که کار به اشتراک گذاری اینترنت رو فارغ از این دستورات خیلی راحت و با یه تیک زدن انجام میده ;)
بابا چارش همون firestarter هست دیگه، HowTo را که نوشتیم ببینید، در چند دقیقه شبکتون راه می افته ;)
البته می دونم که این موضوع حل شده ولی برای بعدی ها که خواهند خوند می گم که نخواهند کلی بگردن.
راستی عنوان را هم عوض کنید و در آخرش یک [حل شد] اضافه کنید.
ممنون
-
سلام
میشه لینک این راهنمای fire starter رو بدید
-
من از شما عذر می خواهم HowTo در کار نیست، من داشتم یک زمانی روش کار می کردم و فکر کردم گذاشتمش رو سایت ولی حالا می بینم که نه. انشا الله تمومش می کنم و در اختیارتون می ذارم. البته خیلی راحت است و نیازی به این کار هم نیست.
-
یک لینک برای آشنایی با firestarter:
http://www.irantux.com/html/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=153
-
سلام
این مشل چی میتونه باشه ؟
server@ubuntu:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
-
سلام
این مشل چی میتونه باشه ؟
server@ubuntu:~$ echo 1 > /proc/sys/net/ipv4/ip_forward
bash: /proc/sys/net/ipv4/ip_forward: Permission denied
جلال جان! :) ی جا هم بپرسی حل میشه عزیزم ، یکمی صبر کن فقط ;) روی ی پست دیگه همین رو برات پاسخ دادم @};-