现在公司局域网内有一个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.
在Laravel开发中,我们可能需要通过SSH隧道连接到数据库、执行命令或进行其他远程操作,而`laravel-ssh-tunnel-fixed`则为此提供了方便。 首先,我们需要安装`laravel-ssh-tunnel-fixed`扩展。在你的项目根目录下,...
在本场景中,我们探讨如何使用SSH Tunnel连接到MySQL服务器,尤其在只能通过内网地址访问数据库的情况下。 首先,我们需要理解SSH Tunnel的基本概念。SSH Tunnel创建了一个安全的通道,允许本地端口上的数据流量被...
### JMeter通过SSH连接远程数据库解决方案 ...通过以上步骤,可以有效地利用JMeter实现SSH连接,并进一步通过SSH隧道访问远程数据库。这种方式不仅能够满足项目需求,同时也提供了一种安全可靠的解决方案。
SSH隧道作为Kubernetes服务 创建一个Kubernetes服务/部署/ ConfigMap,以将SSH隧道作为... 下一步,您的Kubernetes集群应该有一个侦听端口3306的主机ssh-tunnel-service-mysql.svc.cluster.local 。 执照 麻省理工学院
kafkatunnel.py 通过ssh隧道访问kafka / zookeeper,以使用和生成本地计算机上的消息要求您需要python3才能使用kafkatunnel.py python3 点3 注意:对于AWS模式:您需要使用Name = kafka / zookeeper标记ec2 ...
$ docker run -d -p 8080:8080 --name="tunnel" youssefkababe/ssh-tunnel 然后将您的浏览器或系统配置为使用您服务器的 IP 地址在端口 8080 上连接到您的 Socks 代理。 您可以像这样停止和启动隧道: $ docker ...
总的来说,"django-ssh-tunnel-database-connector-0.3.5"是一个专为Django设计的数据库连接器,通过SSH隧道提供安全的数据库访问,适用于后端开发中对数据安全有高要求的场景。它的使用涉及Python、Django框架、SSH...
SSH的的Port Forward,中文可以称为端口转发,是SSH的一项非常重要的功能。它可以建立一条安全的SSH通道,并把任意的TCP连接放到这条通道中。
使用此文件配置ssh代理,配置git通过proxy访问github
用于管理SSH隧道的GUI
SSH终端,文件传输和隧道工具。 重点是在隧道内部运行隧道。 那必须跳过几台机器。 请参阅Wiki页面以获取文档。 https://sourceforge.net/p/doffensshtunnel/wiki/Home/
使用Qt 4管理SSH隧道的GUI。
RSTunnel(可靠的SSH隧道)使您可以在安全且加密的隧道中在两个网络之间的数据之间建立隧道。 它使用SSH连接两台计算机。 这将为您设置一个隧道,并确保其持续运行。
4. **远程服务器管理**:通过SSH,可以集成到终端模拟器(如Tmux、Screen)或者SSH客户端工具(如SSH Tunnel、MobaXterm),实现多会话管理和端口转发。 5. **容器化环境**:在Docker或Kubernetes中,SSH可用于容器...
本地隧道服务器 localtunnel将您的localhost公开给全世界,以便于测试和共享! 无需搞砸DNS或进行部署,只需让其他人测试您的更改即可。 此仓库是服务器组件。 如果您只是在寻找CLI localtunnel应用程序,请参阅...
Laravel SSH隧道通过SSH隧道访问远程主机上的服务! 例如,多年来人们一直在问如何在PHP中通过SSH连接到MySQL服务器。我们遇到了类似的挑战,特别是通过SSH隧道访问MySQL数据库,所有的问题和解答都有助于找到解决...