close

SSH tunnel就是在跟遠端的ssh server 建立連線以後,可以透過這個ssh tcp連線來開一個tunnel(通道、隧道)來"彼此"互傳訊息.

在 putty的tunnel頁面裡面,有3種方式來使用.

第一種為Local方式,原理就是在 ssh client端開一個port來listen,然後可以讓browser等應用程式透過這個目前正在listen的port來跟遠端的ssh sever做溝通,叫ssh server幫我要資料.

譬如:Local方式、source port是8801、Destination是whatismyipaddress.com:80
然後在browser的url裡面打入「http://localhost:8801」就可以透過ssh server連到whatismyipaddress.com的80 port...然後看到的ip是ssh server的public ip.

第2種是Remote方式,原理跟第一個剛好相反,就是說讓ssh server那邊開一個port讓ssh server自己去listen
然後ssh server可以連到它自己開的port會透過我們彼此ssh 連線,連來我client這邊,由我client去幫server要資料.

譬如:Remote方式、source port是9901、Destination是whatismyipaddress.com:80
如果ssh server直接去瀏覽whatismyipaddress.com:80,它會在該頁面看到它自己的public ip
但是如果ssh server是去瀏覽localhost:9901,那麼ssh server就會在該頁面看到我 ssh client的ip,因為是我去幫它要的.

第3種就是Dynamic方式,就是可以用來做將ssh server做socks proxy的用途.
只要設定source port即可.然後ssh client端只要在 IE等應用程式下設定好socks proxy即可透過ssh server來連線.

譬如:Dynamic方式、source port是9999,然後在IE上面設定socks proxy,連到whatismyipaddress.com就可以看到
ssh server的public ip了.

要彈性一點的話(譬如A站走socks proxy, B 站不走socks代理而走原來線路)
可以在browser(Firefox/Google Chrome)裝Foxy Proxy套件來幫助你.

補充:
開啟gateway port的方法
如果你的機器作為一個ssh client連到ssh server後,在本地端listen一個port來作tunnel
你也可以將這一個port分享給其它機器來連線.
在putty裡面的Connection->SSH->tunnels這頁裡面的
Local ports accept connections from other hosts
打勾即可
在linux下的話用 「-g」這個選項就可以了
ssh -g -L 1111:whatismyipaddress.com:80 id@ssh_server
別台機器只要連到client ip的1111這個port就可以在whatismyipaddress.com看到 ssh_server的ip了.


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 fvalinux 的頭像
    fvalinux

    Elegance

    fvalinux 發表在 痞客邦 留言(8) 人氣()