autossh sock5

原理很简单就是用ssh -D建立socks代理,然后把浏览器配置成socks代理就是了。用路由器来做ssh -D的好处是不用在每个设备上(我有一个iphone,两个ipad,一个android手机,n个虚拟机)去做ssh -D。那为什么不直接在远程服务器上提供socks5代理呢?因为socks5不能fq,流量中有关键字的话会被阻断。ssh -D建立的socks proxy是加密的,暂时还不会被阻断。

第一步: 配置服务器/root/.ssh/authorized_keys放你的public key

第二步: 把private key传到openwrt的/root/.ssh/id_rsa

第三步: 把openwrt的ssh客户端从dropbear换成openssh-client,安装autossh

rm /usr/bin/scp
rm /usr/bin/ssh
opkg update
opkg install openssh-client
opkg install autossh

第四步: 配置autossh,/etc/config/autossh 如下:

config autossh
        option ssh        '-i /root/.ssh/id_rsa -N -T -D 192.168.2.1:7080 root@<your_server_ip>'
        option gatetime        '0'
        option monitorport        '20000'
        option poll        '600'

192.168.2.1是你的路由器的lan ip。关键行是-D 192.168.2.1:7080,就是这个建立了一个socks代理。

第五步: 开机自动启动

/etc/init.d/autossh enable
/etc/init.d/autossh start

使用的时候需要连接这个路由器,应该会分配一个192.168.2.x的ip(你自己知道怎么配吧)。然后把socks代理设成192.168.2.1:7080

适合懒人的简单开机自动运行

编辑/etc/rc.local加入

autossh -M 0  -NT -D 0.0.0.0:8888 ssh_host &