內(nèi)網(wǎng)機(jī)器:192.168.1.2外網(wǎng)vps地址;122.114.250.153
內(nèi)網(wǎng)機(jī)器192.168.1.2執(zhí)行:
ssh-fCNR7280 :127.0.0.1:8882root@ 122. 114. 250. 153將內(nèi)網(wǎng)機(jī)器的127.0.0.1的8882端口,通過主動(dòng)連接外網(wǎng)的122.114.250.153的ssh,映射到外網(wǎng)vps的122.114.250.153的7280端口,實(shí)現(xiàn)網(wǎng)絡(luò)穿透.這樣訪問122.114.250.153的7280就可以相當(dāng)于直接訪問內(nèi)網(wǎng)的8882端口了.
注意ssh只能夠?qū)?nèi)網(wǎng)的端口轉(zhuǎn)發(fā)到外網(wǎng),不能夠動(dòng)態(tài)的自動(dòng)內(nèi)網(wǎng)代理.如果你需要通過互聯(lián)網(wǎng)代理直接穿透到內(nèi)網(wǎng),一般來說有兩個(gè)方法:
如果你可以在內(nèi)網(wǎng)的機(jī)器上創(chuàng)建一個(gè)透明代理端口且可以內(nèi)網(wǎng)機(jī)器使用ssh:
在內(nèi)網(wǎng)機(jī)器可以建立一個(gè)透明代理(如Tinyproxy)8882端口,然后再將這個(gè)8882端口映射到外網(wǎng)vps的7280.本地瀏覽器直接將代理服務(wù)器設(shè)置為122.114.250.153:7280就可以訪問到內(nèi)網(wǎng)的資源了.
如果你不能創(chuàng)建一個(gè)代理端口,只可以使用ssh,且知道內(nèi)網(wǎng)主機(jī)的ss用戶密碼(后面使用的都是root) 先將內(nèi)網(wǎng)的ssh映射到外網(wǎng)
ssh-fCNR7280 :127.0.0.1:22root@ 122. 114. 250. 153通過ssh主動(dòng)反向鏈接外網(wǎng)并將ssh端口映射到122.114.250.153,
這樣你鏈接122.114.250.153的7280就相當(dāng)于鏈接到了內(nèi)網(wǎng)的22(ssh)
客戶端主動(dòng)鏈接vps的7280(內(nèi)網(wǎng)的ssh)來創(chuàng)建代理隧道
執(zhí)行:
ssh-qTfnN-D7070 root@ 122. 114. 250. 153-p 1080這時(shí)候在瀏覽器中設(shè)置代理122.114.250.153:1080.就可以直接輸入地址訪問內(nèi)網(wǎng)中的資源了
注意ssh綁定地址到0.0.0.0
vps一般情況下ssh默認(rèn)轉(zhuǎn)發(fā)只會(huì)映射到本地的127.0.0.1的端口.如果你需要映射到0.0.0.0讓外網(wǎng)訪問.修改配置/etc/ssh/sshd_config中設(shè)置GatewayPorts為yes,然后重啟ssh服務(wù),再次進(jìn)行轉(zhuǎn)發(fā)即可
關(guān)于ssh超時(shí)操作斷開后代理失效的問題
因?yàn)閟sh時(shí)間未操作會(huì)自動(dòng)斷開,所以需要搭建穩(wěn)定的ssh工具,autossh就是用來解決這個(gè)問題的。
apt-get install autossh在內(nèi)網(wǎng)客戶端機(jī)器執(zhí)行:
autossh -M 5555 -NR 7280:127.0.0.1:8882 root@122.114.250.153 vps端口:內(nèi)網(wǎng)監(jiān)聽地址:tinproxy端口 遠(yuǎn)程vps用戶名:vpsIP //輸入密碼后會(huì)站住當(dāng)前終端注意-M 5555是指定本地5555來鏈接到外網(wǎng)的ssh 如果你需要運(yùn)行多條通道需要指定別的端口,如果占用則autissh無法成功建立連接!
和外網(wǎng)多臺(tái)主機(jī)建立多條通道
例如本機(jī)使用autossh和server1和server2建立通道
???????autossh-M 5555-NR 7280: 127.0.0.1:8882root @server2autossh -M 4444-NR 7280: 127.0.0.1:8882root @server1
這時(shí)候你來到外網(wǎng)的vps上面就可以看到,vps監(jiān)聽了7280端口
IP地址切換導(dǎo)致斷網(wǎng)
注意,如果和外網(wǎng)通信的內(nèi)網(wǎng)機(jī)器的ip地址改變,會(huì)導(dǎo)致整條通道斷開。這時(shí)候autossh還在后臺(tái)運(yùn)行,重新鏈接需要重新進(jìn)行建立一條通道,需要在內(nèi)網(wǎng)機(jī)器上殺死autossh進(jìn)程,然后外網(wǎng)殺掉7280端口。