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

分享几个简单易用的代理转发命令行工具吧

  •  
  •   sujin190 · 2020-07-14 11:01:58 +08:00 · 1271 次点击
    这是一个创建于 1622 天前的主题,其中的信息可能已经有所发展或是发生改变。

    平时偶尔会不能直接联网的机器上操作,想通过另外一台有外围的机器临时访问下外网,但是直接装个代理软件吧,配置麻烦不说,直接安装一个代理软件也有诸多不方便不合适,这时有个可以简单代理脚本就很需要了


    简单代理脚本,自动判断 http 或 socks5 代理请求,不支持用户密码验证,socks5 不支持 udp 代理

    python -m sevent.helpers.simple_proxy -h
    usage: simple_proxy.py [-h] [-b BIND] [-p PORT] [-t TIMEOUT]
    
    simple http and socks5 proxy server
    
    optional arguments:
      -h, --help  show this help message and exit
      -b BIND     bind host (default: 0.0.0.0)
      -p PORT     bind port (default: 8088)
      -t TIMEOUT  timeout (default: 7200)
    

    tcp 端口转发,支持同时转发多个端口

    python -m sevent.helpers.tcp_forward -h
    usage: tcp_forward.py [-h] [-L FORWARDS] [-t TIMEOUT]
    
    tcp port forward
    
    optional arguments:
      -h, --help   show this help message and exit
      -L FORWARDS  forward host, support multi args (example: 0.0.0.0:80:127.0.0.1:8088)
      -t TIMEOUT   timeout (default: 7200)
    

    tcp 端口流量通过远程 http 或 socks5 代理转发到远程服务器

    python -m sevent.helpers.tcp2proxy -h
    usage: tcp2proxy.py [-h] [-b BIND] [-p PORT] [-t TIMEOUT] [-T {http,socks5}]
                        [-P PROXY_HOST] [-f FORWARD_HOST]
    
    forword tcp port to http or socks5 proxy
    
    optional arguments:
      -h, --help        show this help message and exit
      -b BIND           bind host (default: 0.0.0.0)
      -p PORT           bind port (default: 8088)
      -t TIMEOUT        timeout (default: 7200)
      -T {http,socks5}  proxy type (default: http)
      -P PROXY_HOST     proxy host (default: 127.0.0.1:8088)
      -f FORWARD_HOST   remote forward host (default: 127.0.0.1:80)
    

    开启简单 http 和 socks5 代理服务器,并通过另外一个 http 或 socks5 代理服务访问远程服务器

    python -m sevent.helpers.proxy2proxy -h
    usage: proxy2proxy.py [-h] [-b BIND] [-p PORT] [-t TIMEOUT] [-T {http,socks5}]
                          [-P PROXY_HOST]
    
    simple http and socks5 proxy forward to http or socks5 proxy
    
    optional arguments:
      -h, --help        show this help message and exit
      -b BIND           bind host (default: 0.0.0.0)
      -p PORT           bind port (default: 8088)
      -t TIMEOUT        timeout (default: 7200)
      -T {http,socks5}  proxy type (default: http)
      -P PROXY_HOST     proxy host (default: 127.0.0.1:8088)
    

    项目地址 https://github.com/snower/sevent/tree/master/sevent/helpers

    代理协议都只实现了最简单的,但是临时使用大概也够了

    10 条回复    2020-07-14 18:30:02 +08:00
    amajia
        1
    amajia  
       2020-07-14 11:11:01 +08:00
    我都是 ssh -L
    sujin190
        2
    sujin190  
    OP
       2020-07-14 11:15:49 +08:00
    @amajia #1 -L 端口转发是很好用,-D 能开 socks5 代理,唯一美中不足就是不能开 http 代理啊,但是端口通过另外一台代理服务器转发到远程服务器有时还是很需要的呐
    sujin190
        3
    sujin190  
    OP
       2020-07-14 11:17:31 +08:00
    @amajia #1 比如内网机器想发告警邮件啥的,可以把阿里 qq 的发件地址解析到本地端口来转发似乎是个快捷好方法啊
    scukmh
        4
    scukmh  
       2020-07-14 13:44:42 +08:00
    emmmmmm, 那个 gost 不香吗?
    byzf
        5
    byzf  
       2020-07-14 17:42:27 +08:00
    ssh -D 支持 http 啊, 临时用用可以, 速度很慢.
    imdong
        6
    imdong  
       2020-07-14 17:49:00 +08:00
    如果没记错,frp 跑起来也就几分钟吧?

    配置几行?
    sujin190
        7
    sujin190  
    OP
       2020-07-14 17:57:01 +08:00
    @imdong #6 但重点是也许你并不能在这台机器上安装软件,或者安装了之后有安全风险,脚本嘛,crtl-C 或者终端退出后就安全了
    sujin190
        8
    sujin190  
    OP
       2020-07-14 17:59:44 +08:00
    @byzf #5 是么?直接支持还是需要啥额外参数呢?我看各种都说 socks5 协议的啊,ssh 这种软件不大可能实现成自动判断请求类型的吧

    这个脚本的性能嘛应该是很好的
    byzf
        9
    byzf  
       2020-07-14 18:29:06 +08:00
    @sujin190 设环境变量后, curl...
    byzf
        10
    byzf  
       2020-07-14 18:30:02 +08:00
    @sujin190 用 ss 等一秒的页面大概要等十秒吧.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2562 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:40 · PVG 14:40 · LAX 22:40 · JFK 01:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.