作者 主題: 浮動IP的server只有一個會通的問題  (閱讀 40500 次)

0 會員 與 1 訪客 正在閱讀本文。

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 於: 2007-02-14 18:59 »
請問:

當取得兩個浮動IP時以自己寫的server程式聆聽用戶端訊息發生下列狀況(應該不是程式bug
之前是每次要連都要在bash下手動關閉,開啟ppp0及ppp1甚至重新開機)

當使用端以ppp0的介面傳送資料時傳到第10次即令其傳送server認定的"非正常使用者"的
識別字,當server接到這個識別字即開始進行"IP迴避"(即以system()叫用ifdown後再叫用ifup重新取得IP)

在測試過程中以ppp0的IP(使用端需填入的連線目標)來進行資料傳送時,當server進行IP迴避後使用端
只要手動變更連線目標的IP即可再進行連線傳送資料(還沒發展到自動)
但是以ppp1的IP進行資料傳送時卻無法進行連線(第一次連線也不行,很像這個IP沒用了)

應該是和設定的問題有關(程式的server端能正確進行資料接收及IP迴避,使用端能正常傳送資料所以應該不是程式問題了)

請有瞭解的大大能解疑一下(有說不清楚的,請告知將會補充)

謝謝,感恩

忘了告知配備:
電腦2台-其中server端有2塊網卡(一塊一個IP),使用端有1塊網卡
中華電信ADSL線路1條
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #1 於: 2007-02-14 19:16 »
補充:
例如server端所取得的IP為ppp0=1.1.1.1,ppp1=2.2.2.2
當在使用端ping 1.1.1.1時很正常
64 bytes from 1.1.1.1: icmp_seq=xxx ttl=63 time=xx.x ms
.....
.....
.....


但在使用端ping 2.2.2.2時只出現
PING 2.2.2.2 (2.2.2.2) 56(84)bytes of data-->只出來一次就卡住了
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #2 於: 2007-02-14 19:24 »
剛剛發現一個問題:以ifconfig看兩個IP的訊息時如下:
代碼: [選擇]

eth0      Link encap:Ethernet  HWaddr 00:C0:26:6C:EE:18
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6900 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7090 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:563197 (549.9 Kb)  TX bytes:719678 (702.8 Kb)
          Interrupt:10 Base address:0x9000

eth1      Link encap:Ethernet  HWaddr 00:50:FC:31:BA:36
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:629 errors:0 dropped:0 overruns:0 frame:0
          TX packets:261 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:62346 (60.8 Kb)  TX bytes:16923 (16.5 Kb)
          Interrupt:11 Base address:0xb000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:22279 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22279 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1520836 (1.4 Mb)  TX bytes:1520836 (1.4 Mb)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:122.123.142.14  P-t-P:122.123.128.254  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:6160 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6433 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:365040 (356.4 Kb)  TX bytes:534677 (522.1 Kb)

ppp1      Link encap:Point-to-Point Protocol
          inet addr:122.123.135.189  P-t-P:122.123.128.254  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:322 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:25605 (25.0 Kb)  TX bytes:54 (54.0 b)


其中eth0與eth1的RX與TX值差很多(什麼是RX與TX值呢???)
ppp0與ppp1的RX與TX值也差很多
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #3 於: 2007-02-15 08:24 »
其實您的問題是 multipath 的問題,只要下載這個程式

http://www.study-area.org/linux/src/multipath.tgz

每一次重新取得 ip 時,call 一下,run_ip.sh 這個 scripts 就可以了,
詳細的內容可以用 mulitpath 這個關鍵字,在這個搜尋一下,就有很多了
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #4 於: 2007-02-16 03:44 »
之前的問題是
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-ppp0
/etc/sysconfig/network-scripts/ifcfg-ppp1
這四個檔案設定的問題,導致無法取得ppp1實體介面的IP

