现在公司局域网内有一个subversion server,日常开发的代码都在里面,在外网是不能访问的。但有时需要在家里更新和提交代码,这时就有一些麻烦了,公司IT提供了VPN,但只有windows版本,我的linux box不能安装,而且日常工作环境都是linux了。还好还有运维的兄弟为我打开了一个ssh端口,这样就可以通过这个口正常使用svn了。
现在问题变成了如何让svn能够使用ssh tunnel了,大家知道,svn可以直接通过ssh读取svn库,但需要在svn server上直接开ssh端口,我们的环境不是这样的;另外svn可以设置代理,但目前只支持HTTP/HTTPS代理,而ssh tunnel开通用代理时,是一个socks5代理,svn不支持。
网上找了一下,linux环境下可以通过一些socks包装工具来包装应用程序,使不支持socks代理的应用,可以透明的使用socks代理。比较早的有tsocks,可惜不更新了,现在群众比较推荐ProxyChains,使用上相当灵活,也不容易出错。以下记录下使用ProxyChains访问内网svn的步骤,供大家参考。
1、首先是安装ProxyChains(废话!)
在ubuntu中可以从源安装:
sudo apt-get install proxychains
2、配置ProxyChains
假设我的ssh tunnel将开在本地的19002(纯个人喜好,大于1024以上的端口均可),则新建一个/etc/proxychains.conf,加入以下内容:
tcp_read_time_out 15000
tcp_connect_time_out 10000
[ProxyList]
socks5 127.0.0.1 19002
3、打开ssh tunnel
我使用以下命令打开tunnel:
$ ssh -qTfnN -D 19002 username@58.xx.xxx.xxx -p 18022
以上58.xx.xxx.xxx是公网IP,18022是公网的端口,如果是默认的22端口,则-p段可以不写。
4、使用svn
只要在任意命令前面加上proxychains,即可使用配置的socks代理,而不需要其它设置。
如我们使用svn更新代码:
$ proxychains svn up
提交代码:
$ proxychains svn ci -m "修改xxx"
可以看出,只需要在正常的svn工作目录上,通过加上proxychains前缀命令,即可和在内网中一样使用subversion。实际上,通过proxychains可以很方便的访问内网其它服务,如:
访问ssh:
$ proxychains ssh root@192.168.1.8
使用telnet:
$ proxychains telnet 192.168.1.5
访问ftp:
$ proxychains ftp 192.168.1.3
分享到:
相关推荐
完全免费开源,软件直接在google 上即可下载,当 Mobaxterm 的开源版本不满足需求的时候,可以使用该软件作为替代。并且该软件很小,也才只有7M左右。
怎样用putty设置SSH tunnel 凡是不晓得SSH为何物的朋友可以略过,也可以google SSH开始了解它。这儿不重复了。
this is a free tunnel software, very portable, fast and eazy to use, please search the web for how to install, configure it.
在某些情况下,我们只能知道数据库的内网地址,无法通过内网连接,但是我们可以登录同一个内网的其他机器,并且这些机器能够在内网访问数据库,那么我们可以通过ssh tunnel的方法来访问数据库。 用法 ssh tunnel的...
Laravel开发-laravel-ssh-tunnel-fixed 轻松创建和维护Laravel/Lumen的SSH隧道
SSH的的Port Forward,中文可以称为端口转发,是SSH的一项非常重要的功能。它可以建立一条安全的SSH通道,并把任意的TCP连接放到这条通道中。
使用此文件配置ssh代理,配置git通过proxy访问github
kafkatunnel.py 通过ssh隧道访问kafka / zookeeper,以使用和生成本地计算机上的消息要求您需要python3才能使用kafkatunnel.py python3 点3 注意:对于AWS模式:您需要使用Name = kafka / zookeeper标记ec2 ...
Laravel SSH隧道通过SSH隧道访问远程主机上的服务! 例如,多年来人们一直在问如何在PHP中通过SSH连接到MySQL服务器。我们遇到了类似的挑战,特别是通过SSH隧道访问MySQL数据库,所有的问题和解答都有助于找到解决...
用于管理SSH隧道的GUI
SSH终端,文件传输和隧道工具。 重点是在隧道内部运行隧道。 那必须跳过几台机器。 请参阅Wiki页面以获取文档。 https://sourceforge.net/p/doffensshtunnel/wiki/Home/
SSH隧道作为Kubernetes服务 创建一个Kubernetes服务/部署/ ConfigMap,以将SSH隧道作为... 下一步,您的Kubernetes集群应该有一个侦听端口3306的主机ssh-tunnel-service-mysql.svc.cluster.local 。 执照 麻省理工学院
使用Qt 4管理SSH隧道的GUI。
RSTunnel(可靠的SSH隧道)使您可以在安全且加密的隧道中在两个网络之间的数据之间建立隧道。 它使用SSH连接两台计算机。 这将为您设置一个隧道,并确保其持续运行。
资源来自pypi官网。 资源全名:django-ssh-tunnel-database-connector-0.3.5.tar.gz
本地隧道服务器 localtunnel将您的localhost公开给全世界,以便于测试和共享! 无需搞砸DNS或进行部署,只需让其他人测试您的更改即可。 此仓库是服务器组件。 如果您只是在寻找CLI localtunnel应用程序,请参阅...
ssh-tunnel-link是一个docker映像,用于通过ssh-tunnels在不同主机之间链接docker容器。 这使您可以连接到远程主机上已在运行的容器,而不必在本地或公开地公开端口。 您甚至可以使用它来连接到本地运行的容器,而...
Python编写实现SSH的反proxy Tunnel 具体描述可以看我的博客
mac版本SSH+Tunnel_16.07_xclient.info--安装xclient.info密码