[Synology] 利用反向代理伺器突破公司對埠5000/5001的封鎖

所謂反向代理伺服器 (Reverse Proxy Server) 就是反向動作的 proxy server,proxy server 的工作是去各個 web server 抓取資料回來放在伺服器供用戶讀取、下載,而反向代理伺服器做的事則相反,負責將用戶端的資料傳給藏在反向代理伺服器後的 web server,用戶端透過反向代理伺服器傳送與接收資料。

Synology DSM 預設使用 port 5000 (http) 與 5001 (https), 如果在公司想連回家中 NAS ,在 port 5000/5001 沒被封鎖的情況下,可以直接在網址要輸入 http://your_domain:5000。

可是 port 5000/5001 被公司防火牆封鎖怎麼辨?

一般來說大約有四個方法:

  1. 使用 Synology QuickConnect – 最簡單,NAS 內直接設定即可,不過因為資料傳輸要透過 Synology Server 所以速度比較慢。
  2. 使用 VPN – 可以想像成在公司與家中建立一條隧道連接雙方,將公司電腦當成家中區網的一部份。優點:安全性高。缺點:要先連線 VPN server 才能連回家中 NAS,有些 VPN 協定還需要在 client 安裝軟體才行。
  3. 使用遠端桌面搖控軟體 – 像 TemViewer、AnyDesk 之類的遠端桌面搖控軟體都號稱突破防火牆封鎖,也很方便,就是用起來感覺頓頓的,而且家中需要一台電腦開著機才行。
  4. 使用反向代理伺服器 – 設好之後可以讓我們使用標準的 http 或 https 連回家中 NAS,網址不再需要加 port 號。

這裏說明只說明如何設定反向代理伺器,在設定之前必需先到你的 DNS 服務供應商設定你要使用的 domain 指向家中 NAS,例如 nas.domain.com 。

Synology DSM6 內建了反向代理伺服器的功能,在 控制台 > 應用程式入口 > 反向代理伺服器 > 新增 直接設定即可:

例如,使用 http://nas.domain.com 連回家中可以這樣設:

 

要使用 https://nas.domain.com 連回家中可以這樣設:

已知問題 (DSM 6.2):

  1. 使用反向代理登入 DSM 在 Docker (v17.05.0-0395) 中查看容器->詳細資料->終端機 會出現 “Socket 已關閉。” 錯誤訊息且終端機無法正常顯示,改用正常方法連線即可。

2. 使用反向代理登入 DSM,Virtual Machine Manager 連線到虛擬機器會出現 “無法連線到伺服器”錯誤訊息。

經詢問 Synology 後回覆問題修正方法如下,已確認有效:

親愛的使用者 您好, 

謝謝您的來信。

我們檢查來看是因為目前 reverse proxy 還不支援 web socket,

您可以自行增加參數來讓系統可以導入。

方法如下:

1. 使用 ssh 終端機登入道系統底層。

2. 使用 root 身份登入。

3. 修改檔案 /usr/syno/share/nginx/Portal.mustache

增加以下參數:

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

保存後再執行:synoservicecfg --restart nginx

這樣應該就可以正常運作。

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *