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

py3 整了一个内网端口通过公网转发的工具,有需要的拿去

  •  1
     
  •   ryanking8215 ·
    ryanking8215 · 2016-01-07 10:07:56 +08:00 · 5904 次点击
    这是一个创建于 3245 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/ryanking8215/my_turn.git

    自己跑了一天多 ssh 连内网服务器,没啥问题,用 asyncio 撸的。
    27 条回复    2016-02-29 22:34:33 +08:00
    vaNo
        1
    vaNo  
       2016-01-07 11:35:26 +08:00
    顶一个
    skydiver
        2
    skydiver  
       2016-01-07 11:44:49 +08:00
    README 这英文……还是直接中文算了……
    he11owor1d
        3
    he11owor1d  
       2016-01-07 12:15:23 +08:00 via iPhone
    我也想吐槽 readme
    leavic
        4
    leavic  
       2016-01-07 12:38:34 +08:00
    这个,是完全通过公网服务器转发流量的吧,
    有没有什么方法可以只通过公网服务器建立连接,但之后就直连呢?
    nevernet
        5
    nevernet  
       2016-01-07 12:52:16 +08:00
    为啥不直接 iptables 呢?
    hick
        6
    hick  
       2016-01-07 12:59:05 +08:00
    @nevernet 我也没大完整理解, 他这个貌似是把用户请求到中转 server, 中转 server 再和内网的 client 通信处理用户请求. 中转 server 可以是一台国外的 vps .


    iptables 我间接接触过不熟, 还能内网 client 不主动请求建立连接, 就把外网的请求转发到内网 client 上?
    felix021
        7
    felix021  
       2016-01-07 13:02:30 +08:00   ❤️ 1
    @leavic UDP 打洞
    felix021
        8
    felix021  
       2016-01-07 13:03:10 +08:00
    这个为毛要用 python 写,直接一个 ssh -R 不就搞定了吗?
    wowpanda
        9
    wowpanda  
       2016-01-07 13:14:42 +08:00
    @hick 为啥不直接连?非要用它这个中转 server ?既然是内网,那连外网都连不上去吧,怎么连上它这个 server ?
    taozhijiangscu
        10
    taozhijiangscu  
       2016-01-07 14:06:34 +08:00
    https://github.com/taozhijiang/local_forward

    我也做了,后面天天逛 V2 没时间继续做了。
    ryanking8215
        11
    ryanking8215  
    OP
       2016-01-07 14:12:36 +08:00
    @felix021 这个支持任何 tcp 端口转发,更通用一点。就 ssh 应用的话,-R 更合适吧

    @wowpanda 内网服务器当然要出外网才能用,但是不暴露在外网上。有些环境下你没办法碰到路由器设置端口映射, DMZ 啥的。
    hick
        12
    hick  
       2016-01-07 14:21:13 +08:00
    @wowpanda 是不是没看懂我的描述哈? 先确认下, 内网设置你家里一个 ADSL 下挂了若干设备, 比如一个 PC 一个笔记本, PC 和笔记本是一个局域网, 也就是内网. 怎么会连不上外网!? 只是外网用户不能直接连进来访问你 PC 和笔记本上的 80 端口; 当然很多路由提供转发功能, 但是显然很多场景下你没法设置路由转发.
    quix
        13
    quix  
       2016-01-07 15:37:40 +08:00
    ngrok 的又一个轮子
    zi
        14
    zi  
       2016-01-07 19:14:40 +08:00
    @leavic 好像 N2N 就是干这种事情
    raysonx
        15
    raysonx  
       2016-01-07 20:16:51 +08:00 via iPad
    明明 vpn+iptables 转发是干这事的
    ryanking8215
        16
    ryanking8215  
    OP
       2016-01-07 21:23:56 +08:00 via iPhone
    @raysonx 这方面不太了解,愿闻其详
    ryanking8215
        17
    ryanking8215  
    OP
       2016-01-07 21:30:32 +08:00 via iPhone   ❤️ 1
    @leavic 目前来说 tcp 的没有,都是 udp 穿透 nat ,现成的是 ICE 方法,然后在上跑一层 PseudoTcp 的实现可靠传输, libnice 和 libjingle 都是这个路子
    raysonx
        18
    raysonx  
       2016-01-07 21:43:21 +08:00   ❤️ 1
    @ryanking8215 VPN 的本質是隧道,使用 VPN 將本機与一台有公網 IP 的機器挂通後,直接使用 iptables 的 DNAT 轉發到本地的內網 IP 。
    jsq2627
        19
    jsq2627  
       2016-01-08 01:38:07 +08:00 via iPhone
    还是 vpn 方案最灵活啦
    xuhaoyangx
        20
    xuhaoyangx  
       2016-01-08 09:09:42 +08:00
    好一个中式英文,看起来好熟悉
    raptor
        21
    raptor  
       2016-01-08 09:10:49 +08:00
    VPN 才不灵活,两头都要配 iptables ,否则整个流量都到 server 上了。反正我是用 SSH -R ,只转发指定端口。
    raysonx
        22
    raysonx  
       2016-01-08 09:51:18 +08:00 via Android
    @raptor 基於 IPSec 的 VPN 方案可以設置只轉發指定協議和端口,靈活性很高。
    shizhenxiang
        23
    shizhenxiang  
       2016-01-08 10:11:47 +08:00   ❤️ 1
    master13
        24
    master13  
       2016-01-08 15:20:02 +08:00
    @taozhijiangscu V2 :怪我咯?
    snhfly
        25
    snhfly  
       2016-01-20 10:45:14 +08:00
    用 VPN 方案跟簡單點啊 https://www.flyvpn.com
    felix021
        26
    felix021  
       2016-02-01 10:00:15 +08:00
    @ryanking8215 不要说得好像 ssh 不支持任意 tcp 端口转发的样子嘛。
    lovedboy
        27
    lovedboy  
       2016-02-29 22:34:33 +08:00
    @felix021 ssh 需要外网 server 的 ssh 权限==
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5452 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:58 · PVG 13:58 · LAX 21:58 · JFK 00:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.