現在變成很像只能以ppp0才能上網了
以ifdown eth0及eth1及ppp0及ppp1後
ifup eth1及ppp1再以ifconfig查看卻變成
只有eth1(正常)及ppp0(啟動的是ppp1怎麼變成ppp0了)
好苦惱阿 :(

以 route -n 指令查看路由時感覺怪怪的(說不出哪裡怪)
代碼: [選擇]

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
122.123.128.254 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
122.123.128.254 0.0.0.0         255.255.255.255 UH    0      0        0 ppp1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 lo
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         122.123.128.254 0.0.0.0         UG    0      0        0 ppp0


問題很像是:可從同一條線進來但無法辨別從哪一張卡進來,都是走預設的ppp0
還是卡壞掉了:那也不會去抓到兩個IP吧....真頭痛@@
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #5 於: 2007-02-16 07:36 »
引述: "kuolung"
其實您的問題是 multipath 的問題,只要下載這個程式

http://www.study-area.org/linux/src/multipath.tgz

每一次重新取得 ip 時,call 一下,run_ip.sh 這個 scripts 就可以了,
詳細的內容可以用 mulitpath 這個關鍵字,在這個搜尋一下,就有很多了

是重取得IP之前還是之後呢??
3Q
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #6 於: 2007-02-16 17:22 »
引述: "stlee"
引述: "kuolung"
其實您的問題是 multipath 的問題,只要下載這個程式

http://www.study-area.org/linux/src/multipath.tgz

每一次重新取得 ip 時,call 一下,run_ip.sh 這個 scripts 就可以了,
詳細的內容可以用 mulitpath 這個關鍵字,在這個搜尋一下,就有很多了

是重取得IP之前還是之後呢??
3Q


當然是重新取得之後囉
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #7 於: 2007-02-17 03:31 »
報告:
有通一次,然後又不通了><
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #8 於: 2007-02-17 03:37 »
引述: "stlee"
報告:
有通一次,然後又不通了><


是每一次重新取得 ip 都要再執行一次 run_ip.sh 這個 scripts 才可以
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #9 於: 2007-02-17 03:53 »
不通的狀況是:以一般使用者登入執行時有下列訊息:
代碼: [選擇]

使用IP:122.123.131.214 備用IP=122.123.130.47
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共9次
444 伺服器已取得使用者傳來的字串=A fd=4
使用IP:122.123.131.214 備用IP=122.123.130.47
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共10次
444 伺服器已取得使用者傳來的字串=! fd=4
/home/stlee/leelib/net/getip.c -->lee_newip()開始
ppp0設備已啟動現正重新取得IP(原IP為 122.123.131.214 )
ppp0設備已重新取得IP為 122.123.132.224
ppp1設備已啟動現正重新取得IP(原IP為 122.123.130.47 )
ppp1設備已重新取得IP為 122.123.132.29
/home/stlee/leelib/net/getip.c -->lee_newip()結束
RTNETLINK answers: Operation not permitted--------->這裡是多出來的
RTNETLINK answers: Operation not permitted--------->以root執行時滿正常的
RTNETLINK answers: Operation not permitted--------->且無此訊息
RTNETLINK answers: Operation not permitted--------->
RTNETLINK answers: Operation not permitted--------->
RTNETLINK answers: Operation not permitted--------->
Cannot open "/proc/sys/net/ipv4/route/flush"
122.123.128.254 dev ppp0  proto kernel  scope link  src 122.123.132.224
122.123.128.254 dev ppp1  proto kernel  scope link  src 122.123.132.29
169.254.0.0/16 dev lo  scope link
127.0.0.0/8 dev lo  scope link
default via 122.123.128.254 dev ppp0
使用IP:122.123.132.224 備用IP=122.123.132.29
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共2次
333 使用者已離線 fd=4
使用IP:122.123.132.224 備用IP=122.123.132.29
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共3次


報告:本來就有每次呼叫了,測試的原碼片段如下:
代碼: [選擇]

/*建立新執行緒以執行lee_newipt(),要傳遞的參數必須先轉型成void型態*/
/*進行IP迴避*/
if(ch == '!')
{

  shutdown(client_sockfd,2);/*關閉可疑使用者的連線*/

  /*shutdown(server_sockfd,2);*/

/*  res=pthread_create(&a_thread,NULL,lee_newipt,(void *)ipstr+(1*IPSLEN));
*/
  /*取得浮動IP*/
  for(i=0;i<ethmax;i++)
    memset(ipstr+(i*IPSLEN),'\0',IPSLEN);
  lee_newip(ETHSTR,ethfoot,ethend,ipstr,IPSLEN);/*一次取得全部的IP*/

/**/lee_getipl("ppp0",ipstr+(0*IPSLEN));
/**/lee_getipl("ppp1",ipstr+(1*IPSLEN));

system("/home/stlee/multipath/run_ip.sh");---------->已經在取得IP後重新叫用了

程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #10 於: 2007-02-18 10:01 »
引述: "stlee"
不通的狀況是:以一般使用者登入執行時有下列訊息:
代碼: [選擇]

RTNETLINK answers: Operation not permitted--------->這裡是多出來的
RTNETLINK answers: Operation not permitted--------->以root執行時滿正常的
RTNETLINK answers: Operation not permitted--------->且無此訊息

122.123.128.254 dev ppp0  proto kernel  scope link  src 122.123.132.224
122.123.128.254 dev ppp1  proto kernel  scope link  src 122.123.132.29
169.254.0.0/16 dev lo  scope link
127.0.0.0/8 dev lo  scope link
default via 122.123.128.254 dev ppp0
使用IP:122.123.132.224 備用IP=122.123.132.29
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共2次
333 使用者已離線 fd=4
使用IP:122.123.132.224 備用IP=122.123.132.29
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共3次


報告:本來就有每次呼叫了,測試的原碼片段如下:
代碼: [選擇]

/*建立新執行緒以執行lee_newipt(),要傳遞的參數必須先轉型成void型態*/
/*進行IP迴避*/
if(ch == '!')
{

  shutdown(client_sockfd,2);/*關閉可疑使用者的連線*/

  /*shutdown(server_sockfd,2);*/

/*  res=pthread_create(&a_thread,NULL,lee_newipt,(void *)ipstr+(1*IPSLEN));
*/
  /*取得浮動IP*/
  for(i=0;i<ethmax;i++)
    memset(ipstr+(i*IPSLEN),'\0',IPSLEN);
  lee_newip(ETHSTR,ethfoot,ethend,ipstr,IPSLEN);/*一次取得全部的IP*/

/**/lee_getipl("ppp0",ipstr+(0*IPSLEN));
/**/lee_getipl("ppp1",ipstr+(1*IPSLEN));

system("/home/stlee/multipath/run_ip.sh");---------->已經在取得IP後重新叫用了



會出現 RTNETLINK answers: Operation not permitted 表示您的程式中有用到
root 權限才能用的指令,所以您在  call getip 時,可能要改用 sudo 這個指令

-->> default via 122.123.128.254 dev ppp0

表示您的 run_ip.sh 沒有執行成功
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #11 於: 2007-02-18 13:26 »
小弟的程式(自己寫的部份)並沒有使用或開啟root權限的命令或檔案喔

加入這一段system("/home/stlee/multipath/run_ip.sh");才有這個 問題

因為之前測試都只有用ppp0來測試而且都是ok的所以小弟非常肯定是那一行出問題

(我都是寫一行測一測寫一行再測一測....重要的部分都這麼幹)

所以應該是run_ip.sh這一個命令裡面的問題了

當然不是說他不好用喔!!

只是小弟總抱持著:讓使用程式的人能在無限制的環境去用我的程式

當然小弟還沒有很終極的去測試該scripts的極限到哪裡,但已經能解決了小弟該程式最

重要的問題了,只是不知道能不能透過去更改run_ip.sh所呼叫命令的檔案權限的方式

來讓一般使用者執行小弟的程式時也能叫用run_ip.sh

這讓小弟想起以前看到的一句話(忘記在哪看到的):

在M$windows下如果沒有您要的功能您可以罵windows真難用
在Linux下如果沒有您要的功能是應該的,而且在您可以用該功能時應該懷著感恩的心

現在真想唱: 感 恩 的 心 感 謝 有 您 , 用 我 一 生 ............
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #12 於: 2007-02-18 13:52 »
引述: "stlee"
小弟的程式(自己寫的部份)並沒有使用或開啟root權限的命令或檔案喔

加入這一段system("/home/stlee/multipath/run_ip.sh");才有這個 問題

因為之前測試都只有用ppp0來測試而且都是ok的所以小弟非常肯定是那一行出問題

(我都是寫一行測一測寫一行再測一測....重要的部分都這麼幹)

所以應該是run_ip.sh這一個命令裡面的問題了

當然不是說他不好用喔!!

只是小弟總抱持著:讓使用程式的人能在無限制的環境去用我的程式

當然小弟還沒有很終極的去測試該scripts的極限到哪裡,但已經能解決了小弟該程式最

重要的問題了,只是不知道能不能透過去更改run_ip.sh所呼叫命令的檔案權限的方式

來讓一般使用者執行小弟的程式時也能叫用run_ip.sh

這讓小弟想起以前看到的一句話(忘記在哪看到的):

在M$windows下如果沒有您要的功能您可以罵windows真難用
在Linux下如果沒有您要的功能是應該的,而且在您可以用該功能時應該懷著感恩的心

現在真想唱: 感 恩 的 心 感 謝 有 您 , 用 我 一 生 ............


這是一個 scripts 所以您可以用 edit 看它的程式內容,我想,會用 root 的,應該是 ifconfig , ip  這幾個指令吧,因為 run_ip.sh 是會更改到系統設定,所以最好一定要 root 或  admin 才行執行,

其二,請您把 /etc/sysconfig/network-scripts/ifcfg-ppp0 和
/etc/sysconfig/network-scripts/ifcfg-ppp1 的內容 post 出來,

ps: 我是假定您是用 redhat 系列的 Linux
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #13 於: 2007-02-18 17:43 »
小弟使用的是redhat9的Linux

ifcfg-eth0如下:
代碼: [選擇]

DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=no
GETEWAYDEV=ppp0
TYPE=Ethernet
USERCTL=no
PEERDNS=no


ifcfg-eth1是複製eth0小改過來的:
代碼: [選擇]

DEVICE=eth1
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.3
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=no
GETEWAYDEV=ppp1
TYPE=Ethernet
USERCTL=no
PEERDNS=no


ifcfg-ppp0如下:
代碼: [選擇]

USERCTL=yes
PEERDNS=yes
TYPE=xDSL
DEVICE=ppp0
BOOTPROTO=dialup
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=80
LCP_FAILURE=3
LCP_INTERVAL=20
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
PERSIST=no
SYNCHRONOUS=no
DEFROUTE=yes
USER='********@hinet.net'
PROVIDER=hinet
ETH=eth0


ifcfg-ppp1同樣是複製過去小改過的:
代碼: [選擇]

USERCTL=yes
PEERDNS=yes
TYPE=xDSL
DEVICE=ppp1
BOOTPROTO=dialup
ONBOOT=yes
PIDFILE=/var/run/pppoe-adsl1.pid
FIREWALL=NONE
PING=.
PPPOE_TIMEOUT=80
LCP_FAILURE=3
LCP_INTERVAL=20
CLAMPMSS=1412
CONNECT_POLL=6
CONNECT_TIMEOUT=60
PERSIST=no
SYNCHRONOUS=no
DEFROUTE=yes
USER='********@hinet.net'
PROVIDER=hinet
ETH=eth1


剛剛蹓狗時想到:multipath主要是頻寬分流的技術,而小弟目前環境只有"一條線"加"兩塊網卡"
但系統可能認為"兩塊網卡應該有兩條線路"所以小弟目前有了multipath的問題
不過就算程式真的把這問題解決了,但我原先的目地並不是要"合併頻寬"啊!!

當初以為要"取得兩個IP"必須裝"兩塊網卡"但現在回想到鳥哥書上的關於多IP的章節
時想到:以"一張網卡"加"兩個IP"的方式就不會有"合併頻寬"或頻寬分流的問題啦

大概像這樣:
目前:一台電腦+[兩]塊網卡+一條線路=可取得2個IP
想法:一台電腦+[一]塊網卡+一條線路=可取得2個IP-->程式對系統呼叫減少

還是個想法...是想法....根本都還沒動手
不過不知道能不能達到當初要求的目標:以IP迴避達到防駭功能
相關想法在這:
http://phorum.study-area.org/viewtopic.php?t=44227

非 常 感 謝
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #14 於: 2007-02-19 17:20 »
對於您的想法,我個人是沒有什麼意見,我只幫您做好 MultiPath 的部份

ifcfg-eth0  要改的地方如下 :

刪除  GETEWAYDEV=ppp0

ifcfg-eth1  要改的地方如下 :

BROADCAST=192.168.2.255
IPADDR=192.168.2.2
NETMASK=255.255.255.0
NETWORK=192.168.2.0

刪除  GETEWAYDEV=ppp1

ifcfg-ppp0  要改的地方如下 :

PEERDNS=no
DEFROUTE=no
PIDFILE=/var/run/pppoe-adsl0.pid

ifcfg-ppp1  要改的地方如下 :

PEERDNS=no
DEFROUTE=no
PIDFILE=/var/run/pppoe-adsl1.pid

其實這個和頻寬合併,分流都沒有什麼關係,只要default 設好,就可以了
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #15 於: 2007-02-20 16:55 »
還是不行呢><!

個人有點懷疑會不會在route這邊呢??以route -n命令看到如下:
代碼: [選擇]

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
122.123.128.254 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
122.123.128.254 0.0.0.0         255.255.255.255 UH    0      0        0 ppp1
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 lo
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         122.123.128.254 0.0.0.0         UG    0      0        0 ppp0

最後面的部份只有ppp0如果能再多一個ppp1的不知道可不可行??

不然就是 Destination 的部份ppp0與ppp1的是相同的所以我認為:難怪只會通一個,只是
不知道該如何弄><

對了之前有個狀況:以root上網時(一般上網)滿順的,但以一般使用者上網卻出奇的慢
我一定有個地方沒把它設好...T.T

非 常 感 謝 !!小弟對網路還只是新手上路大大詳盡的解說或有理解不全之處敬請包涵

題外話:設定這些東西讓我想起以前在DOS下玩遊戲時在設定AUTOEXEC.BAT及CONFIG.SYS了
.....最後把它設成多重開機共五種記憶體模式可以玩到(補帖裡面的)所有遊戲 :P
後來對寫程式發揮了意想不到的好處:能在跑倚天中文模式下再跑TURBO C
這兩個對當時來說不會設記憶體模式只能跑其中之一(和系統其它加起來會佔640K以上)但會設定卻
能同時跑(後來讀夜校時有老師拖我寫一個檔案相似性檢查看是否有同學相互抄襲)時
還問我怎麼把中文註解到程式原始碼裡面的 :D 呵呵...弟弟我可是有練過的呢
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #16 於: 2007-02-20 19:46 »
以tcpdump -i PPP1的命令測試會有反應,卻慢到一個不行(ppp0的反應很快)
tcpdump -i eth1也很慢(eth0很快)
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #17 於: 2007-02-20 21:53 »
算了,直接幫您解答好了 :

ip rule add pref 10 from x.x.x.x table 10
ip rule add pref 20 from y.y.y.y table 20

ip route replace default via g.g.g.g table 10
ip route replace default via f.f.f.f table 20

x.x.x.x 是 ppp0 的 ip , g.g.g.g 是 ppp0 的 default gw
y.y.y.y 是 ppp1 的 ip , f.f.f.f 是 ppp1 的 default gw

其實上面的這些動作是 run_ip.sh 內容的東東,您會寫程式,花一點時間,看一下

http://phorum.study-area.org/viewtopic.php?t=10085



run_ip.sh

就會了
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #18 於: 2007-02-21 22:35 »
http://phorum.study-area.org/viewtopic.php?t=10085
這一篇小弟之前有看很多次了,每次看完就動手弄一弄,然後每次都有不同的領略^^

*.sh的話小弟就真的投降了.我只會一種就真的只會一種語言--->C語言

謝謝大大熱心的指導,如果小弟寫得差不多了希望大大能來幫忙玩一下看有哪裡要改進的

 萬 分 感 謝  :D
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #19 於: 2007-02-28 16:06 »
本問題已得到完美的解決方案:
http://phorum.study-area.org/viewtopic.php?p=224754#224754


本樓以下的討論可能與相關應用程式開發有較大的關係

如果您是使用者相信已經能夠在上面的連結找到答案

如果您是程式開發者請您能加入本樓以下的討論,提出您的想法與做法...謝謝
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #20 於: 2007-02-28 16:33 »
發生問題的執行結果畫面如下:
server端:
代碼: [選擇]

使用IP:122.123.129.57 備用IP=122.123.134.116
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共0次
222 接收到使用者的連線要求 fd=4
使用IP:122.123.129.57 備用IP=122.123.134.116
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共1次
444 伺服器已取得使用者傳來的字串=@ fd=4
使用IP:122.123.129.57 備用IP=122.123.134.116
.....
.....
.....
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共9次
444 伺服器已取得使用者傳來的字串=A fd=4
使用IP:122.123.129.57 備用IP=122.123.134.116
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共10次
444 伺服器已取得使用者傳來的字串=! fd=4
/home/stlee/leelib/net/getip.c -->lee_newip()開始
ppp0設備已啟動現正重新取得IP(原IP為 122.123.129.57 )
ppp0設備已重新取得IP為 122.123.129.57
ppp1設備已啟動現正重新取得IP(原IP為 122.123.150.71 )
ppp1設備已重新取得IP為 122.123.150.71
/home/stlee/leelib/net/getip.c -->lee_newip()結束
使用IP:122.123.150.75 備用IP=122.123.150.71
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共2次
333 使用者已離線 fd=4
使用IP:122.123.150.75 備用IP=122.123.150.71
伺服器等待中:與使用者通訊(已接到使用者傳來的資料)共3次

--------程式停在這裡-------


第一次連線不用ppp0的IP(已確定可以連線)是用ppp1的IP 122.123.134.116 進行連線,運行
狀況良好當進行到第10次資料傳送時故意傳一個被server認定不是"正常使用者"的字元'!'
以讓server端的程式進行IP迴避的動作,而server端程式也正確執行了
現在當server程式重新取得IP仍以ppp1的IP 122.123.150.71後在clinet端電腦則修改連線目
標IP(還沒寫到自動連線所以必須在原碼內更改目標IP)但卻無法進行連線了
clinet端電腦的畫面如下:
代碼: [選擇]

[stlee2@localhost tmp]$ ./go.sh
cc    -c -o svr.o svr.c
gcc -g -o go cli.c -lcurses -lefence
[stlee2@localhost tmp]$ ./go
目標IP:122.123.134.116 埠號:1688
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = A
(伺服器傳回結果) = !
[stlee2@localhost tmp]$ ./go.sh
cc    -c -o svr.o svr.c
gcc -g -o go cli.c -lcurses -lefence
[stlee2@localhost tmp]$ ./go
目標IP:122.123.150.71 埠號:1688

--------程式停在這裡-------

[stlee2@localhost tmp]$

第一次連線的122.123.134.116確定可連線且進行到第10次資料傳送時也如預期的被斷線了
但第二次重新編譯(還沒寫到自動連線所以必須在原碼內更改目標IP)卻無法連線

如果您有任何想法或做法解決此一狀況請不吝給予指教...謝謝!!
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #21 於: 2007-02-28 20:17 »
剛剛把rc.local里面的代碼改寫成C的函數:
代碼: [選擇]

/*#############################################################################
重設IP路由
#############################################################################*/
void lee_runnewip(int ipfoot,int ipend)
{
  /*指定命令的完整路逕檔名,有可能的情況是會依版本的不同該命令會存放在不同的目錄下
  所以有此情形則將路徑修改即可*/
  char phfna[6][21]={
         "/sbin/iptables",
         "/bin/grep",
         "/bin/awk",
         "/bin/sed",
         "/sbin/ifconfig",
         "/sbin/ip"};

  char *ippppx,*gwpppx;
  char *syscall,*endcall;
  int i,t,eclen,k;

printf("lee_runnewip()---->開始\n");


  ippppx=(char *)malloc((ipend-ipfoot+1)*128);
  gwpppx=(char *)malloc((ipend-ipfoot+1)*128);
  syscall=(char *)malloc(256);
  /*i從 ppp0開始應該沒問題,但t是否應從10開始則無法確定,主要是$IP route ... table 10的部份
  因其從10開始且下一個ppp1為20所以先這樣子,以後較清楚此行命令的用途時再予以修改*/
  for(i=ipfoot,t=10; i<=ipend ;i++,t+=10)
  {
    memset(ippppx+(i*128),'\0',128);
    sprintf(ippppx+(i*128),"`%s ppp%d | %s 'inet addr' | %s '{print $2}' | %s -e 's/.*://'`",
            phfna[4],i,phfna[1],phfna[2],phfna[3]);
    memset(syscall,'\0',256);
    sprintf(syscall,"%s route replace default via %s dev ppp%d table %d",
                     phfna[5],ippppx+(i*128),i,t);
    k=system(syscall);
printf("k=%d %s\n",k,syscall);

  }

printf("\n");


  for(i=ipfoot,t=10; i<=ipend ;i++,t+=10)
  {
    memset(gwpppx+(i*128),'\0',128);
    /*這行與上一個迴路設的ippppx只有'{print $3}'的$3不同而以,其它部份完全相同
    但不清楚是否可同步執行還是依其原來的架構分成兩個迴路執行,以後有時間在試看看*/
    sprintf(gwpppx+(i*128),"`%s ppp%d | %s 'inet addr' | %s '{print $3}' | %s -e 's/.*://'`",
            phfna[4],i,phfna[1],phfna[2],phfna[3]);

    memset(syscall,'\0',256);
    sprintf(syscall,"%s route replace default via %s dev ppp%d table %d",
                     phfna[5],gwpppx+(i*128),i,t);
    k=system(syscall);
printf("k=%d %s\n",k,syscall);
  }
printf("\n");


  eclen=256+128+((ipend-ipfoot+1)*64);
  endcall=(char *)malloc(eclen);

  memset(endcall,'\0',eclen);
  sprintf(endcall,"%s route replace default scope global ",
                     phfna[5],gwpppx+(0*128));


  for(i=ipfoot,t=10; i<=ipend ;i++,t+=10)
  {
    memset(syscall,'\0',256);
    sprintf(syscall,"nexthop via %s dev ppp%d weight 1",
                     gwpppx+(i*128),i);
    strcat(endcall,syscall);

  }
  k=system(endcall);
printf("k=%d %s\n",k,endcall);

  free(ippppx);
  free(gwpppx);
  free(syscall);
printf("lee_runnewip()---->結束\n");

/*本函數由下列代碼修改而來
PTABLES=/sbin/iptables
GREP=/bin/grep
AWK=/bin/awk
SED=/bin/sed
IFCONFIG=/sbin/ifconfig
IP=/sbin/ip

IPPPP0="`$IFCONFIG ppp0 | $GREP 'inet addr' | $AWK '{print $2}' | $SED -e 's/.*://'`"
IPPPP1="`$IFCONFIG ppp1 | $GREP 'inet addr' | $AWK '{print $2}' | $SED -e 's/.*://'`"

$IP rule add pref 10 from $IPPPP0 table 10
$IP rule add pref 20 from $IPPPP1 table 20

GWPPP0="`$IFCONFIG ppp0 | $GREP 'inet addr' | $AWK '{print $3}' | $SED -e 's/.*://'`"
GWPPP1="`$IFCONFIG ppp1 | $GREP 'inet addr' | $AWK '{print $3}' | $SED -e 's/.*://'`"

$IP route replace default via $GWPPP0 dev ppp0 table 10
$IP route replace default via $GWPPP1 dev ppp1 table 20

$IP route replace default scope global
    nexthop via $GWPPP0 dev ppp0 weight 1
    nexthop via $GWPPP1 dev ppp1 weight 1
/**/



}

執行後發生下列狀況:
代碼: [選擇]

444 伺服器已取得使用者傳來的字串=! fd=4
/home/stlee/leelib/net/getip.c -->lee_newip()開始
ppp0設備已啟動現正重新取得IP(原IP為 122.123.139.202 )
ppp0設備已重新取得IP為 122.123.152.6
ppp1設備已啟動現正重新取得IP(原IP為 122.123.152.161 )
ppp1設備已重新取得IP為 122.123.152.19
/home/stlee/leelib/net/getip.c -->lee_newip()結束
lee_runnewip()---->開始
RTNETLINK answers: Operation not permitted
k=512 /sbin/ip route replace default via `/sbin/ifconfig ppp0 | /bin/grep 'inet addr' | /bin/awk '{print $2}' | /bin/sed -e 's/.*://'` dev ppp0 table 10
RTNETLINK answers: Operation not permitted
k=512 /sbin/ip route replace default via `/sbin/ifconfig ppp1 | /bin/grep 'inet addr' | /bin/awk '{print $2}' | /bin/sed -e 's/.*://'` dev ppp1 table 20

RTNETLINK answers: Operation not permitted
k=512 /sbin/ip route replace default via `/sbin/ifconfig ppp0 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp0 table 10
RTNETLINK answers: Operation not permitted
k=512 /sbin/ip route replace default via `/sbin/ifconfig ppp1 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp1 table 20

Error: argument "1nexthop" is wrong: "weight" is invalid

k=65280 /sbin/ip route replace default scope global nexthop via `/sbin/ifconfig ppp0 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp0 weight 1nexthop via `/sbin/ifconfig ppp1 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp1 weight 1
lee_runnewip()---->結束


是哪裡不正確??不過小弟對這shell命令部份真的不行,能請看得懂的人看一下修改
後的命令(從lee_runnewip()---->開始 到 lee_runnewip()---->結束這中間的錯誤
所在嗎??)

非常感謝!! :P
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #22 於: 2007-03-01 14:23 »
剛剛開機發現....會有時通時不通的情況?

昨天還有出現過5個封包掉了2個(ping後的報告說lose了40%)可是只有一次

如果是軟體方面應該不可能,應為這樣就達到密碼學裡面[浮動明文]的最高境界了
可能昨天又動到哪裡了(發現自己是隻大病毒) :-?
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #23 於: 2007-03-01 17:18 »
哈哈!!!
重灌後他又給我通了,我果然是隻大病毒 :-? 不太暸的還是不要亂動,除非真的想練功並做好
重灌的心理準備(很多次)不然一直懷疑中毒,被駭,搞不定,都是起因自己在毒害電腦阿
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #24 於: 2007-03-01 18:42 »
ifcfg-ethx,ifcfg-pppx的權限真的滿重要的,因為剛剛以root執行以為沒問題結果
發現ppp0不通,ppp1可以通,給他用ls -al看時發現ifcfg-ppp0在重灌完後以adsl-setup
所建立的ifcfg-ppp0權限是-rw-------,而ifcfg-ppp1是以vi新建權限是-rw-r--r--在剛
才的使用中以root執行server端的ppp0不通,ppp1可以通,有點懷疑懷疑的將
ifcfg-ppp0設成-rw-r--r--而ifcfg-ppp1的權限設成-rw-------試看看>>
重新開機>>
以另一台電腦去ping他>>
結果居然是ppp0不通,ppp1可以通>>
再將剛才改過的設回來ifcfg-ppp0為-rw-r--r--而ifcfg-ppp1改回rw-r--r--
>>重開機>>
以另一台電腦去ping他>>
哈哈!!兩個都乖乖的給我通了

這個現象不知道是[學到了一件事]還是[發現了一隻蟲],某些系統程式只會依據預定的權限去
讀取某些設定檔,如果權限不符將讀取失敗,而造成某些硬體無法使用
http://phorum.study-area.org/viewtopic.php?t=44280
曾貼過一個有關於檔案存取權限的函數將不會有此狀況!!
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #25 於: 2007-03-01 20:39 »
剛剛以root去執行時發現一個現象:
代碼: [選擇]

lee_runnewip()---->開始
k=0 /sbin/ip route replace default via `/sbin/ifconfig ppp0 | /bin/grep 'inet addr' | /bin/awk '{print $2}' | /bin/sed -e 's/.*://'` dev ppp0 table 10
k=0 /sbin/ip route replace default via `/sbin/ifconfig ppp1 | /bin/grep 'inet addr' | /bin/awk '{print $2}' | /bin/sed -e 's/.*://'` dev ppp1 table 20

k=0 /sbin/ip route replace default via `/sbin/ifconfig ppp0 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp0 table 10
k=0 /sbin/ip route replace default via `/sbin/ifconfig ppp1 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp1 table 20

Error: argument "1nexthop" is wrong: "weight" is invalid

k=65280 /sbin/ip route replace default scope global nexthop via `/sbin/ifconfig ppp0 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp0 weight 1nexthop via `/sbin/ifconfig ppp1 | /bin/grep 'inet addr' | /bin/awk '{print $3}' | /bin/sed -e 's/.*://'` dev ppp1 weight 1
lee_runnewip()---->結束

k的傳回值不同了,以寫作慣例來說,0可能代表失敗(也可能是成功但較少)但書上說是執行
shell命令後的傳回值,以一般使用者傳回的512可能是一個位元旗標值代表的意義還不是很
了解,但以root執行發生不同值的結果看來應該是權限不符的問題,而root接收到的0應該
表示命令執行失敗(因為執行go時兩個都會通,進行ip迴避後一個不通)所以應該先去分析
命令叫用的字串是否有語法上的錯誤(字串合併錯了)

不知道這樣對不對??麻煩指個方向..謝謝

還是有需要原碼來編譯協助的請說一聲(目前因原碼很亂且變動很大所以不敢po上來)

感激不盡
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #26 於: 2007-03-02 15:58 »
昨天晚上臨睡前看了一下書[鳥哥的Linux私房菜-基礎學習篇-13-16頁]
終於知道$2,$3在搞什麼名堂了.....趕快試試先
在以使用者執行go的過程中k的值全部變成256了,一樣是有一個IP不通
(未執行到go的IP迴避錢是兩個都可以通的),且正常的連線雖有抓到IP但無法連上網路
再以root執行看看,一樣有一個不通,不過k的傳回值相同卻能上網,
剛剛是以使用者時是有掛在編輯區的,現在也已一般使用者登入看看,但不掛上去
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

kuolung

  • 俺是博士!
  • *****
  • 文章數: 1031
    • 檢視個人資料
    • http://www.kuolung.net
浮動IP的server只有一個會通的問題
« 回覆 #27 於: 2007-03-02 16:23 »
引述: "stlee"
昨天晚上臨睡前看了一下書[鳥哥的Linux私房菜-基礎學習篇-13-16頁]
終於知道$2,$3在搞什麼名堂了.....趕快試試先
在以使用者執行go的過程中k的值全部變成256了,一樣是有一個IP不通,且正常的連線雖有
抓到IP但無法連上網路
再以root執行看看


所以您還是要先了解一下,scripts 在做什麼會比較好容易一點,

另外,因為您這個程式,會修改系統設定,所以不建議用 user 的權限來執行,如果一定想用 user 的權限來執行,我想您應該是找找看,那一些指令要用 sudo 來執行,而不是一味去比較用 user 和 root 執行結果的差異
=========================
http://www.kuolung.net
==========================

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #28 於: 2007-03-02 16:32 »
引述: "kuolung"
引述: "stlee"
昨天晚上臨睡前看了一下書[鳥哥的Linux私房菜-基礎學習篇-13-16頁]
終於知道$2,$3在搞什麼名堂了.....趕快試試先
在以使用者執行go的過程中k的值全部變成256了,一樣是有一個IP不通,且正常的連線雖有
抓到IP但無法連上網路
再以root執行看看


所以您還是要先了解一下,scripts 在做什麼會比較好容易一點,

另外,因為您這個程式,會修改系統設定,所以不建議用 user 的權限來執行,如果一定想用 user 的權限來執行,我想您應該是找找看,那一些指令要用 sudo 來執行,而不是一味去比較用 user 和 root 執行結果的差異


收到
因為在寫的時候都以使用者去寫(用root寫可能一天要重灌不少次-->尤其在寫檔案存取的功能時)所以當有不同結果出來時小弟可是粉興奮的呢 :lol:
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼

stlee

  • 鑽研的研究生
  • *****
  • 文章數: 817
    • 檢視個人資料
浮動IP的server只有一個會通的問題
« 回覆 #29 於: 2007-03-02 16:42 »
看來/sbin/ip這個指令可是博大精深呢.....能介紹本好書(中文的)來研究研究嗎
比如我現在手上有一本LINUX行程間通訊:技巧秘辛(已絕版)裡面只講到兩個主題
1.行程2.執行緒
這一類專門主題(講/sbin/ip這個指令)的書

看來今天的功課是找書了,希望有知道這種書的大大能告知,非常感謝
程式是人寫的,別讓工具的限制成為您想像力的極限
~程式中最重要的部份應該是註解而不是程式碼,這是因為解讀註解一定比解讀程式碼簡單
~程式寫好後約一個月就會忘的差不多了,所以花點時間把註解寫好至少能讓自己(或別人)看的懂當初在寫什麼