一、什么是內(nèi)網(wǎng)穿透
內(nèi)網(wǎng)穿透,即NAT穿透,網(wǎng)絡(luò)連接時(shí)術(shù)語(yǔ)。外網(wǎng)與內(nèi)網(wǎng)的計(jì)算機(jī)節(jié)點(diǎn)需要連接通信,映射端口能讓外網(wǎng)的電腦找到處于內(nèi)網(wǎng)的電腦,提高下載速度。
二、內(nèi)網(wǎng)穿透的應(yīng)用場(chǎng)景
1、web 應(yīng)用開(kāi)發(fā):向外網(wǎng)發(fā)布開(kāi)發(fā)的一些web demo,或者遠(yuǎn)程調(diào)試 API 接口 (如:微信公眾號(hào),企業(yè)號(hào)的開(kāi)發(fā))。
2、內(nèi)網(wǎng)應(yīng)用的訪問(wèn):公司內(nèi)網(wǎng)部署的應(yīng)用、數(shù)據(jù)庫(kù)等,人員出差、或者臨時(shí)外出,需要遠(yuǎn)程訪問(wèn)、連接調(diào)試等情況。
3、遠(yuǎn)程操控硬件設(shè)備:物聯(lián)網(wǎng)設(shè)備開(kāi)發(fā)、調(diào)試。
三、內(nèi)網(wǎng)穿透服務(wù)
實(shí)現(xiàn)內(nèi)網(wǎng)穿透需要借助內(nèi)網(wǎng)穿透服務(wù),今天我們介紹的這個(gè)內(nèi)網(wǎng)穿透服務(wù)Serveo,是一個(gè)免費(fèi)的內(nèi)網(wǎng)穿透服務(wù),Serveo 可以將本地計(jì)算機(jī)暴露在互聯(lián)網(wǎng)上,官方稱其為 Ngrok 的絕佳替代品。它最大優(yōu)點(diǎn)是:無(wú)需安裝、無(wú)需注冊(cè)、利用SSH隧道即可直接使用。
1、Serveo工作原理
Serveo SSH 服務(wù)器只是遠(yuǎn)程端口轉(zhuǎn)發(fā),當(dāng)用戶連接到 Serveo 時(shí),他們得到一個(gè)公共URL,任何人都可以使用連接到 localhost 服務(wù)器。
2、安裝說(shuō)明
無(wú)需安裝,開(kāi)箱即用。服務(wù)器前提:需要具備SSH功能,并且能正常鏈接互聯(lián)網(wǎng)。
3、Serveo 使用實(shí)踐
1)、將本地應(yīng)用(HTTP服務(wù))的 3000 端口映射到公網(wǎng)中
# 如果要轉(zhuǎn)發(fā)其它端口,只需替換端口為其它就可以了 $ ssh -R 80:localhost:3000 serveo.net Hi there Forwarding HTTP traffic from https://heryum.serveo.net Press g to start a GUI session and ctrl-c to quit.
第一次使用會(huì)提示建立SSH會(huì)話,請(qǐng)輸入yes確定。
建立會(huì)話成功后,它會(huì)隨機(jī)生成一個(gè) xx.serveo.net 二級(jí)域名。你就可以使用瀏覽器訪問(wèn)這個(gè)隨機(jī)生成的二級(jí)域名 heryum.serveo.net 去訪問(wèn)到本地計(jì)算機(jī) 3000 端口上的服務(wù)了。
也可以不使用這個(gè)隨機(jī)生成的域名,你可以自定義一個(gè)自己習(xí)慣的二級(jí)域名,也是可以的,具體操作步驟如下:
$ ssh -R mingongge:80:localhost:3000 serveo.net Hi there Forwarding HTTP traffic from https://mingongge.serveo.net Press g to start a GUI session and ctrl-c to quit. ... # 這個(gè)自定義二級(jí)域名可以簡(jiǎn)寫(xiě),也可以寫(xiě)完整的,如: $ ssh -R mingongge.serveo.net:80:localhost:8080 serveo.net
遠(yuǎn)程訪問(wèn)本地的ssh服務(wù)其實(shí)很簡(jiǎn)單,只需要使用下面的命令即可。
# 名稱為自定義的,這里設(shè)置為 mingongge $ ssh -R mingongge:22:localhost:22 serveo.net Hi there Forwarding SSH traffic from alias "mingongge" Press g to start a GUI session and ctrl-c to quit. ...
連接成功后,接下來(lái)你就可以從公網(wǎng)上對(duì)這個(gè)內(nèi)網(wǎng)計(jì)算機(jī)的 SSH 進(jìn)行訪問(wèn)了。
$ ssh -J serveo.net user_name@mingongge Hi there user_name@mingongge's password: Last login: Sun 29 May 23:08:12 2022 from 127.0.0.1 ...
-J 選項(xiàng)是用在 OpenSSH 7.3 及以上版本中,如果你的 SSH 客戶端版本較低,可以使用 ProxyCommand 來(lái)替代。
$ ssh -o ProxyCommand="ssh -W mingongge:22 serveo.net" user_name@mingongge
注:如果你無(wú)法通過(guò) 22 端口訪問(wèn) Serveo 服務(wù),官方還預(yù)留了 443 端口,具體更改如下:
$ ssh -p 443 -R 80:localhost:3000 serveo.net
3)、Windows 系統(tǒng)使用
Win10 默認(rèn)自帶 OpenSSH ,其它Window系統(tǒng)的話,需要大家去 OpenSSH 的 Github 上下載安裝,具體的安裝方式上面都有,這里不介紹了。
如果你的 Win10 系統(tǒng) cmd 無(wú)法識(shí)別 ssh 命令,可能是你的系統(tǒng)此功能未啟用,需要手工配置啟用一下。
4)、啟用步驟如下
設(shè)置---應(yīng)用、可選功能---添加可選功能
點(diǎn)擊“添加功能”按鈕,在可選功能列表中看到“ OpenSSH 服務(wù)器”,選中它,點(diǎn)擊“安裝”
安裝成功之后,在cmd命令提示符窗口中即可運(yùn)行ssh命令。
原文鏈接:https://segmentfault.com/a/1190000041921943