[问答] router里的internal port作用

楼主: LeJ23 (James)   2019-05-12 19:29:52
各位大大好
我并非相关科系也没相关知识背景 是资讯新手 所以如果有名词错误或观念错误请多包涵
最近在设定网络时 碰到一些问题 查了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的功用与影响是什么?
谢谢各位大大的解答
作者: guardlan (亚修)   2019-05-13 22:08:00
没规定port要一样呀,你可以外部80对应内部的8080
作者: deadwood (T_T)   2019-05-14 10:16:00
先加强资讯背景相关知识如何?你把server listen port和port forwarding全都混在一起而且似懂非懂你的问题简单来说就是internal port当然可以跟external不一样,但server listen port要跟internal port一样不然你的外对内服务会连不到
作者: TPPCMAN (e?▄?▄?▄?▄?▄)   2019-06-13 10:21:00
若你非本科 却从事资讯职 劝你努力苦修 不然会很惨

Links booklink

Contact Us: admin [ a t ] ucptt.com