ssh 是一种加密通讯的网络协议,常用来在两台机器间做远程登录,假设有一台服务器,想通过服务器代理本地的网络请求。可以在本地和服务器之间创建隧道进行动态转发。
ssh动态转发有比较多成熟的软件,比如mac系统下的Core Tunnel,win系统下的Proxifier。如果不想安装软件只使用命令也可以很简单的创建隧道
ssh -D 1080 -Nf root@IP
这条命令的意思是,在本地开一个端口1080 ,同时在你的PC和服务器之间建立隧道。这个端口支持 sock 5 协议。
可以使用curl 命令测试下代理是否成功
curl --socks 5 127.0.0.1:1080 http://需要访问的网站
每次输入命令的话非常麻烦,可以把命令加入到bash_profile
中
#Proxy
alias proxy_on="ssh -D 1080 -Nf root@IP"
这样每次执行proxy_on
就可以方便的启用代理了
还可以把命令放到函数内,这样可以增加更多的逻辑,例如:
function proxy_on() {
ssh -D 1080 -Nf root@IP
curl --socks5-hostname 127.0.0.1:1080 https://www.google.com
echo -e "\n"
echo -e "\033[32m已开启代理\033[0m"
}
function proxy_off() {
pid=$(ps -ef | grep ssh | grep -v grep | awk '{print $2}')
if ps -p $pid >/dev/null; then
echo "$pid is running"
kill -9 $pid
echo -e "\033[32m已关闭代理\033[0m"
else
echo -e "\033[32m代理未启用\033[0m"
fi
}
Comments | NOTHING