家里想遠程訪問設(shè)備?先搞懂這三個核心概念
最近有不少朋友問我:“我在家里搭了 NAS,怎么在公司訪問?”、“我想遠程控制家里的臺式機,有啥辦法?”我通常不會直接教你怎么做第一步,而是先問三個問題:
- 你知道自己有沒有公網(wǎng) IP 嗎?
- 你了解端口映射是怎么回事嗎?
- 沒公網(wǎng) IP 的時候,你知道內(nèi)網(wǎng)穿透能解決問題嗎?
今天這篇文章不講配置、不貼命令,只講明白一件事:要搞遠程訪問,先把 NAT、端口映射、內(nèi)網(wǎng)穿透這三個核心概念弄清楚。
一、NAT 是怎么回事?為什么你家網(wǎng)絡(luò)上不了別人家設(shè)備?
家里的路由器分配給設(shè)備的 IP,通常是這種格式的:
- 192.168.x.x
- 10.x.x.x
- 172.16.x.x 到 172.31.x.x
這些都是內(nèi)網(wǎng)地址,在公網(wǎng)是無效的,別人訪問不了你。
那你用這些地址怎么能刷抖音、看 B 站?答案是:NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)。
NAT 會把你家所有設(shè)備的請求都通過一個“公網(wǎng) IP”發(fā)出去,然后記錄好是誰發(fā)的請求,等數(shù)據(jù)回來再轉(zhuǎn)回給對應(yīng)設(shè)備。
所以你能上網(wǎng),但別人找不到你(因為你躲在 NAT 后面)。
二、端口映射:想讓別人能找上你,得“打個洞”
如果你想讓公司里的你訪問家里的 NAS 或遠程桌面,問題就來了:公司電腦訪問你家的公網(wǎng) IP,路由器怎么知道該轉(zhuǎn)發(fā)給哪臺設(shè)備?
這時候你就得配置 端口映射。
比如你設(shè)置:把公網(wǎng) IP 的 1000 端口,映射到你家 192.168.1.100:5000 的 NAS 上。
那么只要你在外面訪問 203.0.113.100:1000,路由器就知道“哦,這個請求是給 NAS 的”,然后就能轉(zhuǎn)過去。
注意:端口映射只有在你有公網(wǎng) IP 的前提下才有效。如果你沒有公網(wǎng) IP,那映射再多也沒用,別人根本打不到你門口來。
三、沒公網(wǎng) IP 怎么辦?內(nèi)網(wǎng)穿透了解一下
現(xiàn)在問題來了,大多數(shù)家庭寬帶(尤其是移動、廣電)根本不給你公網(wǎng) IP,全都是“套娃 NAT”。
你用各種在線工具一查,發(fā)現(xiàn)你“看起來”的公網(wǎng) IP 和路由器上的外網(wǎng) IP 根本不一致。——這就說明你已經(jīng)被運營商塞到了另一個 NAT 里,端口映射也救不了你。
怎么辦?這時候你需要用的是 內(nèi)網(wǎng)穿透。
它的核心思路很簡單:你把家里設(shè)備和一個“中轉(zhuǎn)服務(wù)器”連上,外部設(shè)備訪問這個中轉(zhuǎn)服務(wù)器,再由它把流量轉(zhuǎn)到你家設(shè)備上。
常見方案包括:
- frp:非常靈活,開源方案。
- Ngrok:開箱即用,適合演示。
- ZeroTier、Tailscale:直接讓你家設(shè)備和外面設(shè)備像在同一個局域網(wǎng)里一樣工作。
舉個例子:你在家跑個 frpc 客戶端,連上你買的云服務(wù)器上的 frps 服務(wù)端,就可以通過 xxx.yourvps.com:8080 訪問家里服務(wù)了。
不用公網(wǎng) IP,也不用配路由器,走的是應(yīng)用層的隧道。
四、三者的關(guān)系總結(jié)一下
概念 | 是否需要公網(wǎng)IP | 是否能被外部訪問 | 是否適合家庭遠程 |
NAT | 是 | 否(默認不行) | 否 |
端口映射 | 是 | 是 | 是(簡單、可靠) |
內(nèi)網(wǎng)穿透 | 否 | 是 | 是(進階選手) |
什么時候用哪種方式?
場景 | 推薦方案 |
家里有公網(wǎng) IP | 直接用端口映射 |
家里沒有公網(wǎng) IP | 用 frp 或 Zerotier 做內(nèi)網(wǎng)穿透 |
家里設(shè)備多,希望按需訪問 | 軟路由+穿透/映射結(jié)合 |
完全小白、想快速部署遠程訪問功能 | 花生殼、蒲公英這種圖形化穿透工具 |
五、最后說句實在話
遠程訪問不是點一下按鈕就能實現(xiàn)的事,搞清楚這三個概念,是避免你“連不上、訪問不了、端口無響應(yīng)”的第一步。
配置技術(shù)雖然重要,但理解網(wǎng)絡(luò)背后的邏輯更重要。否則,就算你把 frp 配好了,遇到 NAT 類型不支持也一樣抓瞎。