منبع اصلی نوشتار زیر در این لینک قرار دارد

یک اسکریپت ساده برای اشتراک اینترنت در لینوکس

به اشتراک گزاری اینترنت در لینوکس کار سختی نیست. برای اشتراک اینترنت در لینوکس باید چند رول رو به iptables اضافه کنید.
یک اسکریپت خیلی ساده  برای انجام اینکار نوشتم که اطلاعاتی مثل کارت شبکه و … رو از شما میگیره و تنظیمات رو انجام میده! البته این اسکریپت فعلا فقط روی اوبونتو و دبیان جواب میده اما سازگاری کردنش با سایر توزیع‌ها خیلی ساده است :)
شاید مجوز تعیین کردن برای چند خط کد ساده کار خنده داری باشه :) اما مجوز این اسکریپت GPL و GPL2 هست! این کد رو قراره تغییرات بیشتری بدم و کاملترش کنم :)
خوب این هم اسکریپت توی یک فایل ذخیره کنید و بهش مجوز اجرا بدید. اینطوری:

$chmod 755 script.sh

و با کاربر ریشه اجرا کنیدش:

sudo script.sh ppp0 eth0 s

به اسکریپت سه تا پارامتر میتونید بدید:
پارامتر اول دیوایس اینترنت شما هست مثلا اگه از adsl استفاده میکنید به احتمال زیاد دیوایش شما میشه ppp0 ویا اگه اینترنت رو از کابل شبکه میگیرید میشه eth0
پارامتر دوم دیوایسی هست که قصد دارید اینترنت رو با اون به اشتراک بگذارید مثلا eth0
و بلاخره پارامتر سوم که تعیین میکنه قصد دارید اشتراک اینترنت رو بصورت موقت و تا زمان ری‌استارت بعدی داشته باشید و یا دائم! برای حالت موقت از s و برای حالت دائم از p استفاده کنید.
اگه موقع اجرای برنامه پارامتری رو وارد نکنید اسکریپت پارامترها رو از شما میپرسه!

#!/bin/bash
#
# Script to share internet
#
# Copyright 2010 (c) mahdi ataeyan
# This is free script under GNU GPL version 2.0 or above.
# Support/FeedBack/comment :  http://ataeyan.com
# Tested os:
# -ubuntu
#-------------------------------------------------------------
#if [ -z "$1" ]  ||  [ -z "$2" ]
# filename ppp0 eth0 s/p

if [ ! $# == 3 ]; then
echo "No arguments!"
echo -n "Please enter out interface (ppp0): "
read -e outinterface
if [ -z "$outinterface" ] ; then
outinterface="ppp0"
fi
echo -n "Please enter in interface (eth0): "
read -e ininterface
if [ -z "$ininterface" ] ; then
ininterface="eth0"
fi
echo -n "For this session only [s]- Permanent [P]? (s/p): "
read -e h
else
outinterface=$1
ininterface=$2
h=$3
fi

v1=$(cat <<EOF
iptables=/sbin/iptables;
iptables --flush -t nat;
iptables --table nat --append POSTROUTING --out-interface $outinterface -j MASQUERADE;
iptables --append FORWARD --in-interface $ininterface -j ACCEPT;
echo 1 > /proc/sys/net/ipv4/ip_forward;
EOF
)

if [ "$h" == "s" ]
then
eval $v1
elif [ "$h" == "p" ]
then
echo "$v1" > /etc/init.d/nat.nat
chmod 755 /etc/init.d/nat.nat
else
echo "what?!"
fi

 



برچسب ها : , , , , , , , , , , , ,