linux中SSH Tunnel的簡單使用例子

來源:互聯網
上載者:User

背景介紹:

目前,線上有好幾個資料中心,不同資料中心之間的速度差異還是比較大的,我們一般選擇一個最優的資料中心作為VPN的存取點。
但有些時候直接通過VPN訪問其它資料中心的服務會很慢,於是就臨時通過SSH Tunnel來解決。

應用情境:

直接存取伺服器idc1-server1很快,但是直接存取idc2-server2很慢,而idc1-server1到idc2-server2卻很快;
於是,我們打算用idc1-server1伺服器作為跳板來串連idc2-server2。

ssh -i /path/to/sshkey -l username -f -N -T -L 8088:idc2-server2:80 idc1-server1

通過瀏覽器直接存取http://localhost:8088就相當於訪問了http://idc2-server2

關鍵參數介紹:

-L 8088:idc2-server2:80

將本地的某個連接埠轉寄到遠端指定機器的指定連接埠。工作原理是:本地機器上分配了一個socket偵聽port連接埠,一旦這個連接埠上有了串連, 該串連就經過安全隧道(idc1-server1)轉寄出去,即
 localhost:8088 -> (idc1-server1) -> idc2-server2:80;

ssh -i /path/to/sshkey -l username -f -N -T -L 2022:idc2-server2:22 idc1-server1
通過scp可以將檔案通過idc1-server1中轉後傳送到idc2-server2中:
scp -i /path/to/sshkey -P 2022 upload_file_name.tgz dong@localhost:/path/to/upload/

假設

位於公網的用戶端是10.66.0.78(當然事實上這是一個私網IP),
公司有一個暴露在公網的主機,公網IP是10.66.0.190(當然事實上這還是一個私網IP),公司私網的IP是192.168.200.20,
我在公司真正要登入的主機是192.168.200.100。
那麼我可以做如下操作

方法1

在 10.66.0.190上執行
[root@dhcp-0-190 ~]# ssh -Nf -L 10.66.0.190:10000:localhost:22 192.168.200.100

方法2

a. 在10.66.0.190上修改設定檔/etc/ssh/sshd_config
開啟

GatewayPorts yes
然後重新載入sshd配置
[root@dhcp-0-190 ~]# service sshd reload
Reloading sshd:                                            [  OK  ]
 
b. 然後在192.168.200.100上執行

[root@localhost ~]# ssh -Nf -R 10.66.0.190:10000:192.168.200.100:22 192.168.200.20
 
然後我們就可以在公網通過訪問10.66.0.190:10000連接埠來串連192.168.200.100的22連接埠了。
 
安全因素

大家看我上面其中2條命令
# ssh -Nf -L 10000:localhost:80 209.132.177.100
# ssh -Nf -L 10.66.0.190:10000:localhost:22 192.168.200.100
再看下ssh tunnel用例
-L [bind_address:]port:host:hostport
bind_address預設是127.0.0.1
 
格式是

[要開啟的監聽IP:]要開啟的監聽連接埠:要映射到的監聽IP:要隱射到的監聽連接埠
 
為什麼有時候用locahost,有時候用10.66.0.190?
如果說ssh tunnel開啟的連接埠只需要給本機用到,那麼就讓連接埠只在迴環介面監聽,如果需要讓別的機器共用ssh tunnel開啟的連接埠,則需要讓ssh在可訪問的IP上開啟連接埠了。
 
總之處處小心,設好安全許可權,防止入侵。

Ssh tunnel通常能實現3種功能

1)   加密網路傳輸

2)   繞過防火牆

3)   讓位於廣域網路的機器串連到區域網路內的機器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.