在Ubuntu 16.04.3 LTS上玩轉QUIC開源專案proto-quic
阿新 • • 發佈:2019-01-11
說明
proto-quic專案是民間從chromium中抽取出的QUIC實現相關的程式碼。採用這個專案的程式碼,比從chromium原始碼編譯,要更快速和簡單。因為畢竟GFW限制,不是所有的人都可以翻牆去下載近10G的chromium專案原始碼。
下面的實操過程完全遵照github上的該專案的提示進行
https://github.com/google/proto-quic
下載原始碼庫
git clone https://github.com/google/proto-quic.git
cd proto-quic
export PROTO_QUIC_ROOT=`pwd`/src
export PATH=$PATH:`pwd`/depot_tools
./proto_quic_tools/sync.sh
sudo ./src/build/install-build-deps.sh
執行錯誤,但是似乎對結果執行沒有影響。
編譯生成QUIC的client,server和tests
cd src
gn gen out/Default
ninja -C out/Default quic_client quic_server net_unittests
vim proto-quic/src/out/Default/build.ninja
修改
ninja_required_version = 1.7.2
將1.7.2修改為1.6.0,然後重新執行,大約編譯完成需要半小時以上
ninja -C out/Default quic_client quic_server net_unittests
準備測試資料
以www.example.org為例,重用上一次的測試資料,參見
http://blog.csdn.net/tao_627/article/details/79422273
mkdir -p ~/program_develop/quic_dev/quic-data
cd ~/program_develop/quic_dev/quic-data
wget -p --save-headers https://www.example.org
cd www.example.org
vim index.html
在header里加上X-Original-Url: https://www.example.org/
行末的^M使用Ctrl+V,Ctrl+M實現
生成證書
cd net/tools/quic/certs
./generate-certs.sh
cd -
將證書新增到瀏覽器中,在位址列中輸入
chrome://settings/search#ssl
下面開始測試
開啟QUIC server
./out/Default/quic_server \
--quic_response_cache_dir=/home/taoyx/program_develop/quic_dev/quic-data/www.example.org \
--certificate_file=net/tools/quic/certs/out/leaf_cert.pem \
--key_file=net/tools/quic/certs/out/leaf_cert.pkcs8 \
--port=6121 \
--v=1
然後是QUIC Client
./out/Default/quic_client --host=127.0.0.1 --port=6121 https://www.example.org/
參考文獻
[1].https://github.com/google/proto-quic
[2].https://www.chromium.org/quic/playing-with-quic
proto-quic專案是民間從chromium中抽取出的QUIC實現相關的程式碼。採用這個專案的程式碼,比從chromium原始碼編譯,要更快速和簡單。因為畢竟GFW限制,不是所有的人都可以翻牆去下載近10G的chromium專案原始碼。
下面的實操過程完全遵照github上的該專案的提示進行
https://github.com/google/proto-quic
另外參照chromium專案的官網頁面
下載原始碼庫
git clone https://github.com/google/proto-quic.git
cd proto-quic
export PROTO_QUIC_ROOT=`pwd`/src
export PATH=$PATH:`pwd`/depot_tools
./proto_quic_tools/sync.sh
sudo ./src/build/install-build-deps.sh
執行錯誤,但是似乎對結果執行沒有影響。
編譯生成QUIC的client,server和tests
cd src
gn gen out/Default
ninja -C out/Default quic_client quic_server net_unittests
測試中遇到如下問題:
vim proto-quic/src/out/Default/build.ninja
修改
ninja_required_version = 1.7.2
將1.7.2修改為1.6.0,然後重新執行,大約編譯完成需要半小時以上
ninja -C out/Default quic_client quic_server net_unittests
準備測試資料
以www.example.org為例,重用上一次的測試資料,參見
http://blog.csdn.net/tao_627/article/details/79422273
mkdir -p ~/program_develop/quic_dev/quic-data
cd ~/program_develop/quic_dev/quic-data
wget -p --save-headers https://www.example.org
cd www.example.org
vim index.html
在header里加上X-Original-Url: https://www.example.org/
行末的^M使用Ctrl+V,Ctrl+M實現
生成證書
cd net/tools/quic/certs
./generate-certs.sh
cd -
將證書新增到瀏覽器中,在位址列中輸入
chrome://settings/search#ssl
選擇,高階(開啟摺疊)=>管理中心=>授權中心,點選匯入,將~/program_develop/proto-quic/src/net/tools/quic/certs/out/2048-sha256-root.pem匯入,最後勾選第一項,確定即可
下面開始測試
開啟QUIC server
./out/Default/quic_server \
--quic_response_cache_dir=/home/taoyx/program_develop/quic_dev/quic-data/www.example.org \
--certificate_file=net/tools/quic/certs/out/leaf_cert.pem \
--key_file=net/tools/quic/certs/out/leaf_cert.pkcs8 \
--port=6121 \
--v=1
然後是QUIC Client
./out/Default/quic_client --host=127.0.0.1 --port=6121 https://www.example.org/
參考文獻
[1].https://github.com/google/proto-quic
[2].https://www.chromium.org/quic/playing-with-quic