參考:
https://www.zsythink.net/archives/2450
https://luckyfuture.top/ssh-tunnel#SSH%E9%9A%A7%E9%81%93
https://zhuanlan.zhihu.com/p/561589204?utm_id=0
1、 SSH隧道(搭建SSH隧道繞過防火墻):
ssh命令除了登陸外還有代理轉(zhuǎn)發(fā)功能
SSH 隧道是 SSH 中的一種機(jī)制,它能夠?qū)⑵渌?TCP 端口的網(wǎng)絡(luò)數(shù)據(jù)通過 SSH 連接來轉(zhuǎn)發(fā),并且自動(dòng)提供了相應(yīng)的加密及解密服務(wù)。因?yàn)?SSH 為其他 TCP 鏈接提供了一個(gè)安全的通道來進(jìn)行傳輸,因此這一過程也被叫做“隧道”(tunneling)。
SSH 隧道也可以叫做端口轉(zhuǎn)發(fā)
SSH 隧道能夠提供兩大功能:
1)加密 SSH Client 端至 SSH Server 端之間的通訊數(shù)據(jù)。
2)突破防火墻的限制完成一些之前無法建立的 TCP 連接
SSH一共提供了3種端口轉(zhuǎn)發(fā),分別是本地轉(zhuǎn)發(fā)(-L參數(shù))、遠(yuǎn)程轉(zhuǎn)發(fā)(-R參數(shù))和動(dòng)態(tài)轉(zhuǎn)發(fā)(-D參數(shù))
-C:壓縮傳輸,提高傳輸速度。
-f:將SSH傳輸轉(zhuǎn)人后臺(tái)執(zhí)行,不占用當(dāng)前的Shell。
-N:建立靜默連接(建立了連接,但是看不到具體會(huì)話)。
-g:允許遠(yuǎn)程主機(jī)連接本地用于轉(zhuǎn)發(fā)的端口。
-L:本地端口轉(zhuǎn)發(fā)。
-R:遠(yuǎn)程端口轉(zhuǎn)發(fā)
-D:動(dòng)態(tài)轉(zhuǎn)發(fā)(socks代理)
-P:指定SSH端口
-NL 和 -NR 是端口轉(zhuǎn)發(fā)的兩種方向,分別代表了本地到遠(yuǎn)程、遠(yuǎn)程到本地兩種隧道傳輸方式
例子:
ssh -p 31022 -NL 7860:192.168.1.1:7860 root@18***12
SSH隧道,它通過加密和安全地傳輸數(shù)據(jù)。通過這個(gè)隧道,可以在本地機(jī)器和遠(yuǎn)程服務(wù)器之間建立一個(gè)安全的通信通道。
具體來說,這個(gè)命令中的參數(shù)-NL表示創(chuàng)建本地端口轉(zhuǎn)發(fā)。它將本地機(jī)器的7860端口與遠(yuǎn)程服務(wù)器的192.168.1.1:7860端口進(jìn)行連接。實(shí)際上,當(dāng)本地機(jī)器收到對(duì)本地7860端口的請(qǐng)求時(shí),請(qǐng)求將被轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器的192.168.1.1:7860端口。
通過這個(gè)隧道建立的通信是安全的,因?yàn)镾SH使用了加密來保護(hù)數(shù)據(jù)的傳輸。這意味著在本地機(jī)器和遠(yuǎn)程服務(wù)器之間傳輸?shù)臄?shù)據(jù)被加密,只有具有正確密鑰的兩端才能解密和讀取數(shù)據(jù)
或:
ssh -L 9906:10.1.0.2:3306 root@10.1.0.2
上述命令表示從本機(jī)(ServerA)建立一個(gè)到ServerB(10.1.0.2)的ssh隧道,使用本地端口轉(zhuǎn)發(fā)模式,監(jiān)聽ServerA本地的9906端口,訪問本機(jī)的9906端口時(shí),通訊數(shù)據(jù)將會(huì)被轉(zhuǎn)發(fā)到ServerB(10.1.0.2)的3306端口。
ssh軟件一般也有入口:
2、本地電腦局域網(wǎng)內(nèi)網(wǎng)穿透外網(wǎng)訪問
參考:https://www.youtube.com/watch?v=4kCQICjI298
上圖總體框架步驟解釋:
1、內(nèi)網(wǎng)電腦最左,有個(gè)服務(wù)比如起個(gè)文件服務(wù)器python -m http.server,這里起的8000端口
2、公網(wǎng)服務(wù)器中間,這里用的阿里云服務(wù)器,打開終端開啟9999 tcp端口,然后打開sshd相關(guān)服務(wù)
echo "GatewayPorts yes" >> /etc/ssh/sshd _config
echo "AllowTcpForwarding yes”>> /etc/ssh/sshd _config
systemctl restart sshd
另外:netstat -anp |grep 9999 可以查看端口監(jiān)聽情況
3、然后在最左電腦創(chuàng)建ssh隧道
9999是中間遠(yuǎn)程服務(wù)器端口,127.0.0.1:8000本地靜態(tài)服務(wù)器端口,root@8****4 -p 22是遠(yuǎn)程服務(wù)器外網(wǎng)公開ip和端口
ssh -NR 9999:127.0.0.1:8000 -f root@8****4 -p 22
4、外部其他電腦最右,就可以輸入中間遠(yuǎn)程服務(wù)器ip加端口轉(zhuǎn)發(fā)到的9999端口進(jìn)行訪問本地
8****4:9999文章來源:http://www.zghlxwxcb.cn/news/detail-759638.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-759638.html
到了這里,關(guān)于SSH隧道搭建簡單使用;本地電腦局域網(wǎng)內(nèi)網(wǎng)穿透外網(wǎng)訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!