後半場暫停時間 - 撥接寛頻埠轉發
接下來要做的,會更順遂了嗎?NO!因為我們是用撥接的寬頻,因為我們有使用 Virtualbox,所以還有兩大關卡要克服:第一關卡,筆者將以自身為例,分別設定中華電信撥接寛頻機及華碩 IP 分享器。(撥接寬頻 –> IP 分享器 –> 我的電腦)
寬頻機與 IP 分享機,同樣都是在處理路由而需做設定。簡單講,這二者,都可接出不止一條網路線或無線網路給不止一台好幾台終端電腦。我們於此簡稱這二者是“多工機”好了。試想,我們開啟一個網頁,須傳送網址及內容請求,經由多工機替我們發送要求出去到達世界的彼端,彼端回傳所要求的內容,多工機收到,並從該內容,識別出來,要回傳給哪一台終端電腦;別忘了,同時間很多台終端電腦都在要求不同地方的不同內容。因此,這樣“誰請求某地的內容”,與“某地回應的內容給誰”完美地由多工機來運作。
(或問:若我家只有我一台電腦呢?答:唯一存在“多台電腦?”這問題,並不存在所謂的“只有一台?”這種問題)
這樣,還會有什麼問題?有的。現在角色互換,我們變成是那世界的彼端(即,我們是網站了 https://waterfalls.ddns.net),他端的使用者透過此網址,要求內容,來到了我們的電腦,不,不對,是來到了多工機,多工機怎麼知道內容請求,是要傳給我的電腦呢?(別忘了,我們只買得起中華電信的一支 ip address,這支 ip address 同時,也一直,代表著多台本地終端電腦)
因此,解決的辦法是,告訴多工機,“若是這樣的內容請求,便傳給我”。怎麼樣的內容請求呢?(我們接下來必須要做的,就是這樣的設定)
HTTP request,慣例是使用 TCP/IP 80 port。而若不依循慣例 port,也是可以,但就要明白指定了。
所以,例如,我要開啟網頁 http://www.yahoo.com.tw/ 它便是對 hostname www.yahoo.com.tw 做了 http 的請求,且所使用的通道是 80 埠。
若另一家網站 abc.com 有提供 http 內容在 8090 port,則我們欲存取便需明白下達 http://abc.com:8090/
至於 HTTPS,則是固定使用 443 port。要 https,就只能使用 443 port。
因此,只要告訴多工機,將所有來自 80,443 port 的任何內容(i.e., 不侷限 http 協定)都轉發到某台電腦,由它來處理。這關卡就通了。事實上,多工機內部,可能就已有這樣的分配轉發功能。不過我們單純點,不需再研究多工機,直接搞即所謂的 port forwarding 就好。
此外,這也點出了,在多工器的背後,就只能有一台 http(https) 網站。是的。只能向唯一的一台電腦要求 http(s) 內容。
以上,便是後面文章,須做的事。
但,案情沒那麼單純:因為,http(s) request,其資訊內部,會包含 hostname,。。。單純就這個小小的舉動,讓“只能一台電腦當網站”的約束出現曯光。
或許您已聽過反向代理伺服器(reverse proxy),只要本地端那台接收 http(s) requests 的電腦,依據包裝在 http(s) 內的不同的 hostname,再轉發對映給本地端的不同電腦(或同一台電腦不同路徑目錄),那麼,您要架幾個網站隨便您。
筆者在前文說,申請了 waterfalls.ddns.net 及 wearbiz 別名,都會連到我這台電腦,再由 reverse proxy (nginx web server,caddy web server 都有此功能),便可導向到不同目的地內容。
以上,應都說明到了。接著,Virtualbox(虛擬機器,簡稱 VM)。
關於打通 Virtualbox 這個關卡,筆者也是搞得頭昏腦脹的,耗費相當多的時間在嘗試。
- Virtualbox 的網路模擬與路由一般使用 NAT。只要設定它的 port forwarding 即可。
- 不解的是使用 reverse proxy 與 routing,即都是指,Caddyfile 的設定。以下我們分出數種情境關卡,後面文章一一打通。其都關聯到最重要的,HTTPS 通道要能成功。
- 一。使用本機實體目錄。即最單純的就是在本機架站。TLS 本機認證
- 二。本機安裝並使用了 TLS 認證,但只充當 reverse proxy。VM 架站但不使用 TLS 認證
- 三。本機並無安裝 TLS 認證,僅使用 VM 架站,及用它做 TLS 認證
- 四。本機充當 reverse proxy,但不使用 TLS。VM 架站且使用了 TLS 認證
以上是最後關卡,過了就是康莊大道了。
以下簡捷介紹撥接寬頻機與 IP 分享器的 port forwarding 設定:
以筆者目前的網路連接來說,(電話線接到)中華撥接寬頻機,就直接透過網路線連接伺服器了(不再是舊筆電,筆者後來買來了一台陽春電腦主機,目的是為了節電,請見本站簡介)。並接了另一台 IP 分享器,IP 分享器再透過網路線連接到了筆者的舊筆電即筆者目前的工作機。因此如前文章所示例,若要外網連到筆者的工作機中的 VM,那麼就要開啟撥接寬頻機/IP分享器/工作機/VM 等四個地方的 port forwarding。
撥接寬頻機/IP分享器的 port forwarding 設定的地方,請自行不難查找與理解設定。以下筆者貼出自己的設定。簡單講,須指明哪個 port 給區網中的哪個 IP(哪台電腦)使用。
發佈留言