設定adsl重複撥接 - Linux

Table of Contents

在ubuntu下先用pppoeconf設定好adsl連線後,
看要幾個ip就sudo pon個幾次

再來修改 /etc/iproute2/rt_tables
sudo gedit /etc/iproute2/rt_tables
最下面加入下面幾行:
201 T1
200 T2
199 T3
198 T4
197 T5

依此類推,看需要幾個,數字部分不重覆即可

再來請下載 http://pastie.org/1932590
或把下面存為 "setup_route",chmod +x setup_route

#!/bin/bash

devname="ppp"
devc=`ifconfig |grep $devname|wc -l`

echo $devc" devices found."
echo "setting up routing..."

for (( i=1; i<=$devc; i++ )) do
DEV=`ifconfig |grep $devname|awk 'NR==i{print $1}' i=$i`
ip=`ifconfig |grep -A1 $DEV|grep inet|sed 's/:/ /'|awk '{print $3}'`
gw=`ifconfig |grep -A1 $DEV|grep inet|sed 's/:/ /g'|awk '{print $5}'`
table="T"$i
echo "processing "$DEV"..."
sudo ip route add $gw dev $DEV src $ip table $table
sudo ip route add default via $ip table $table
sudo ip rule add from $ip table $table
done

echo "Done..!"

執行./setup_route,然後輸入密碼
就完成啦!

那麼多IP要幹麻呢……
假如我們ppp2的ip為 123.111.321.111
輸入
socat tcp-listen:5555,bind=127.0.0.1,fork tcp:ptt.cc:23,bind=123.111.321.111 &

那用pcman連localhost:5555,就可以指定用ppp2的IP來上ptt囉。

socat作為netcat的後繼版本,功能真的強太多了…
尤其是要作forwarding真的很方便

參數:
tcp-listen:5555
在tcp port 5555接受連線

bind=127.0.0.1
限定本機端才能連上

fork
為每個連線建一個子執行緒

tcp:ptt.cc:23
連到ptt.cc port 23

bind=123.111.321.111
綁定這個IP來建連線

&
丟到背景執行


參數說明跟script的部分有錯的話請麻煩指正,謝謝 :)

--

All Comments