首頁>技術>

目錄一. speedtest 簡介.二. 安裝到 Windows. 難度 ★★三. 安裝到 Linux. 難度 ★★★★★四. 安裝到 群暉 DSM. 難度 ★五. 使用 Docker 映象部署. 難度 ★★★六. 總結

一. speedtest 簡介.

1. 作者簡介.

喝井不忘挖水人, speedtest 的作者不是排骨, 是下面這位.

speedtest 是由義大利的一位90後愛打遊戲愛跳舞機的逗B碼農 Federico Dossena (見下圖) 釋出的一個開源專案 (https://github.com/adolfintel/speedtest).

2. 原理簡介

speedtest 以 HTML 和 JavaScript 為主, 利用客戶端的瀏覽器通過上傳和下載垃圾資料來測試 HTTP 傳輸速度, 和大家常用的 speedtest.net 差不多.

speedtest 使用任意作業系統上的任意 Web 伺服器作為服務端, 所以理論上它支援 Windows/MacOS/Linux/Unix 等系統, IIS/Nginx/Apache/lighttpd 等伺服器.

任意瀏覽器作為客戶端如 Chrome/Firefox/IE11/Edge/Safari/Opera?

speedtest 預設使用 PHP 作為服務端, 目前也有 node.js 版本, 也可以只用純靜態伺服器.

本文所說的 speedtest 與 Ookla 公司的 speedtest.net 及相關測速 app 沒有任何關係, 沒何關, 沒關, 沒.

**二. 安裝到 Windows. 難度 **★★

在 Windows 上安裝 speedtest 應該是絕大多數普通使用者, 為了照顧沒有相關經驗的使用者, 這裡排骨寫的步驟較多較細, 但是已經最大化的精簡了.

本文以 Windows 10 為例, Windows 7 也適用, 不過某些地方有不同, 排骨會註明.

1. 安裝 IIS 伺服器.

使用 Win+R 開啟執行視窗, 輸入 **OptionalFeatures **開啟 Windows 功能.

必須選擇 IIS 管理控制檯/靜態內容/預設文件/CGI 4個選項. 預設文件不是必需的.

2. 下載並安裝 PHP Manager for IIS.

PHP Manager for IIS 是微軟官方推薦的一個 IIS 外掛, 可以最大化的簡化 IIS 上配置 PHP 的過程. 如果不用這個外掛, 在 Windows 上配置 PHP 會比 Linux 上更麻煩.

下載地址: https://www.iis.net/downloads/community

Win7 系統安裝** PHPManagerForIIS-1.2.0**

Win10 系統安裝 PHPManagerForIIS_V1.5.0, 這裡排骨以 Win10 為例.

如果出現 SmartScreen 提示, 請按上面的圖繼續.

安裝過程就是一路 Next.

3. 下載 PHP 包並解壓

x64版下載: https://windows.php.net/downloads/releases/php-7.2.6-nts-Win32-VC15-x64.zip

x86版下載: https://windows.php.net/downloads/releases/php-7.2.6-nts-Win32-VC15-x86.zip

將下載好的 zip 包解壓到任意路徑, 如 F:\\php

4. 為 IIS 配置 PHP.

使用 inetmgr 命令掃開 IIS 管理器.

開啟 PHP Manager.

通過 “Register new PHP version” 設定 PHP 引用路徑.

上一次我們把 PHP 的檔案解壓到了 F:\\php.

使用 Check phpinfo() 測試 PHP 配置是否成功.

如果看到這個紫色頁面, 就說明 PHP 配置成功了.

5. 下載 speedtest 包並解壓.

speedtest 包下載: https://github.com/adolfintel/speedtest/archive/4.5.5.zip

解壓到 C:\\inetpub\\wwwroot, 熟悉 IIS 配置的使用者可以解壓到其它地方.

注意所有檔案都在壓縮包裡的子目錄中!

6. 測試 speedtest.

用瀏覽器 (推薦 Chrome) 訪問 http://localhost/example-pretty.html. 如果出現下圖這樣的測試結果則表達 speedtest 執行成功.

7. 防火牆開啟入站 80 埠.

這一步是可選的. 如果內網的其它電腦或手機無法訪問這臺 Windows 上的 speedtest, 可能是被 Windows 防火牆擋了.

將 Windows 入站埠 80 開啟後, 內網的其它裝置才能訪問剛剛安裝好的 speedtest.

以管理員身份執行 cmd 開啟命令列視窗. 使用下面的命令列給防火牆開啟 80 埠.

netsh advfirewall firewall add rule name=“speedtest” dir=in action=allow protocol=TCP localport=80

Win7命令為

netsh firewall add portopening TCP 80 “speedtest”

最後用手機或其它電腦訪問 http://192.168.1.91/example-pretty.html 開始測速吧 (假設安裝 speedtest 的電腦 IP 為 192.168.1.91).

**三. 安裝到 Linux. 難度 **★★★★★

一般使用者家中沒有 Linux 電腦, 不過排骨考慮到使用 OMV 等系統作 NAS 的使用者和自購有 VPS 的使用者, 順便也寫一下 Linux 上安裝 speedtest的步驟. 用 Linux 系統的使用者基礎都不會太菜吧?

下面 ubuntu 18.04 為例, 其它 Linux 版本的使用者請自行調整.

1. 安裝 nginx 和 php-fpm

sudo apt install nginx php-fpm

2. 修改 nginx 站點配置

sudo nano /etc/nginx/sites-available/default

以下面為修改配置檔案內容, 注意 /var/run/php/php7.2-fpm.sock 的路徑是不是正確.

server { listen 80 default_server; root /var/www/html; index index.html; server_name _; location / { try_files $uri KaTeX parse error: Expected 'EOF', got '}' at position 19: …/ =404; }̲ locatio… { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; }}

重啟 nginx.

sudo service nginx restart

3. 下載 speedtest 並解壓

speedtest 包下載: https://github.com/adolfintel/speedtest/archive/4.5.5.zip

sudo wget https://github.com/adolfintel/speedtest/archive/4.5.5.zip

解壓到 /var/www/html.

sudo unzip 4.5.5.zip -d /var/www/html/sudo mv /var/www/html/speedtest-4.5.5/* /var/www/html/

4. 防火牆開啟入站 80 埠

這步也是可選的.

sudo ufw allow 80

安裝配置完成. 開始測速吧!

**四. 安裝到 群暉 DSM. 難度 **★★

在群暉系統上安裝 speedtest 是個非常好的選擇, 也是最簡單的方案. 與 Linux 上安裝 speedtest 類似, 群暉的管理系統本身就是基於 Linux 和 nginx 的.

1. 下載 speedtest 並上傳到群暉.

speedtest 包下載: https://github.com/adolfintel/speedtest/archive/4.5.5.zip

將 speedtest 包中的檔案上傳到群暉共享資料夾的某個目錄, 如下圖

2. 安裝 Web Station 和 PHP 7.0.

從群暉套件中心可以找到, PHP 7.0 可能在安裝 Photo Station 時一併安裝好了.

3. 設定 PHP 和 虛擬主機.

開啟 Web Station 套件, 選擇 PHP 設定, 編輯預設PHP配件檔案. 勾選 openssl.

選擇 虛擬主機, 點選 新增, 然後按下圖配置虛擬主機. 其中 埠 和 文件根目錄 按實際情況設定.

安裝配置完成. 開始測速吧!

**五. 使用 Docker 映象部署. 難度 **★★★

用 Docker 部署 speedtest 是最簡易快速的方法, 但是對使用者來說起點也是最高的.

排骨專門給 speedtest 製作了 Docker 映象 (6MB), 比原作者的映象 (158MB) 小很多很多很多.

1. 下載 speedtest 映象.

docker pull cuteribs/speedtest

2. 建立 speedtest 容器.

docker run -d --name speedtest -p 80:80 cuteribs/speedtest

安裝配置完成. 開始測速吧! 2行命令就搞定了, 是不是簡單得要死而絕大多數人又不會?

六. 總結

按上面任一方法搭建好 speedtest 伺服器後, 就可以愉快的測速了.

不論是測內網還是外網

不論是測 路由器, AP, 網絡卡還是VPS

只要開啟瀏覽器, 輸入 speedtest 地址就行了.

speedtest 測速的優點:

測試簡單暴力. 瀏覽器就能測, 無需別裝 app.介面簡潔明了. 直觀且無廣告不收費.上行下行兼顧. 不用雙向測試, 不像 iperf3 只能單向.

speedtest 測速的缺點:

使用者技能要求. 需要自己安裝測速伺服器, 希望本貼能解決這個問題.測速協議片面. 基於 HTTP 協議測速, 有些片面. 不過95%的使用者有90%的網路使用都是 HTTP. (純瞎說的 哈~)效能瓶頸要求. 因為基於 Web 伺服器和 JavaScript, 所以伺服器和客戶端效能不能太差. 測試 2.5/5/10 千兆可能力不從心.

1004

PHP

Windows

最新評論
  • 1 #

    有做成虛擬機器的映象嗎?

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • springboot-vue前後端分離 部落格實戰首頁完成