原理很简单就是用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 &