|
|

本楼宽带用户接自同一交换机,交换机对各家用户限定固定大小的带宽。于是大家都在一个大局域网内,测试了一下,发现大部分用户的网关服务器IP皆为192.168.0.x,所以让公司一部分人通过其它网关服务器访问外网,偷点带宽。
服务器上两块网卡,eth0接入外网交换机,eth1为内网网口,内网偷带宽的机器IP段为192.168.1.x。
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
以下脚本由crontab每隔10分钟调用一次
#!/bin/sh
pid_file=/tmp/network_debianl.tmp[[ -f $pid_file ]] && echo "Another instance with this program is running!" && exit
touch $pid_file
trap "script_exit" 2 3
function script_exit ()
{
unlink $pid_file
exit
}
ping -c 1 210.52.149.2
[[ $? = 0 ]] && echo "Connected internet" && unlink $pid_file && exit
if [ -f /etc/gateways ]; then
for LOOP in `cat /etc/gateways`
do
ping -c 1 $LOOP
if [ $? = 0 ]; then
route del default
route add default gw $LOOP
sed '$d' /etc/resolv.conf > /etc/resolv.conf.bak mv /etc/resolv.conf.bak /etc/resolv.conf echo "nameserver $LOOP" >> /etc/resolv.conf ping -c 1 210.52.149.2
[[ $? = 0 ]] && echo "Connected internet" && unlink $pid_file && exit
fi
done
fi
LOOP=1
while [ $LOOP -lt 250 ]
do
[[ -f /etc/gateways ]] && grep 192.168.0.$LOOP /etc/gateways > /dev/null &&
[[ $? = 0 ]] && LOOP=`expr $LOOP + 1` && continue
ping -c 1 192.168.0.$LOOP
if [ $? = 0 ]; then
echo 192.168.0.$LOOP >> /etc/gateways route del default route add default gw 192.168.0.$LOOP
sed '$d' /etc/resolv.conf > /etc/resolv.conf.bak mv /etc/resolv.conf.bak /etc/resolv.conf echo "nameserver 192.168.0.$LOOP" >> /etc/resolv.conf ping -c 1 210.52.149.2
[[ $? = 0 ]] && echo "Connected internet" && unlink $pid_file && exit
fi
LOOP=`expr $LOOP + 1`
done
echo "Can't connect internet"
unlink $pid_file
引用地址:http://www.gbunix.com/htmldata/2006_07/14/18/article_1341_1.html |
|