heiher
V2EX  ›  科技

FSH - 开源的私有网络间 Linux 主机互访工具

  •  
  •   heiher · Nov 20, 2018 · 2145 views
    This topic created in 2800 days ago, the information mentioned may be changed or developed.

    分享一个开源小项目,用于穿透 NAT,在私有网络间进行 Linux 主机互访,支持:

    1. Shell 终端 - 简单的 Shell 终端访问,类似 telnet
    2. TCP 端口转发 - 可转发任意 TCP 端口,被控端支持黑、单名单控制

    源代码

    使用示例

    1. Shell 终端
      # 被控端
      fsh -f 50.116.0.210
      
      # 主控端
      fsh 50.116.0.210/TOKEN
      
    2. TCP 端口转发
      # 被控端
      fsh -f -p 50.116.0.210
      
      # 主控端
      # 将被控端 127.0.0.1:22 映射至本地 2200
      fsh -p 2200:127.0.0.1:22 50.116.0.210/TOKEN
      
      # SSH 便捷模式
      # 配置
      vim ~/.ssh/config
      Host remote-hostname
      	ProxyCommand fsh -p 127.0.0.1:22 50.116.0.210/TOKEN
      
      # 访问
      ssh remote-hostname
      scp file remote-hostname:
      

    编译及详细使用方法

    开放服务器: 50.116.0.210

    如发现问题,请您发 Issue :)

    4 replies    2018-11-21 12:03:42 +08:00
    wwqgtxx
        1
    wwqgtxx  
       Nov 21, 2018 via iPhone
    有打算支持 nat 打洞么
    heiher
        2
    heiher  
    OP
       Nov 21, 2018
    @wwqgtxx 如果能支持 P2P 模式应该会更好,但有点复杂,好像 TCP 协议的 NAT 打洞实现技术难度有点大,通用性也不好,而基于 UDP 的话又需要在应用层实现类似 TCP 的传输控制。
    wwqgtxx
        3
    wwqgtxx  
       Nov 21, 2018 via iPhone
    @heiher udp 传输控制成熟的方案很多,最简单的办法就是直接用原版的 kcp 协议
    heiher
        4
    heiher  
    OP
       Nov 21, 2018 via Android
    @wwqgtxx 感谢,我去看看 kcp 协议。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5339 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 07:07 · PVG 15:07 · LAX 00:07 · JFK 03:07
    ♥ Do have faith in what you're doing.