注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

vpn+squid搞定内网才能访问的svn  

2015-12-20 22:26:24|  分类: JAVA/PHP/Nginx/T |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://www.cnblogs.com/kinga/p/4782412.html

目录

前言

一、squid安装和使用

二、本机的svn代理设置


 

前言

今天由于要修改公司项目的配置文件,于是不得不秒登vpn,登上svn跳板机,把要修改的文件update下来。修改完成后,在跳板机上传,最后再经过几道程序,终于更新到线上了。

对于不能在个人电脑上update公司svn的代码,着实有些不方便。当然公司是为了代码安全考虑,多加一点防范,我们是可以理解的。

于是,又开始琢磨怎么把svn的代码搞到本机。其实,这问题蛮简单的,只要对于网络知识和代理有了解的话,是很容易想出解决方案的。奈何,技术深似海,除了工作,平时实操过少,此刻用时方恨少。

我掌握的资源/拥有的工具:公司vpn,公司开发环境账号权限(有sudo权限哦),svn地址。开发环境是centos系统的虚拟机。

解决方案:由于svn通过公司内网可以直接访问,所以在内网的开发环境部署一个代理服务器,然后在本机通过vpn把请求转发给代理服务器,由代理服务器去请求svn服务器。搞定!

这是我想的解决方案。(这尼玛算是什么解决方案,这是常识,常识!博主在这方面是个小菜~别人家还通过代理服务器抢火车票呢,通过代理服务器绕过公司对某宝某云的限制,在轻轻松松happy呢)我想这事也都有几个月,至今才决定动手搞一下,毕竟实在是太不方便了。


 

一、squid安装和使用

1. 开发环境用的代理服务器软件是squid。squid安装和使用步骤简单归纳如下:

I. 下载并安装。有两种方法。

第一种是直接在控制台输入"yum install -y squid"(要用root账号或者sudo执行该命令)。

第二种是在官网下载源代码,然后自己make和install。

前者会比较方便,一个命令解决所有繁琐的事情。因为第二种安装后,你还要创建squid组和squid账号,并手动将安装目录的owner和group改成squid,且不会把squid和squidclient放到path,要自动手动弄个软链接。说不定还有其他问题。

II. 修改配置文件squid.conf。

如果I中第一种方式安装,安装目录是在/usr/bin,squid.conf文件是在/etc/squid.

第二种方式安装的,安装目录则是在/usr/local/squid下,squid.conf是在/usr/local/squid/etc/.

配置文件的改动如下:

去掉cache_dir前面的注释符即可,其指定的路径和数值可以不修改。默认端口是3128

配置文件的改动可以就这么多。至于access_log和cache_log会默认在/var/log/squid或/usr/local/squid/var/logs.

当然,为了考虑性能,缓存大小,最大缓存的文件大小等也可以指定。

由于我是使用vpn访问的开发环境,属于内网,应该http_access按照默认就搞定了。如果是外网访问squid代理服务器的,将自己的ip加入acl即可(关于acl可百度百科),或者直接定义"http_access allow all",这样任何ip都可访问。注意,http_access是按照定义顺序检查的,有符合条件的其他http_access就不检查了。

更多的配置项可见如下文章,都是比较清晰的:

Squid.conf配置文件详解

squid介绍及其简单配置

III. 对配置进行检查。执行命令"squid -k parse",看下有没有报error,没有就可以了。第二种方式应该会提示"command not found"之类的,那是因为squid执行文件并没有被配置到path路径中。我们可以手动在/usr/bin或者/usr/local/bin,执行"ln -sf /usr/local/squid/sbin/squid squid"。对第IV步也是如此,执行"ln -sf /usr/local/squid/bin/squidclient squitclient". 

IV. 执行"squid -N -d1". 这是让squid在前台运行。如果有报error就先修正,如果没有则在另一个控制台执行"squidclient http://www.cnblogs.com/kinga". 能顺利获取到内容就说明配置正确了。我们ctrl+c结束掉进程。

VI. 执行"squid -s". 这是让squid在后台运行。至此,大功告成。

2. 事实上,事情没有这么顺利,我耗了半天,才真正完成整个解决方案。以下,是我在安装或使用squid遇到的几个错误:

I. 诸如not permisson to create swap之类的没权限干嘛干嘛。编译和安装的时候应是对目录没权限,所以建议用sudo执行或用root账号执行。运行的时候回建议你用squid账号,所以是squid的安装目录,squid账号没权限。此刻,只要"chown squid -R /usr/local/squid/*"和"chgrp squid -R  /usr/local/squid/*"即可。

II. 报错:squid: Could not determine fully qualified hostname. Please set 'visible_hostname'。在squid.conf添加"visible_hostname asyoulike",名字随你喜欢。

III. 报错:Ipc::Mem::Segment::create failed to shm_open(...): (2) No such file or directory. 这个在squid-cache wiki有给出解决方案,没试过,因为后面也不知道这个问题就不在了。

更多的报错解决方案,可以见如下文章:

squid-cache wiki下的Feature: SMP Scalability

Squid故障与解决方法汇总


 

二、本机的svn代理设置

1. 对于我的需求,我要先试下在本机能不能访问公司的svn。

所以,我先登上vpn,然后打开一个浏览器,设置squid代理服务器的ip和端口信息。这里,我用的是火狐,在火狐上用的是AutoProxy插件,真心方便。贴图如下:

 

2. 铛铛~顺利拉到svn目录。接下来,就在svn客户端设置一下代理信息就可以了。

我的是windows 7,安装的svn客户端是TortoiseSVN,其配置文件在%APPDATA%\Subversion. 我们可以在cmd下通过"echo %APPDATA%"得出其具体路径,我的是C:\Users\Administrator\AppData\Roaming\Subversion. 贴图如下:

打开servers配置文件,修改这几个值:

http-proxy-host = xxx
http-proxy-port = xxx
http-proxy-username = xxx
http-proxy-password = xxx

3. 保存配置文件的修改,大功告成。之后,我们就可以很愉快地把svn代码update到本机上了。O(∩_∩)O哈哈~

最后,再献上一个站点,里边有《Squid中文权威指南》的电子版。书的第5章就很详细讲了怎么安装squid。其他章节大家也可以看下,深入了解squid。

  评论这张
 
阅读(180)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018