這個影片是我找到最有趣的比喻,截圖和大家說明。
Port說明影片推薦
以日常生活來說,我們打到大一點的公司,電話撥通後、都會再輸入分機號碼轉接給我們想要找的人。
而這個「公司電話」的用意,在我們電話打通任務就告一個段落了,接下來就是「分機」登場的時候,我們輸入分機就能找到對應的人。
在網路世界中,「網址(主機位置)」就像是「公司電話」、「Port」則對應到「分機」。
以我後面的舉例來說,當我們連線到網址後,頁面要顯示什麼就跟我們撥打到哪個分機相同,如果該分機確實存在,就能看到對應的頁面。
平常瀏覽器看網頁預設是80port,就像是我們沒有輸入任何分機,最後預設由某位同事接聽。
不同的port有各自的服務項目,常見的有:
SSH:22port
HTTP:80port
HTTPS:443port
對於Port的基本想像,就把它當成網路世界裡,各服務預設對應的分機號碼就比較好懂了。
舉個例子
http://139.162.46.7
http://139.162.46.7:80
一樣是我搭配文章說明的測試站,這兩個都會連到同個頁面,說明預設的是80port,不打出來也可以呦。(測試站連結無續購,故已失效,看文章理解概念即可)
http://139.162.46.7:5566
接著是另外寫的範例,說明輸入同個網址後面接5566port,會開啟不同的分頁;就像是同個公司電話轉給不同的分機接聽。
平常我們輸入的網址,其實背後都是指向某個數字IP,對相關知識有興趣的朋友可以參考前篇筆記:HTTPS、A紀錄與CNAME。
但因為我這邊有做特別的設定,直接用 http://lunar.im/ 後面接5566port會失效。所以上面直接以主機IP做示範,效果是相同的。
實作步驟
實作需要有一台自己的Server,會操作Linux指令、以及Vim編輯器進得去要會出來。
除非需要自己設定,不然以上小知識就蠻夠用囉!
以下僅概要紀錄過程,設定重點有提到但圖是後補的請以文字指令順序為主。
port-demo.conf
進到sites-available,複製000-default.conf為port-demo.conf,作為本次範例的設定檔。
a2ensite
a2ensite port-demo.conf
systemctl reload apache2
啟用剛剛的設定檔,a2ensite意思是apache2 enable site,讓他從sites-available進到sites-enabled。
以遊戲來舉例。
sites-available:你的裝備倉庫,看得到但對戰鬥沒幫助。
sites-enabled:穿在身上的裝備(裝備中)(E)。
重新啟動Apache讓它生效。
VirtualHost & DocumentRoot
vim進去port-demo.conf,把第一行的Port改成5566,意思是撥打到這個分機會吃這個設定檔;下面的DocumentRoot是指去哪個資料夾下找index.html。
index.html
在/var/www下面建立port-demo資料夾,新增index.html;之後連到5566port,就是從這個資料夾顯示這份index.html。
因為完成後顏文字變亂碼所以就拿掉惹Q_Q
這個步驟就是透過Linux指令在/var/www/port-demo下新增index.html;上面是另外開FTP的截圖,方便不熟悉終端機的朋友們瞭解。
ports.conf
到etc/apache2底下的ports.conf設定。
Listen 5566,監聽這個Port,伺服器對這個分機才有反應。
ufw防火牆
ufw allow 5566,讓防火牆放行這個port,才連的進來。
如果不開的話,就像公司明明有這個人,但是對方就是不讓你轉過去。
重啟Apache
service apache2 graceful
重新啟動就完成囉。
備註
用Cloudflare掛CDN的話,要把右下角那朵雲關掉,單純DNS才可以用不同port連接;但是子域名則沒有影響。
http://lunar.im:5566
掛CDN會連不到,一直轉圈。