有时候需要连接某机器,但是直接连被屏蔽了,虽然可以用代理来搞定一些应用程序,但是很多程序不支持代理,或者只支持某些类型的代理,这时候就可以试一试 proxychains 这个软件了。

最近用各种脚本下载东西的时候发现有的站点需要当地IP才能下,比如…..nico, youtube等;所以就找了下能在终端用socks5代理的工具,最后找到了proxychains,配合shadowsocks,从此再无压力=w=

比如:svn 只支持 HTTP 代理,不支持 socks4 代理,svn+ssh 方式也挺麻烦的。如果只有 socks 代理,就不能直接使用,可以用一个 socks 转 HTTP 代理软件的,但是需要在 ~/.subversion/servers 里配置。此时用 proxychains 这个东西就更方便。

proxychains 用起来就像 time, strace, ccache 等命令那样,直接作为其他命令的前缀来使用。程序在代理的环境下被加载运行,本身不需要支持代理。

使用 proxychains 当然要先有代理,如果你有一台能 ssh 上去的 unix 主机,就可以用它来做代理:

ssh -D 连到nen能访问目标网络的机器,就能开个 socks4 动态转发代理。具体命令:

$ ssh -Nf username@hostname -D 61000
解释:
-N 不执行命令
-f 跑到后台执行
-D 61000 监听 localhost:61000 端口,把一切请求转发给被连的服务器

只要这个 ssh 进程不被 kill,机器不被重启,这个代理就有效。

下面 proxychains的安装和使用

proxychains 的安装配置使用过程如下:

配置编译安装,i修改该配置文件 /etc/proxychains.conf,找到这一段:

默认的socks4 127.0.0.1 9095是tor代理,而socks5 127.0.0.1 1080是shadowsocks的代理。

102 #       socks5  192.168.67.78   1080    lamer   secret
103 # http 192.168.89.3 8080 justu hidden
104 # socks4 192.168.1.49 1080
105 # http 192.168.39.93 8080

[ProxyList]
# add proxy here ...
# meanwile
# defaults set to "tor"
socks4  127.0.0.1 61000

这个 61000 就是刚才 ssh -D 的那个端口参数 。

不要 DNS 代理,所以去掉了

# Proxy DNS requests - no leak for DNS data
# proxy_dns

安装配置好,输入

$ proxychains svn co https://.....
object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored

有问题,仔细想才发现机器是 x86_64,svn 装的却是 32 位的,库又被编译成 64 位的,自然加载不了。

于是编译了一个32 位的放上去,好了。

然后设置一下 alias,就更省事了:
alias svn='proxychains svn'

proxychains 原理很简单,用环境变量 LD_PRELOAD 来 hook 库函数,主要是 connect
函数。另外也 hook 了dns 相关的以下函数,用来做 dns 代理,我用不到也就不关心了。

proxychains 的可执行文件是个脚本,内容很简单,就是设置一下 LD_PRELOAD 再去 exec $@,开头有一行 logo 输出,可以去掉。

对于非 root,so 可以安装在用户目录下,proxychains 脚本也可以装在 ~/bin 下,修改一下内容,加载正确的 so 即可

proxychains 支持配置文件,文件名为 proxychains,搜索依次顺序为 ., ~, /etc,具体选项可以看其范例

proxychains的更多相关文章

  1. 利用proxychains在终端使用socks5代理

    最近用各种脚本下载东西的时候发现有的站点需要当地IP才能下,比如.....nico, youtube等: 所以就找了下能在终端用socks5代理的工具,最后找到了proxychains,从此再无压力= ...

  2. 使用proxychains 代理终端

    最近在国外的vps上搭建了一个ss服务器,在浏览器里面设置socks5代理上网很方便, 但是终端里面却只支持http方式的代理配置,网上有socks转http代理的方式,但是最近发现一个更为简单的方式 ...

  3. Kali proxychains

    1.什么是proxychains 在linux系统中有很多软件是不支持代理的,但是proxychains 却可以让不支持代理的软件 也能走代理通道,支持HTTP,HTTPS,SOCKS4,SOCKS5 ...

  4. sockets+proxychains代理,使内网服务器可以访问外网

    Socks5+proxychains做正向代理 1.         应用场景: 有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理. 2.         软件 ...

  5. Ubuntu proxychains && setProxy及 unsetProxy

    https://www.socks-proxy.net/ (ubuntu proxy )[ lantern -addr 0.0.0.0:8787 proxychains4 printenv http: ...

  6. Kali-linux设置ProxyChains

    ProxyChains是Linux和其他Unices下的代理工具.它可以使任何程序通过代理上网,允许TCP和DNS通过代理隧道,支持HTTP.SOCKS4和SOCKS5类型的代理服务器,并且可配置多个 ...

  7. 用PROXYCHAINS实现SSH全局代理

    NUX下可以实现SSH全局代理的软件有tsocks和proxychains两种,但是个人感觉proxychains要更加稳定简单. $ yum install proxychains # vim /e ...

  8. kali2018利用ss和ProxyChains实现任意应用代理

    第一步:配置ss 第二步:配置proxychain vim /etc/proxychains.conf 第三步:使用proxychains 终端输入: proxychains firefox 通过代理 ...

  9. Proxychains安装

    没有管理员权限 1.建立文件夹proxychains,并进入下载 mkdir proxychains cd proxychains wget https://sourceforge.net/proje ...

随机推荐

  1. ios开发之--VC的生命周期

    当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序 1. alloc                                   创建对象,分配空间 2.init (initWit ...

  2. 使用dshow捕获摄像头图像

    #include "stdafx.h" #include <DShow.h> #include <Guiddef.h> #include <strmi ...

  3. DrawCall 优化 .

    unity3D 对于移动平台的支持无可厚非,但是也有时候用Unity3D 开发出来的应用.游戏在移动终端上的运行有着明显的效率问题,比如卡.画质等各种问题.自己在做游戏开发的时候偶有所得.对于主要影响 ...

  4. Nginx 72万连接性能测试(一)

    转自:http://my.oschina.net/chenzhuo/blog/150200?p=2#comments 根据系统内存64G估算单台tengine做反向代理最高支持72万连接.为了验证达到 ...

  5. Python网络编程笔记

    01. UDP(user datagram protocol)用户数据报协议 01. 特点 01. 无连接 02. 不可靠 03. 每个被传输的数据报必须限定在64KB之内 02. 优点:效率高s 缺 ...

  6. 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前

    //使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前 //2008年03月15日 星期六 02:35 public string DateStringFromNow(DateTim ...

  7. Form表单验证神器: BootstrapValidator

    前言:做Web开发的我们,表单验证是再常见不过的需求了.友好的错误提示能增加用户体验.博主搜索bootstrap表单验证,搜到的结果大部分都是文中的主题:bootstrapvalidator.今天就来 ...

  8. x64免签名驱动程序

    DSEFix GitHub https://github.com/hfiref0x/DSEFix

  9. 使用kendynet编写网关服务

    网游服务器大多提供了网关服务,用于作为用户和内部服务器组之间通信代理.网关服务一方面将用户消息从客户端分发到正确的内部服务器. 另一方面将来自内部服务器的数据包转发给客户端.一般对于网关应用来说,压力 ...

  10. Win8交互UX——触摸板交互

    针对触摸输入优化 Window 应用商店应用设计,并在默认情况下获得触摸板支持. 设计用户可以通过触摸板交互的 Windows 应用商店应用. 触摸板结合间接的多点触控输入和指针设备(如鼠标)的精确输 ...