各位大大好
我並非相關科系也沒相關知識背景 是資訊新手 所以如果有名詞錯誤或觀念錯誤請多包涵
最近在設定網路時 碰到一些問題 查了google後產生更多問題 (T_T)
我目前有一個疑問是關於router設定頁面裡的internal port(virtual server setting)
我主要的問題是internal port是用來做甚麼
家裡面的網路架構是
Internet -> D-Link -> TP-Link -> 筆電
根據我Google查詢的結果我的觀念是
當外界傳送封包至 D-Link 時其目的網址假設為 12.34.56.78:1234 此時會
根據D-Link會根據port 1234對應哪個私有IP進行下一級網路傳送 我們假設此
外部port對應的私有IP為192.168.1.102 則此封包會被轉譯成 192.168.1.102:1234
封包到達TP-Link時 此封包再度轉譯成192.168.0.103:1234 封包再度傳送至筆電給接收
筆電OS再根據port:1234給相對應的應用程式封包裡真正的內容
以上是我Google查到的 不知道觀念上有沒有錯?
此時我完全沒有碰到internal port的設定 甚至再TP-Link裡 這個欄位的提式還可以
leave it blank 這讓我百思不得其解 是代表這個欄位可有可無嗎?
可是這時我做了一個實驗設定如下:
(1) D-Link
internal_ip:192.168.1.102 internal_port:5000 external_port:5000-65535
() TP-Link
internal_ip:192.168.0.103 internal_port:5000 service_port:5000
首先先確保 我筆電可以連接至yahoo/google (確認OK)
之後
在WINDOWS筆電裡做一個server bind在192.168.0.103:5000
利用手機做無線分享至另一台MAC筆電 同時MAC筆電有client連至12.34.56.78:5000
(P.S. 手機IP是4G的 沒有吃WIFI)
WINDOWS筆電可以收到來自MAC封包 (確認OK)
之後
把server bind在另一個port 4999而TP-Link不變
或者server bind不變而TP-Link的internal port設為4999
此兩種case 都不會連線
所以猜測 internal port 是跟 bind的 port有關
總結問題:
收外部封包時 如果要做port forwarding
感覺只要設定好分享器的service port(external port) 跟internal ip就好
可是
更改TP-Link的internal port又會影響筆電連線
我有點搞不懂 internal port的功用
(1) NAT轉譯時 當接受外部封包時 internal port影響到destination port嗎?
我覺得是不行 因為亂改目的地的port 比如說明明連線port 21/22要抓FTP
可是分享器卻改header 這樣就不行 可是根據上面實驗
TP-Link又需要跟server端的port一致
白話一點就是 舉例來說
D-Link: external port: 5000-65535
internal ip: 192.168.1.102
internal port: 5000
TP-Link: service port: 5001
internal ip: 192.168.0.103
internal port: 4999
Server: bind (192.168.0.103, 4999)
client: send (12.34.56.78:5001)
這樣是可以連線 可以推論出 D-Link internal port不影響header
可是當我把server bind 5001 時不能連線 這讓我又覺得好像 internal port
又會影響連線 看D-Link的預設 都會把internal port跟external port設為一樣
上網查internal port又好少資料 一大堆port forwarding但是 又說要設一樣
也沒說為什麼要一樣
所以到底internal port的功用與影響是甚麼?
謝謝各位大大的解答