歡迎您光臨本站 註冊首頁

linux下vpn客戶端撥號生成的ppp0、ppp1等能自定義不?

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

linux下vpn客戶端撥號生成的ppp0、ppp1等能自定義不?

server為pptp vpn
想實現如下效果
伺服器間撥號生成的鏈接名為pppserver(後面可帶也可不帶數字)
用戶撥號生成的鏈接名為pppuser(後面可帶也可不帶數字)

thanks
《解決方案》

ppp 有一個參數是unit x
《解決方案》

你現在做的和我的相同。
我正在做一個對pptp運行管理的程序。
用execl 函數調用pptp-1.7.2 不知道要傳哪些參數進去。請那位高手告訴我。
持續等待中。

程序的流程大致為:
typedef struct process_tag
{
pid_t pid;
char state; //enable or disable
struct xmlnode * pptp_parameter;   //運行pptp的參數;
char name; // 用戶操作的pptp名字。
  strcut process_tag *next;
}process_tag;

偽代碼為
int main()
{

  (1)用每個pptp運行參數初始化process_tag 節。
  (2)創建unix域。設置為不阻塞監聽。
  (3)通過堅持每個process_tag 節點的state成員是否為「enable」, 如果為"enable" 則創建一個進程,啟用一個pptp進程。
  do
  {
     ret = select(......); //等待 每隔5秒  
     if(ret =>0)
     {
         (4)得到用戶輸入命令內容,
               (4.1)判斷用戶輸入的命令是否有效,及那種類型的命令。格式可以自己定,我在程序中定的格式為」 c xxx 或 d xxx「 。
               (4.2)判斷要操作的對象的名稱與process_tag 成員name值是否匹配。如果匹配,則:
                    (4.2.1)如果是命令1 (即: d xxx),檢查xxx 對應的pid 是否大於0,如果大於零,則殺死這個進程,把state 的值設置為「disable」 pid 的值為-1;            
                     (4.2.2)如果是命令2 (即: c xxx),檢查xxx 對應的pid 是否大於0,如果小於零,創建一個進程。則啟用這個進程,把state 的值設置為「enbble」 pid 的值為 =getpid();
        (5)while((exitpid = waitpid(-1, &state, NOHONG)) >0)
            {
                exitpid 與每個節點中的pid 成員比較,判斷哪個匹配,找到了就設置其對應的成員pid = -1; stage ="disable"
                列印退出狀態。
            }
          (3)通過堅持每個process_tag 節點的state成員是否為「enable」, 如果為"enable" 則創建一個進程,啟用一個pptp進程。
      }

   }while(1);

}

在啟用每個pptp時,我是用execl函數去調用的,但現在不知到要傳那些參數進行。請大家告訴我。先謝謝了。
持續等待中!!!!!!!!!!!!!!!!!!!!!!

或發郵件給我的郵箱harris11727@yahoo.com
《解決方案》

回復 #1 leo_ss_pku 的帖子

那用openvpn 應該比較的合適呀

[火星人 ] linux下vpn客戶端撥號生成的ppp0、ppp1等能自定義不?已經有1269次圍觀

http://coctec.com/docs/service/show-post-22649.html