Total Pageviews

Friday, 11 September 2015

在公司,用SSH 翻(防火)墙法(也适用mac机子,mac自带“终端”)

只要你还能上网,外加公司IT不是太BT,一般都能翻,下面的例子是翻出公司回家,同理,如果你在国外有个ssh server,那就成了翻”墙”
这个的原理是 : The actual act of forcing your web traffic through another computer (and another port) is called SOCKS proxying,
需要的材料:
  • 在家里的 ssh server(比如tomato 或者 dd-wrt 路由器上的,或者开电脑当ssh server如果你不在乎电费的话)
  • 在公司如果是linux ,一般都有ssh client, 如果是windows,你需要putty
步骤如下:
  1. 家里的tomato 路由器开ssh server(大脑正常人都会)
  2. 在公司运行如下命令 假设你公司是linux系统的话
    1
    ssh root@<your-ddns-domain或者vps-ip> -p <port> -D <local-port>
    举例,假设你的ddns地址是 fucker.freeDns.com 那你要运行的可能是这样
    1
    ssh root@fucker.freeDns.com或vps-ip -p 2345 -D 8080
    上面的命令的意思是连到 fucker.freeDns.com 的 2345 端口(2345端口为ssh端口。默认是22,显然,不过你最好换成别的,正常公司一般22都封了,当然万一你公司大部分其他端口都封了,也许你可以试试443.),-D后面的 8080 是之后需要在公司的电脑上的firefox里的Network settings里填的.

    ssh root@vps-ip -p ssh-port-no -D local-port-no
    widnows的话就用putty,设置教程看这里
    有些地方的教程里ssh命令后面加了 -fN 参数,  -f 的意思是在后台运行 -N是Do not execute a remote command.  This is useful for just forwarding ports .
  3. 假设上一步已经连接到了家里的ssh server, 那现在只要在firefox里填入代理设置就行了,下图中1080那里填8080,因为之前我们设了-D 8080.
如果不想每次连ssh server的时候输密码,可以用ssh-keygen设定 ssh authentication keys,如果在windows下,PuTTy也有等同的生成 public/private key的工具PuTTYgen,步骤网上到处都有,在次不再赘述
linux的 key 文件在 ~/.ssh  , windows的一般在%USERPROFILE%\.ssh, 把public key的内容贴到ssh server设定里,就不用登录输密码了.