一半君的总结纸

听话只听一半君

在公司如何翻墙(如何翻回家用qq 用vnc遥控家里 在家里如何遥控公司 ssh tunneling)

本来在公司可以用git把自己写的代码放到bitbucket的 前几天突然发现被封了,搜索了一通后现整理各位大师的方法如下:

ssh tunnel可以在加密的通道上传输未加密的通讯。其一大功效就是翻墙,很多公司都只开放了80端口,如果你和家里的ssh server 建立了ssh tunnel, 那你就可以把本地的某端口映射到外网的某服务器的某一不准访问的端口

端口映射有三种方式

  1.     Local port forwarding
  2.     Remote port forwarding
  3.     Dynamic port forwarding
  • Tunnelling with Local port forwarding

scenario

比如公司不让上yahoo.com,那可以使用以下命令

ssh -L 9001:yahoo.com:80 home

此时公司的ssh client将连到家里的ssh server, 通常是端口22,如果不是就用 -p 来指定, 公司电脑将监听本地的9001端口,通过公司和家里的电脑建立的 ssh tunnel, 家里的电脑会去连接yahoo.com的80端口,所以此时你只要访问 http://localhost:9001 就可以上yahoo网站了
这种用法的格式是

ssh -L <local-port-to-listen>:<remote-host>:<remote-port> <gateway>

如图所示
localportforwarding

举例1, 如果你想用vnc连家里电脑

ssh -L 5900:localhost:5900 home

显然 如果你公司已经给你机器装了vnc,那你左边那个5900得随便换一个别的。中间的localhost指的是相对家里而言的,所以他是家里的电脑本身(如果家里的ssh server在路由器上,那这里的localhost可以换成你的ddns域名,然后在路由器上映射5900到你的电脑上)

举例2,如果你想访问一台不能直接ssh的电脑,但是家里的电脑可以,那你可以先建ssh tunnel到家里的电脑,在此已有通道基础上再ssh到目的地

sshsessionforwarding

首先

ssh -L 9001:banned:22 home

然后

ssh -p 9001 localhost
  • Reverse Tunnelling with remote port forwarding

现在假设你想在家里连回公司,当然你可以用vpn,但是作为一个屌丝小职员,公司是不会给你vpn帐号的。

前一个例子里ssh tunnel 是从公司里的防火墙后的电脑发起的,因为从外面进来的通讯被组织了 但是从里面出去的通讯是允许的。而现在client端是在家里的,-R可以指定反向tunnel

ssh -R 9001:intra-site.com:80 home

这行运行完之后,访问家里的电脑的9001端口就相当于 访问公司内网地址 intra-site.com

remoteportforwarding

以上方法都是 要访问一个站就加一条,下面是自动方法

  • Dynamic Port Forwarding

这种方法可以只用一个端口,把所有的通讯转向家里的电脑,此时公司的电脑会建立一个 SOCKS proxy,只要把浏览器或其他软件如qq的代理服务器里填入相应的SOCKS proxy就可以了(填localhost 9001)

ssh -D 9001 home

dynamicportforwarding

待续
SSH Tunneling Explained
How does reverse SSH tunneling work?
Bypassing corporate firewall with reverse ssh port forwarding

本来下面的连接是适用于路由器的情况,但是我现在的tomato默认的dropbear的ssh client不支持 -D 参数,可以自己装optware然后装openssh,好麻烦,我没有实验,我准备直接在pc机上装openssh,这样简单些…当然pc得一直开着….
Using SSH as a reverse tunnel

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s

%d 博主赞过: