How to use ssh proxy to visit openstack code repository (by quqi99)

作者:张华  发表于:2014-12-31
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明

( http://blog.csdn.net/quqi99 )

你有没有发现有时候想顺利地更新openstack代码是一项非常耗时的挑战,那就用简单有效便宜的ssh遂道吧(使用三层路由的vpn不像上层的ssh那样方便控制,使用远程dns也麻烦)。
第一步,通过ssh帐户创建一个socket 5的代理,
       ssh -l<ssh-user> -fN -o ServerAliveInterval=30 -o ServerAliveCountMax=1 -D 7070 <ssh-server>
       支持socket5代理的软件就都可以用了,如QQ。若是firefox建议安装autoproxy插件用起来更方便一些,记得把远程dns的勾勾上。
       android上可以安装sshtunnel。
       剩下的步骤就都是可选的了。
第二步,[可选], 如果是一般的不支持socket5的应用程序(如git)怎么办? 例如,想通过git访问https://协议的git库(https://review.openstack.org/p/openstack-dev/devstack)。那就再用polipo配置一个http/https代理。
       sudo apt-get install polipo
       sudo polipo socksProxyType=socks5 socksParentProxy=127.0.0.1:7070
       export https_proxy=http://127.0.0.1:8123
       git clone https://review.openstack.org/p/openstack-dev/devstack 

       如果只是对于git clone https://打头的代码还好说,直接: export HTTPS_PROXY=socks5://127.0.0.1:8080, 但是对于pypi.python.org的pip须要转化为http代理。


第三步,[可选], 如果不支持socket5的应用程序想访问的不是http/https协议呢?例如,想通过git访问git://协议的git库(gits://review.openstack.org/p/openstack-dev/devstack)。那就再安装一个tsocks为4层传输层的各端口提供代理服务。  
       sudo apt-get install tsocks
       sudo sed -i -r "s/server = (.*?)/server = 127.0.0.1/g" /etc/tsocks.conf
       sudo sed -i -r "s/server_port = (.*?)/server_port = 7070/g" /etc/tsocks.conf
       sudo tsocks git clone gits://review.openstack.org/p/openstack-dev/devstack
第四步,[可选], 上面建立ssh遂道时已经用-o ServerAliveInterval=30 -o ServerAliveCountMax=1参数配置了心跳检查来保证ssh连接不断,但仍然有断的时候,那就采用autossh监控到ssh连接断开的时候来自动重启ssh服务,并用expect来自动输入用户信息。
sudo apt-get install autossh expect
cat /bak/bin/autossh.sh
#!/bin/bash
HOST="<ssh-server>"
USER="<ssh-user>"
PASS="<password>"
CMD=$@
VAR=$(expect -c "
spawn /usr/bin/autossh -M 2000 -N -v -D 127.0.0.1:7070 $USER@$HOST $CMD
match_max 100000
expect \"*?assword:*\"
send -- \"$PASS\r\"
send -- \"\r\"
expect eof
")
echo "==============="
echo "$VAR"
它最终会生成下列两个进程:
/usr/lib/autossh/autossh -M 2000 -N -v -D 127.0.0.1:7070 <ssh-user>@<ssh-server>
/usr/bin/ssh -L 2000:127.0.0.1:2000 -R 2000:127.0.0.1:2001 -N -v -D 127.0.0.1:7070 <ssh-user>@<ssh-server>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quqi99

你的鼓励就是我创造的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值