Mac OS X 开启socks5代理并自动断线重连

socks5的作用这里不做讨论。在windows下有MyEntunnel, Bitvise Tunnelier等自动连接ssh并建立socks5的工具,还支持断线重连,用起来十分方便,可是这些软件都没有Mac版!我强大的Mac怎能在这一环节输掉呢!于是本文章提供一个直接使用终端进行socks5的建立并实现免密码,掉线自动重练的功能。

首先,建立SSH密钥实现免密码登陆

  1. 在Mac中打开终端,切换到当前目录的~/.ssh目录下,查看是否已经存在key,如下图,如果存在id_rsa.pub文件,则可以跳过第2步,如果不存在请直接看第二步。
    [enlighter]
    cd ~/.ssh
    ls
    [/enlighter]
    屏幕快照 2014-11-29 下午12.45.00
  2. 生成RSA密钥,输入以下命令,其中邮箱地址选填写,然后连按3次回车,表示在默认路径生成,空密码。
    [enlighter]
    ssh-keygen -t rsa -C “[email protected]
    [/enlighter]
    屏幕快照 2014-11-29 下午12.51.38
  3. 复制密钥。切换到~/.ssh目录,打开id_rsa.pub文件,拷贝里面的一串内容。
    [enlighter]
    vi ~/.ssh/id_rsa.pub
    [/enlighter]
    其中,拷贝的那串内容长这样“ssh-rsa AAAAB3NzaC1yc2….”。
  4. ssh连接到你的服务器,然后同样切换到~/.ssh目录,如果没有这个目录,就使用mkdir .ssh命令创建一个,然后在authorized_keys文件后添加刚才拷贝的内容,输入:wq保存,退出ssh连接。至此,免密码登陆已经实现
    [enlighter]
    vi ~/.ssh/authorized_keys
    [/enlighter]

之后,建立自动断线重连

在终端输入以下命令,并保持这个终端窗口一直在运行(随便切换到另一个桌面上放着就看不见啦)
[enlighter]
while true; do ssh -D 7070 [email protected] || true; done
[/enlighter]
上面的root是用户名,domain.com是域名,7070是本地socks端口号,这三个根据实际情况修改。

打完这条命令后,就实现建立socks5并且一旦掉线马上尝试重新连接。有个小问题就是关机后就要重新打这段代码,不过用mac的谁还关机呢。



11 thoughts on “Mac OS X 开启socks5代理并自动断线重连

Comments are closed.