1. ssh方式实现ss5代理
该方法简单,且不需要远程服务器做任务配置,有ssh权限就行。很适合有ssh权限的虚拟主机。eg:bluehost
1.1. 修改Host
localhost
对应IP改成0.0.0.0
,这样局域网内其它IP可以连上本机架设的代理
#127.0.0.1 localhost
0.0.0.0 localhost
1.2. 建立互信
拷贝本地的id_rsa.pub
到远程服务器的authorized_keys
1.3. 启动ss5代理
$ ssh -D 0.0.0.0:$AUTO_SSH_PORT -p22 -N $AUTO_SSH_USER@$AUTO_SSH_ADDRESS
1.4. 查看代理是否生效
$ netstat -AaLlnW | grep $AUTO_SSH_PORT
或者
$ lsof -i :$AUTO_SSH_PORT
1.5. 定时任务
上面方法架的代理服务,如果一段时间没有任务包传输ssh会自动断开,导致代理服务停止,所以需要建立定时任务,定时检测连接是否断开,如果断开就重新连接。
- 启动代理的脚本: Resource/autossh.sh.
使用前先设好
AUTO_SSH_ADDRESS
和AUTO_SSH_USER
.并拷贝到~/bin
目录下
添加定时任务
$ crontab -e
#second hour day month week commond
*/10 * * * * /Users/[username]/bin/autossh.sh >> /Users/[username]/log/ss5.log 2>&1
1.6. 停止代理
$ ps -ef | grep ssh
$ kill -9 $PID_NUM
$PID_NUM
为对应ssh -d 的进程id
1.7. 使用代理
1.7.1. Firefox
Firefox > 设置 > 高级 > 网络 > 连接 > 设置 > 手动配置代理 > SOCKS 主机:localhost, 端口:$AUTO_SSH_PORT,勾选 SOCKS v5 > 确定
1.7.2. MAC
设置 > 网络 > 高级 > 代理 > SOCKS 代理 > SOCKS 代理服务器:localhost, 端口:$AUTO_SSH_PORT,不要设用户名密码 > 确定