Shadowsocks最佳化加速,shadowsocks最佳化
最近閑時把digitalocean伺服器上的shadowcocks最佳化了一下,最佳化後google搜尋基本在2秒以內出結果,這基本達到了我科學上網的要求,更重要的是工作的時候提高了我的效率。如果想還快一點,可以用國內的一台vps做二級代理,速度可提升不少。
Shadowsocks要比vpn輕很多,同時也要快很多,在網終環境不好的時候,vpn也經常容易斷,影響效率。平時科學上網大多數時候都是用Shadowsocks,速度快不說,還不用老讓我重連,然後Shadowsocks還有很多最佳化空間。1.加密方式推薦使用rc4-md5TIPS: 加密方式推薦使用rc4-md5,因為 RC4 比 AES 速度快好幾倍,如果用在路由器上會帶來顯著性能提升。舊的 RC4 加密之所以不安全是因為 Shadowsocks 在每個串連上重複使用 key,沒有使用 IV。現在已經重新正確實現,可以放心使用。/etc/shadowsocks.json設定檔如下;{ “server”:”my_server_ip”, “server_port”:8000, “local_address”: “127.0.0.1”, “local_port”:1080, “password”:”mypassword”, “timeout”:300, “method”:”rc4-md5″} 重新啟動即可ssserver -c /etc/shadowsocks.json -d stopssserver -c /etc/shadowsocks.json -d start 2.銳速加速銳速是一款非常不錯的TCP底層加速軟體,可以非常方便快速地完成伺服器網路的最佳化,配合 ShadowSocks 效果奇佳。目前銳速官方也出了永久免費版本,適用頻寬20M、3000加速串連,個人使用是足夠了。如果需要,先要在銳速官網註冊個賬戶。 然後確定自己的核心是否在銳速的支援列表裡,如果不在,請先更換核心,如果不確定,請使用 手動安裝。 確定自己的核心版本在支援列表裡,就可以使用以下命令快速安裝了。 wget http://my.serverspeeder.com/d/ls/serverSpeederInstaller.tar.gztar xzvf serverSpeederInstaller.tar.gzbash serverSpeederInstaller.sh輸入在官網註冊的帳號密碼進行安裝。然後選擇需要加速的介面、上行及下行最大頻寬,這裡不需要輸入任何內容,參數設定直接斷行符號預設即可,最後兩項輸入 y 開機自動啟動銳速,y 立刻啟動銳速。之後可以通過lsmod查看是否有appex模組在運行。 到這裡還沒結束,我們還要修改銳速的3個參數,vi /serverspeeder/etc/config rsc=”1″ #RSC網卡驅動模式advinacc=”1″ #流量方向加速maxmode=”1″ #最大傳輸模式digitalocean vps的網卡支援rsc和gso進階演算法,所以可以開啟rsc=”1″,gso=”1″。 重新啟動銳速 service serverSpeeder restart 註:如果遇到..Failed to write configuration: /proc/net/appex/wanKbps的錯誤,需要刪除掉 rm -rf /serverspeeder/ 然後重新嘗試在官網手動下載安裝包serverSpeederInstaller.tar.gz解壓重複以上安裝步驟bash serverSpeederInstaller.sh即可 附:/serverspeeder/etc/config 各參數配置 啟動銳速: /serverspeeder/bin/serverSpeeder.sh start載入銳速模組, 使用/serverspeeder/etc/config 檔案中的配置作為銳速的初始化參數; 停止銳速:/serverspeeder/bin/serverSpeeder.sh stop卸載加速模組;卸載前請確認沒有其它進程在訪問/proc/net/appex/目錄,例如確認控制台目前的目錄是否是/proc/net/appex/; 即時修改銳速參數: /serverspeeder/bin/serverSpeeder.sh reload修改/serverspeeder/etc/config 檔案中的配置後運行此命令,此時模組不退出,參數被即時修改; 如何卸載銳速?在確保銳速沒有啟動並執行情況下,您可以通過兩種方式來卸載銳速:1. 使用安裝指令碼的卸載功能卸載銳速,如:./serverSpeederInstaller.sh uninstall2. 通過簡單的刪除操作,如’rm -rf /serverspeeder/’,即可將銳速完全卸載;通過修改/appex/etc/config 檔案,可以為 LotServer 設定不同的配置參數;常用參數的說明如下:1) accif=”eth*”加速介面;eth*一般為伺服器上對外提供服務的網路介面,例如 eth0, eth1„,一般通過 ifconfig 命令可以看到;可以同時設定多個介面作為加速介面(介面之間用空格分開),如 accif=”eth0 eth1″;預設為”eth0″;2)acc=”1″TCP 加速開關;設為 1 表示開啟 LotServer 的 TCP 加速功能,設為 0 表示關閉LotServer 的 TCP 加速功能;預設為 1;3)advacc=”1″進階加速開關;設為 1 表示開啟,設為 0 表示關閉;開啟此功能可以得到更好的加速效果,但有可能會造成有效資料率下降;預設為 1;4)advinacc=”0″進階入向加速開關;設為 1 表示開啟,設為 0 表示關閉;開啟此功能可以得到更好的流入方向流量加速效果;5)wankbps=”1000000″加速介面上行頻寬;指的是從伺服器流出到 Internet 的最大頻寬,單位為 Kbps,例如伺服器所串連的 Internet 頻寬為 1G,則設定為 1000000;預設為 1000000;6)waninkbps=”1000000″加速介面下行頻寬;指的是從 Internet 流入伺服器的最大頻寬,單位為 Kbps,例如伺服器所串連的 Internet 頻寬為 1G,則設定為 1000000;預設為 1000000;wankbps 和 waninkbps 的設定一般與實際頻寬相同為最理想;如果無法確定實際頻寬,一般設定為網卡的最大吞吐能力即可;例如網卡為千兆全雙工系統網卡,則 wankbps和 waninkbps 都設定為 1000000;當設定過小時,例如實際頻寬有 100Mbps,但 wankbps 和 waninkbps 設定為10Mbps,則資料流量會被限制在 10Mbps 以內,此時會降低伺服器的吞吐;7)csvmode=”0″ highcsv=”0″csvmode 擁塞控制模式開關;設為 1 表示開啟,設為 0 表示關閉;開啟 tcp 加速後,在某些丟包較大的網路中可能會造成有效資料率下降的問題;此時開啟擁塞控- 6 -制模式,可以有效避免該問題;但開啟此選項時,可能加速效果也會下降;預設為 0;csvmode=”1″ highcsv=”0″時,為普通擁塞控制模式,對擁塞具有一定控制的同時對加速效果的影響較小;csvmode=”1″ highcsv=”1″時,為進階擁塞控制模式,可以更好的控制擁塞但是相比於普通擁塞控制模式對加速效果的影響較大。8)subnetAcc=”0″區域網路加速開關;設為 1 表示開啟;設為 0 表示關閉;不開啟時對於同一區域網路內的串連不會加速;開啟後對同一網段的 TCP 串連也進行加速;9)maxmode=”0″最大傳輸模式;設為 1 表示開啟;設為 0 表示關閉;開啟後會進一步提高加速效果,但是可能會降低有效資料率;10)maxTxEffectiveMS=”0”最大傳輸模式生效時間;用於控制最大傳輸模式對每一個串連的生效時間;設為0 表示從串連建立到串連結束,都採用最大傳輸模式傳輸;單位為 ms,1000 即 1s;11)pcapEnable=“0”抓包開關;設為 1 表示開啟,設為 0 表示關閉;開啟此功能後會抓取經過加速引擎處理的資料包,在/appex/log 目錄下產生抓包檔案;12)bypassOverFlows=”1″流量 bypass 開關;設為 1 表示開啟,設為 0 表示關閉;開啟此功能後當伺服器的串連數超過引擎設定後會對超過的串連的流量 bypass,否則會無法建立串連;13)initialCwndWan=”44″初始 TCP 發送視窗能夠發送的資料包的數量;該值設定的高會獲得更好的加速效果,但是可能會造成網路的擁塞;14)l2wQLimit=”256 2048″從 LAN 到 WAN 加速引擎在緩衝池充滿和空閑時分別能夠緩衝的資料包隊列的長度的上限;該值設定的高會獲得更好的加速效果,但是會消耗更多的記憶體;15)w2lQLimit=”256 2048″從 WAN 到 LAN 加速引擎在緩衝池充滿和空閑時分別能夠緩衝的資料包隊列的長度的上限;該值設定的高會獲得更好的加速效果,但是會消耗更多的記憶體;16)shrinkPacket=”0″slab 緩衝縮減開關;設為 1 表示開啟,設為 0 表示關閉;當伺服器記憶體消耗很高時可以將該值設定為 1,這樣會降低記憶體的消耗;- 7 -17)retranWaitListMS=”32重傳等待時間;當伺服器沒有收到 ack 或者丟包產生之後用戶端重複 ack 時間達到 32ms,伺服器重傳資料;預設為 32ms;18)halfCwndMinSRtt=”500″halfCwndLossRateShift=”3″以上兩個值用於判斷網路擁塞,分別為延時和丟包率,丟包率預設值為 3,即1/2^3,當擁塞產生時,退出第三代 Learning-based TCP 演算法,採用類似傳統 TCP 的演算法。19)#byte cachebyteCache=”0″httpComp=”1″byteCacheMemory=”250″ #MBbyteCacheDisk=”0″ #MBdiskDev=”/dev/sda2″以上為雙邊緩衝的設定,當前只有部分版本支援該功能。分別是緩衝開關,資料壓縮開關,記憶體大小,硬碟大小,指定硬碟位置;20)shaperEnable=”1″流量整形開關,配合上行和下行頻寬設定開啟;設為 1 表示開啟,設為 0 表示關閉;開啟此功能,會採用 wankbps 以及 waninkbps 設定的頻寬大小運行;關閉此功能,會根據即時傳輸自動測算頻寬大小;21)tcpOnly=”1″設為 1 表示開啟,設為 0 表示關閉;開啟此功能,即只處理 TCP 流量;關閉此功能,也處理除 TCP 以外的流量(不會對非 TCP 流量加速),一般用於配置策略對非 TCP 資料丟棄時;22)SmBurstMS=”15″引擎允許的最大突發時間,設為 0,則關閉;該值越大,資料包發送量越大;當前推薦預設為 15;23)rsc=”0″網卡接收端合并開關;設為 1 表示開啟,設為 0 表示關閉;在有些較新的網卡驅動中,帶有 RSC 演算法的,需要開啟該功能;24)gso=”0″GSO 開關;設為 1 表示開啟,設為 0 表示關閉;當網卡需要開啟 gso 功能時,開啟此功能,LotServer變為支援gso的模式;關閉此功能,如果網卡開啟gso,LotServer- 8 -會關閉網卡的 gso 功能;25)lanSegment=””當 LotServer 不是 TCP 串連的最終節點並且採用單臂模式部署時,如果 LotServer和伺服器之間網路環境很好,不需要加速,將此參數的值設為 Lan 一側的子網網段(參數的值為子網網段的十六進位表示加子網路遮罩,例:ip 為 172.33.0.0/16,lanSegment=”AC210000/16″),則 LotServer 和伺服器之間不進行加速,可以節省LotServer 使用的資源並獲得更好的加速效果。如果不設定此參數,則 LotServer 會對所有經過的 TCP 串連進行加速。(註:如果參數轉換為十六進位後,第一位元字為 0時,需要省略,不然無法正常寫入配置。例如:參數十六進位值為:0C210000/16,那麼 lanSegment=”C210000/16″。)26)configTimeout=”30″設定開啟 LotServer 時,寫入配置所需要的時間。當引擎的數目很多時需要寫入配置的時間較長,預設為 30s。27)engineNum=”0″LotServer 啟動的加速引擎的的個數;在多處理器(核)的系統內容下,啟用多個加速引擎可以使網路流量的負載在多個處理器(核)之間做均衡分配,從而協助最佳化系統CPU 資源的利用;啟用多個加速引擎時,引擎序號從 0 開始,分別為 engine0, engine1,engine2,等等;每個引擎的負載對應交給相同序號的處理器來處理,即,engine0 使用 cpu0, engine1 使用 cpu1 等;engineNum 預設為 0,表示啟用的加速引擎個數與系統的處理器個數相同,64bit 架構下,當實際的 engineNum 參數大於 4 時,檢查記憶體:當總記憶體減去 engine 佔用記憶體剩餘數小於 2G 時,提示使用者一個 warning:LotServer Warning: $CPUNUM engines will be launched according to the config file.Your system’s total RAM is $memTotal(KB), which might be insufficient to run all theengines without performance penalty under extreme network conditions. ;28)shortRttMS=”10″白名單開關;開啟後 LotServer 將不對 RTT 小於 shortRttMS 的串連加速,節約系統資源,提高效能;設定為 0 時表示關閉此功能,LotServer 會加速所有的串連;設定為其他值時,例如 10,則表示當第一次建立串連時,Lotserver 會測量所有的建立串連的 RTT,但是不對其進行加速;如果 RTT 大於 10ms,LotServer 會從第二次建立串連開始對其加速,如果 RTT 小於 10ms,LotServer 則一直不會對其加速。預設值 10ms。- 9 -重啟 LotServer 後,原來記錄的每個串連的 RTT 會被清除,重新開始記錄。LotServer 使用五元組判斷是否為同一串連,五元組包括:源 ip,目的 ip,源連接埠,目的連接埠和協議。29)apxexe=” /appex/bin/acce-***”LotServer 模組檔案的路徑;30)apxlic=”/appex/etc/apx-***.lic”LotServer 授權檔案的路徑; Shadowsocks最佳化加速