使用 ngrok 進行內網穿透——4 (如何穿透ssh端口)

我們做好內網穿透以後

雖然可以對外提供服務

但是如果出了某些問題或者我們需要修改內網服務器上的東西

我們是無法直接ssh過去

我們有兩種方式做ssh隧道

一:ngrok方式

如果你已經在使用ngrok了

那麼就非常簡單了

修改ngrok.cfg

server_addr: ngrok.6le6le.com:4443
trust_host_root_certs: false
#多隧道
tunnels:
    tunnel1:
        subdomain: aaa
        proto:
            http: 80
    tunnel2:
        subdomain: bbb
        proto:
            http: 8080
#新增ssh隧道
    ssh:
      proto:
        tcp: "22"
      #綁定遠程端口
      remote_port: 8888

之後依然使用ngrok啓動命令

./ngrok -config ngrok.cfg start tunnel1 tunnel2 ssh

這樣,多隧道+ssh隧道就啓動了,響應如下:

ngrok                                                              (Ctrl+C to quit)

Tunnel Status                 online
Version                       1.7/1.7
Forwarding                    tcp://ngrok.baidu.com:8888 -> 127.0.0.1:22
Forwarding                    http://aaa.ngrok.baidu.com:8081 -> 127.0.0.1:80
Forwarding                    http://bbb.ngrok.baidu.com:8081 -> 127.0.0.1:8080
Web Interface                 127.0.0.1:4040
# Conn                        0.00ms
Avg Conn Time                 0.00ms

二:使用ssh反向隧道來鏈接內網ssh端口

(剛開始沒想到ngrok可以直接用,所以研究了一下,此方法無需ngrok,任何機器都可以直接使用)

1>使用ssh建立反向隧道:

將內網ssh服務到22端口綁定到雲服務器8001端口

ssh -fCNR 8001:localhost:22 root@公網ip

(據說這樣就可以了,但是我失敗了,於是執行下面的操作)

在雲服務器上將8001端口轉發到8000端口

ssh -fCNL *:8000:localhost:8001 localhost

之後ssh反向隧道就成功建立了

ssh root@公網ip -p 8000

即可成功鏈接

2>使用autossh實現自動重連

使用中發現ssh隧道經常自動斷開,這是正常的。

所以我們可以使用autossh來實現自動重連。

首先,建立密鑰對登陸

ssh-keygen
#全部按Enter,生成密鑰位置:~/.ssh

ls ~/.ssh/
id_rsa id_rsa.pub known_hosts

將公鑰文件id_rsa.pub複製到雲服務器上,並加入到~/.ssh/authorized_keys

#複製到雲服務器後執行
cat id_rsa.pub >> ~/.ssh/authorized_keys

或者在內網服務器直接執行

ssh-copy-id root@公網ip

之後就執行autossh命令

autossh -M 8002 -qnfTCNR 8001:localhost:22 root@公網ip

-M 8002代表通過8002端口監視連接狀態,如果出現問題,就會自動重連。

寫在最後

今天算是吃了一虧,沒有查ngrok鏈接方法就直接搞ssh方法

所以大家記住,有問題先看看當前有沒有可以利用的資源

不要埋頭就是幹。。。(血的教訓啊~TAT

歡迎來我的私人博客看看:http://blog.6le6le.com/

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章