有時(shí)候需要在外網(wǎng)訪問(wèn)一下內(nèi)網(wǎng)的站點(diǎn)痹束,比如論壇什么的所宰。
一桂肌、Dog-tunnel
下載(不要下載 Lite 版):http://dog-tunnel.tk/
本地電腦(需要校內(nèi)網(wǎng)絡(luò)認(rèn)證)執(zhí)行:
dtunnel -reg xxx -local 192.168.1.10:4321 -clientkey kkkkk
上面 172.16.168.200:2333 假設(shè)是內(nèi)網(wǎng)的一個(gè)服務(wù)五垮。
外網(wǎng)的服務(wù)器執(zhí)行:
dtunnel -link xxx -local :8888 -clientkey kkkkk
然后你就可以使用外網(wǎng) IP 的 8888 端口訪問(wèn)論壇了(消耗你的校園認(rèn)證流量)扎附。
二抠忘、Ngrok
編譯:
sudo apt-get install build-essential golang mercurial git
獲取源代碼:
git clone https://github.com/inconshreveable/ngrok.git ngrok
cd ngrok
生成并替換源碼里默認(rèn)的證書撩炊,注意域名修改為你自己的。之后編譯出來(lái)的服務(wù)端客戶端會(huì)基于這個(gè)證書來(lái)加密通訊崎脉,保證了安全性拧咳。
$ NGROK_DOMAIN="bgm.news"
$ openssl genrsa -out base.key 2048
$ openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
$ openssl genrsa -out server.key 2048
$ openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
$ openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
$ cp base.pem assets/client/tls/ngrokroot.crt
開始編譯:
sudo make release-server release-client
如果一切正常,ngrok/bin 目錄下應(yīng)該有 ngrok囚灼、ngrokd 兩個(gè)可執(zhí)行文件骆膝。
服務(wù)端
sudo ./bin/ngrokd \
-tlsKey=server.key \
-tlsCrt=server.crt \
-domain="bgm.news" \
-httpAddr=":8081" \
-httpsAddr=":8082" \
-tunnelAddr=":4443"
客戶端
寫一個(gè)簡(jiǎn)單的配置文件,隨意命名如 ngrok.cfg:
server_addr: bgm.news:4443
trust_host_root_certs: false
指定子域灶体、要轉(zhuǎn)發(fā)的協(xié)議和端口阅签,以及配置文件,運(yùn)行客戶端:
./bin/ngrok -subdomain bbs -proto=http -config=ngrok.cfg 80
現(xiàn)在再訪問(wèn)http://bbs.bgm.news 蝎抽,訪問(wèn)到的已經(jīng)是我本機(jī) 80 端口上的服務(wù)了政钟。
要訪問(wèn)其他機(jī)器的服務(wù),只需要修改為:
./bin/ngrok -subdomain bbs -proto=http -config=ngrok.cfg 172.16.168.200:80
詳細(xì)文檔:https://ngrok.com/docs
如何避免消耗自己的認(rèn)證網(wǎng)絡(luò)流量织中?才不告訴你呢~