ubuntu 环境 SSH 代理 SOCKET5 翻墙

一直由于我自己是做 WEB 开发,然后就一直有各种国外主机,因此一直以来翻墙都是利用国外的 VPS 的 SSH,通过 Socket5 来进行翻墙的。

在 Windows 下面,我们可以使用 Bitvise SSH Client 这个神器简单地登录到远程的 Linux 系统上面,同时开启里面的 Socket5 服务器。

例如,我们有一台远程 VPS,通过 root 用户可以登录到 ssh.example.com 的 22222 端口访问 SSH。

然后我们希望建立一个 Socket5 隧道,通过访问本机的 127.0.0.1:1080 代理发出的 http 请求都转发到远程的服务器来访问。

在 Linux 下面,我们只需要使用 ssh 命令即可完成上述操作。

http://www.linuxidc.com/Linux/2011-08/41710.htm

http://my.oschina.net/u/1382972/blog/342092

总结下来,我这里使用下面这句脚本,即可实现代理服务器的开启:

ssh -qTfnN -D 1080 -p 22222 root@ssh.example.com

于是,通过这样就可以设置代理并成功向外访问了。

更多一层,我们直接就可以把这个加到 rc.local 里面去随系统启动,但是密码是必须输的,这个怎么破?

主要参照这个:

http://www.cnblogs.com/tankaixiong/p/4172942.html

1. 生成公钥和私钥

ssh-keygen -t rsa

默认在 ~/.ssh目录生成两个文件:

id_rsa :私钥 id_rsa.pub :公钥

2. 导入公钥到认证文件,更改权限

Shell代码

id_rsa.pub 的公钥内容追加到本机及远程机对应用户的 ~/.ssh/authorized_keys 文件中。

注意更改权限:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys  

3. 测试

ssh -p 22222 root@ssh.example.com

这个时候就可以免输密码登录了!

4. 自启动和进程守护

使用 autossh 工具(sudo apt-get install -y autossh)可以让 ssh 断掉之后实现自动重连:

autossh -M0 -qTfnND1080 root@ssh.example.com

然后这样建立的 autossh 守护进程可以确保 ssh 断开之后能够重连。

将上面这段加到 /etc/rc.local 里面自启动,就可以确保能够自动翻墙了。


应用篇

1. git 走 sock5 代理

http://stackoverflow.com/a/16756248/2544762

git config --global http.proxy 'socks5://127.0.0.1:1080'

【转载请附】愿以此功德,回向 >>

原文链接:https://www.huangwenchao.com.cn/2015/08/ubuntu-ssh-socket5-agent.html【ubuntu 环境 SSH 代理 SOCKET5 翻墙】

发表评论

电子邮件地址不会被公开。 必填项已用*标注