平時開發過程當中,可能會遇到一些網絡問題,好比npm install 一些依賴包。本地電腦是能夠,沒有問題。可是測試環境服務器,因爲公司內部網絡安全限制,不能夠隨意訪問外部網絡。所以下載一個依賴包就變得很麻煩,須要你提網絡訪問權限,講清楚緣由。固然,你能夠搭建一個私服,天天去同步npm包到你私有服務器。linux
這裏介紹一個小竅門,linux 隧道命令。npm
介紹這個命令以前,須要有一個前提,那就是 本地環境能訪問你的測試服務器。也就是說,你本地,到你部署的服務器網絡至少單向是通路的。安全
如今咱們開始建一個隧道,來實現 測試服務器,經過本地服務器做爲跳板,訪問外部的npm 或者其餘服務器。服務器
一、輸入以下命令(以mac OS爲例)網絡
ssh -R 8888:127.0.0.1:9999 root@10.x.x.x
1. ssh -R 固定用法,R 表示 Right(明白這個之後,你能夠推算ssh -L的用法)
2. 第一個8888 表示監聽10.x.x.x這個地址的8888端口
3. 第二個127.0.0.1:9999 表示本地127.0.0.1的9999端口做爲跳板
4. root@10.x.x.x 表示用root用戶登陸你的測試服務器
輸入上述命令後,系統要提示你輸入 10.x.x.x的root用戶密碼。密碼驗證經過後,第一步隧道創建成功。ssh
二、本地的9999端口要有服務佔用才行。這裏我用charles 抓包工具,監聽本地9999端口。不然,本地9999都沒有啓用,無法做爲跳板的。工具
三、charles 要作相應的配置修改,也就是本場景下只作純轉發,不作https 抓包處理。(charles抓包的時候,會攔截數據包,https數據解密,而後用本身的證書處理後再轉發出去。測試
那麼再npm 安裝的時候發現該https的證書不是可信任的,而是charles本身的證書的時候,會引起一些問題)。代理
以下圖,我直接不勾選 Enable SSL Proxying,簡單粗暴。code
四、在你測試服務器須要執行npm install 的地方,設置代理。剛纔咱們啓動的測試服務器的8888端口。那麼這個時候,全部的npm install 的請求都應該交給8888 端口去發起請求。
export http_proxy=http://127.0.0.1:8888 export https_proxy=http://127.0.0.1:8888
繼續設置代理的操做只在當前會話下有效,你關掉該ssh鏈接後,export 代理設置失效。
通過上述步驟,就能夠在內網的測試環境,以本地環境做爲跳板,訪問一些開源的網絡。
固然,這個只是一個臨時解決方案,最重要的仍是要跟公司的網絡組協商,申請開通網絡權限。