<li id="q4aaq"><object id="q4aaq"></object></li>
<xmp id="q4aaq">
  • <button id="q4aaq"><li id="q4aaq"></li></button>
  • <optgroup id="q4aaq"><sup id="q4aaq"></sup></optgroup><center id="q4aaq"><acronym id="q4aaq"></acronym></center>
  • <strong id="q4aaq"></strong>
  • <nav id="q4aaq"><menu id="q4aaq"></menu></nav>
    | |
        今天寫了一個自動拉起腳本,調試的時候出了點狀況,導致啟動了很多個openvpn實例,并且還在不斷啟動中。對于使用同證書的實例,默認會后面的踢掉前面的,所以網絡就陷入了還沒連上就被踢掉的循環,無法登陸,也就失去了控制。

        首先嘗試打開server端的duplicate-cn支持。這樣每個連接都會分配到一個單獨ip,不會互相踢掉。但由于進程太多,每個進程連接上后都試圖刷新路由表,導致路由表不停變更,網絡依然不能連通。

        這時就需要從server端限制:只能有一個客戶端連接上。首先調研了下是否支持只接受第一個連接上的實例而忽略掉后面的連接請求,發現是沒有這個特性的。因為如果正常使用中客戶網絡閃斷,這種情況下就不得不等待很久session超時后才能連上,用戶體驗太差。

        對于網絡層面的控制,iptables是個很有效的利器。于是采用了如下的方式:
        1,首先設置DROP掉指定機器所有入包     iptables -I INPUT 1 -p udp -s xxx.xxx.xxx.xxx -j DROP
             這時候所有連入請求都會timeout。
        2,然后使用tcpdump host xxx.xxx.xxx.xxx
             查看所有連入請求的來源端口,選取其中一個。
        3,執行          iptables -I INPUT 1 -p udp -s xxx.xxx.xxx.xxx --source-port yyyyy -j ACCEPT
             為這個實例單獨開一個入口。

    等待幾秒,等待其重試連接,這時候只有這一個實例可以連入。成功恢復連接。

    這里需要注意,第一步應使用DROP而不是REJECT,因為前者會讓請求方重試的時間間隔更長一些,為后續操作贏得更多時間。









    Tags:
    by snooda | 分類: 網絡 | 評論(0) | 引用(0) | 閱讀(2831)
    發表評論
    表情
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    打開HTML
    打開UBB
    打開表情
    隱藏
    記住我
    昵稱   密碼   游客無需密碼
    網址   電郵   [注冊]
                   

     
    色琪琪av男人的天堂-琪琪see色原网色原网站-天天谢天天谢天天要-欧美成人视频