使用kcptun對(duì)ss服務(wù)器進(jìn)行優(yōu)化加速

發(fā)布日期:2019/01/16 08:00:00

  KCP 是一個(gè)快速可靠協(xié)議,能以比 TCP浪費(fèi)10%-20%的帶寬的代價(jià),換取平均延遲降低 30%-40%,且最大延遲降低三倍的傳輸效果。純算法實(shí)現(xiàn),并不負(fù)責(zé)底層協(xié)議(如UDP)的收發(fā),需要使用者自己定義下層數(shù)據(jù)包的發(fā)送方式,以 callback的方式提供給 KCP。連時(shí)鐘都需要外部傳遞進(jìn)來,內(nèi)部不會(huì)有任何一次系統(tǒng)調(diào)用。

  1. 先下載Kcptun

  mkdir kcptun

  cd kcptun

  wget https://github.com/xtaci/kcptun/releases/download/v20160701/kcptun-linux-amd64-20160701.tar.gz

  tar -zxf kcptun-linux-amd64-20160701.tar.gz

  提醒:wget時(shí)根據(jù)本地系統(tǒng)下載。32位下載 kcptun-linux-386-*.tar.gz,64位下載 kcptun-linux-amd64-*.tar.gz

  2.創(chuàng)建 start.sh

  vi /root/kcptun/start.sh

  寫入以下內(nèi)容:

  ./server_linux_amd64 -l :29900 -t 127.0.0.1:8388 -key test -mtu 1400 -sndwnd 2048 -rcvwnd 2048 -mode fast2 > kcptun.log 2>&1 &

  server_linux_amd64 對(duì)應(yīng)服務(wù)端文件名,請(qǐng)對(duì)應(yīng)修改。

  -l 表示 Kcptun 的服務(wù)端監(jiān)聽端口,用于接收外部請(qǐng)求和發(fā)送數(shù)據(jù),默認(rèn) 29900; -t 表示要加速的地址,我這里設(shè)置的是我服務(wù)器的 Shadowsocks 端口;

  -key 是 Kcptun 的驗(yàn)證密鑰,服務(wù)端和本地必須一致才能通過驗(yàn)證,請(qǐng)自行設(shè)置;

  -mode 為加速模式,默認(rèn) fast,這里使用 fast2。

  3.創(chuàng)建 stop.sh

  vi /root/kcptun/stop.sh

  寫入以下內(nèi)容:

  #!/bin/sh

  PID=`ps -ef | grep server_linux_amd64 | grep -v grep | awk '{print $2}'`

  if [[ "" != "$PID" ]]; then

  echo "killing $PID"

  kill -9 $PID

  fi

  4.創(chuàng)建 restart.sh

  #!/bin/sh

  cd /root/kcptun/

  echo "Stopping Kcptun..."

  sh stop.sh

  sh start.sh

  echo "Kcptun started."

  添加開機(jī)啟動(dòng):

  echo "sh /root/kcptun/start.sh" >> /etc/rc.d/rc.local

  上面是服務(wù)器端配置,下面配置客戶端

  1. 先下載客戶端文件,以windows為例

  http://download.csdn.NET/detail/per_son/9583356 kcptun64位下載

  http://download.csdn.Net/detail/per_son/9583352 kcptun32位下載

  由于 Kcptun 是控制臺(tái)程序,所以我選擇使用 vbs 腳本,來達(dá)到后臺(tái)運(yùn)行的目的:新建 run.vbs

  Dim RunKcptun

  Set fso = CreateObject("Scripting.FileSystemObject")

  Set WshShell = WScript.CreateObject("WScript.Shell")

  '獲取文件路徑

  currentPath = fso.GetFile(Wscript.ScriptFullName).ParentFolder.Path & "\"

  '軟件運(yùn)行參數(shù)

  exeConfig = "client_windows_amd64.exe -l :12948 -r 10.10.10.10:29900 -key test -mtu 1400 -sndwnd 256 -rcvwnd 2048 -mode fast2 -dscp 46"

  '日志文件

  logFile = "kcptun.log"

  '拼接命令行

  cmdLine = "cmd /c " & currentPath & exeConfig & " > " & currentPath & logFile & " 2>&1"

  '啟動(dòng)軟件

  WshShell.Run cmdLine, 0, False

  '等待1秒

  'WScript.Sleep 1000

  '打印運(yùn)行命令

  'Wscript.echo cmdLine

  Set WshShell = Nothing

  Set fso = Nothing

  '退出腳本

  WScript.quit

  本地監(jiān)聽端口為 12948;服務(wù)器 IP 地址 10.10.10.10 端口 29900;驗(yàn)證密鑰和服務(wù)端一致。其他參數(shù)說明見上面服務(wù)端配置的說明。

  v20160616 新增參數(shù):-conn,使用多線程連接。可嘗試添加 -conn 4 以使用4線程連接服務(wù)器。

  新建 stop.bat

  taskkill /f /im client_windows_amd64.exe

  把stop.bat 和 run.vbs 放到kcptun解壓的那個(gè)文件里,雙擊 run.vbs 運(yùn)行程序,使用 stop.bat 來停止程序,kcptun.log 為輸出的日志信息。

  然后是Shadowsocks 客戶端配置

  在客戶端中新建服務(wù)器:

  服務(wù)器 IP 填寫:127.0.0.1

  服務(wù)器端口填寫:12948

  正確填寫你的 Shadowsocks 密碼,加密方式,協(xié)議和混淆方式。

  切換到該服務(wù)器上,測(cè)試是否正確運(yùn)行。


同創(chuàng)雙子為企業(yè)保駕護(hù)航

專注數(shù)字化方案建設(shè),推動(dòng)智慧企業(yè)生態(tài)圈的升級(jí)發(fā)展

瓦房店市| 栾川县| 仙桃市| 来安县| 阳西县| 青田县| 杭州市| 望江县| 海晏县| 睢宁县| 周至县| 巴彦县| 大同县| 平顺县| 龙井市| 佛冈县| 乃东县| 榕江县| 舞钢市| 寿光市| 黄大仙区| 辉县市| 舒兰市| 崇义县| 工布江达县| 合肥市| 巧家县| 茂名市| 安化县| 新绛县| 凯里市| 睢宁县| 鹿邑县| 右玉县| 通江县| 莫力| 新河县| 江华| 容城县| 海淀区| 防城港市|