V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yueyoum
V2EX  ›  程序员

make-proxy 2.0.0 版本更新

  •  
  •   yueyoum ·
    yueyoum · 2014-11-09 23:42:52 +08:00 · 2766 次点击
    这是一个创建于 3454 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/yueyoum/make-proxy

    这是我当初学习erlang时候的一个产品,socks5代理
    一直稳定用了一年半了,

    它的特点就是速度快,服务器资源消耗少
    最近将其更新到了 2.0.0 版本。

    新版本最大的变化就是采用了 aes_cbc128 的方式来加密传输数据。

    在1cpu, 512mb内存的VPS上测试
    本地同时开两个 youtube 1080p 视频,能够轻松顺畅观看。
    并且server端只占用16MB内存。以及1%的CPU
    27 条回复    2015-01-20 11:53:41 +08:00
    daiv
        1
    daiv  
       2014-11-10 00:33:45 +08:00
    哇,看起来还蛮简单的,不是道和ss有什么区别
    kurtrossel
        2
    kurtrossel  
       2014-11-10 01:08:17 +08:00
    翻墙姿势永远不嫌多,多谢楼主分享!
    qiang2k
        3
    qiang2k  
       2014-11-10 09:31:23 +08:00
    有windows客户端吗?喜欢各种姿势,谢谢
    yueyoum
        4
    yueyoum  
    OP
       2014-11-10 10:32:20 +08:00
    @daiv ss我没怎么关注, 估计都差不多。
    原理是一样的, 本地流量发到本地代理,本地代理加密数据发送到国外的服务器,服务器去到真正的数据后再返回给本地代理,最后本地代理返回给应用
    yueyoum
        5
    yueyoum  
    OP
       2014-11-10 12:53:32 +08:00   ❤️ 1
    @kurtrossel
    希望还是有更多的人能参与
    yueyoum
        6
    yueyoum  
    OP
       2014-11-10 12:54:16 +08:00
    @qiang2k

    在windows机器上安装 erlang 环境
    然后按照 配置设置好, 并且照着 start_client.sh 写一个 start_client.bat 就可以了
    septem123
        7
    septem123  
       2014-11-11 09:31:54 +08:00
    终于出windows版本了么
    yueyoum
        8
    yueyoum  
    OP
       2014-11-11 10:02:34 +08:00
    @septem123

    没 我代会写一个 start_client.bat 后 windows机器也可用了。
    等弄好了 ,通知你
    lbp0200
        9
    lbp0200  
       2014-11-20 14:32:35 +08:00
    按照文档部署好了,一直连不上,不知如何调试,找不到问题点
    yueyoum
        10
    yueyoum  
    OP
       2014-11-20 18:50:52 +08:00
    @lbp0200

    你把 server.conf 和 client.conf 贴出来看看
    lbp0200
        11
    lbp0200  
       2014-11-21 08:43:16 +08:00
    client
    [
    {
    make_proxy_client,
    [
    {remote_addr, "serverip"},
    {remote_port, 7071},
    {local_port, 7070},
    {key, "key"}
    ]
    }
    ].
    server
    [
    {
    sasl,
    [
    {sasl_error_logger, {file, "server.log"}}
    ]
    },
    {
    make_proxy_server,
    [
    {port, 7071},
    {key, "key"}
    ]
    }
    ].
    yueyoum
        12
    yueyoum  
    OP
       2014-11-21 10:09:33 +08:00
    @lbp0200

    key 应该是 16 bytes 长度的, 就如example中的,“1234567890abcdef”

    如果还链接不上, 你在server 上 ps -ef | grep make_proxy 一下
    看看输出有无 erl 进程
    lbp0200
        13
    lbp0200  
       2014-11-21 12:06:36 +08:00
    @yueyoum OK了,O(∩_∩)O谢谢
    yueyoum
        14
    yueyoum  
    OP
       2014-11-21 12:30:43 +08:00
    @lbp0200 是不是 key 长度的问题?
    lbp0200
        15
    lbp0200  
       2014-11-21 13:21:45 +08:00
    @yueyoum 是的,如果能HTTP代理就更好了,apt-get就不用等太多的时间了,O(∩_∩)O~
    lbp0200
        16
    lbp0200  
       2014-11-21 14:57:20 +08:00
    @yueyoum 再问个问题,如何正确地与supervisord配合使用呢?
    yueyoum
        17
    yueyoum  
    OP
       2014-11-21 15:22:33 +08:00
    @lbp0200

    http 代理也是我想添加的个功能,但自己事情比较多,一直没添加,
    而且 有现成的 将 socks5 转换成 http 代理的程序,
    比如我用的 privoxy 就很好用, 配置简单。


    这个不用和 supervisord 配合, erlang 程序自己就有监督树,
    不会整个crash掉的,

    用了erlang 你会发现什么 redis, zeromq, rabbitmq, 都不用学了
    自己要考虑的 缓存,多进程,同步,分布式,都帮你做好了。
    你只要用就可以。

    所以用erlang的方式来思考, 抛弃supervisord!
    lbp0200
        18
    lbp0200  
       2014-11-21 15:31:32 +08:00
    好高大上,那我只需要新增一条开机启动脚本就可以了
    jiaoyang2008
        19
    jiaoyang2008  
       2015-01-19 11:11:41 +08:00
    @yueyoum,你好,我部署完成后,dai理不成功,不知道问题出在哪里
    jiaoyang2008
        20
    jiaoyang2008  
       2015-01-19 12:56:35 +08:00
    @yueyoum,windows客户端麻烦给我发一个,谢谢
    yueyoum
        21
    yueyoum  
    OP
       2015-01-19 18:25:12 +08:00
    @jiaoyang2008

    首先确保 你在服务器上运行的 server, 本地运行的是 client
    然后 server.config, client.config 中的端口, key 都要对应起来。key必须是 16个字符

    如果这些都没问题,那么请发一下的 config 配置文件, 我看看

    关于 windows ,我都是在 windows安装的 erlang 运行环境,
    然后 参照 Makefile 中 client 那段
    用 erlc 把需要文件编译一遍
    然后手动启动的。

    我最近写个 上传个bat文件吧, 这样也方便一点
    jiaoyang2008
        22
    jiaoyang2008  
       2015-01-19 20:58:27 +08:00
    @yueyoum 你好,我的配置文件如下:
    server.config:
    [
    {
    sasl,
    [
    {sasl_error_logger, {file, "server.log"}}
    ]
    },
    {
    make_proxy_server,
    [
    {port, 8080},
    {key, "1111111111111111"}
    ]
    }
    ].

    server端已经运行起来了:beam.smp 29738 root 8u IPv4 271963369 0t0 TCP *:http-alt (LISTEN)
    client.config:

    [
    {
    make_proxy_client,
    [
    {remote_addr, "209.148.*.*"},
    {remote_port, 8080},
    {local_port, 7070},
    {key, "1111111111111111"}
    ]
    }
    ].

    client端也运行起来了:beam.smp 30152 root 8u IPv4 15795455 0t0 TCP *:7070 (LISTEN)

    但是设置好daili后访问网站打不开网页,提示
    firefox can't establish connection to the server at yahoo.com..........
    yueyoum
        23
    yueyoum  
    OP
       2015-01-19 21:39:53 +08:00
    @jiaoyang2008

    你浏览器 是不是设置的 socks5 代理? 注意 socks 有 v4 v5 两个版本

    然后 代理服务器地址是 127.0.0.1 端口是 7070
    jiaoyang2008
        24
    jiaoyang2008  
       2015-01-19 21:53:10 +08:00
    @yueyoum ,你好,客户端我用的firefox,daili设置为socks5,代理服务器地址是 127.0.0.1 端口是 7070
    jiaoyang2008
        25
    jiaoyang2008  
       2015-01-19 21:58:14 +08:00
    @yueyoum ,你有别的联系方式吗
    yueyoum
        26
    yueyoum  
    OP
       2015-01-19 22:06:34 +08:00
    @jiaoyang2008
    QQ 330912736
    jiaoyang2008
        27
    jiaoyang2008  
       2015-01-20 11:53:41 +08:00
    资源占用很少,速度很快,很好用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3357 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:58 · PVG 19:58 · LAX 04:58 · JFK 07:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.