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

内网穿透工具(替代 ngrok 和花生壳)

  •  5
     
  •   lswang · 2019-11-08 10:25:29 +08:00 · 16015 次点击
    这是一个创建于 1602 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    由于 IPv4 资源的有限性,目前大部分的本地电脑都是没有公网 IP。所以想要访问自己的本地服务(ssh、http、vnc、NAS、智能家居接口回调 - 比如天猫精灵自定义语义),需要有个服务来进行内网穿透。 目前有一些工具比如花生壳、ngrok 等。但是,

    1. 花生壳是收费的;
    2. ngrok 第二版也开始收费(第一版据说有一些严重 bug)。

    所以,需要一款开源的方案( 当然还需要一个固定的公网 IP >_<)。

    解决方案

    本人用 netty 写了一个 tcp 的穿透工具叫 Tcp Through,直接下载可用。安装方式下面有介绍

    该项目分 server 端和 client 端,想要看详细信息的话,可以去 github 上查看

    这个工具有以下一些比较实用的功能

    1. 支持 http api 管理服务端,还支持 命令行来管理(自己写的 python 库,自己感觉还挺炫)
    2. 支持安全模式。只有在信任列表的 IP 地址才可以访问 client (防止攻击的最好方式)
    3. 支持速度限制,功能已经测试可用。只是目前在代码中没有限速,可自己修改代码,具体代码在 server 库中的 OuterServer 中,注释中有说明。
    4. client 可设定不允许 server 控制 (client 端的 isRemoteManage 参数)
    5. 支持查看实时速率(不需要用总量来计算)
    6. 管理通道进行了 SSL 加密,防止注册信息被抓包
    7. 数据平面和控制平面分离,提高性能(mac 下测速能达到 10Gb/s+)。
    8. 管理平面和控制平面都进行了安全性校验,不正确的连接会被 kill 掉,拒绝攻击。
    9. Server 可以增加密码校验,不允许其他的 client 注册。Server 启动时候加上 -s 参数。

    备注: 如果是公网虚拟机(阿里云或者腾讯云),记得要开放相应的端口

    Server 安装和运行

    # 下载并解压
    > wget https://github.com/longshengwang/tcpthrough-server/releases/download/v1.0/server-1.0.zip
    > unzip server-1.0.zip
    > cd server-1.0
    # 启动 server 端,会占用 3 个端口,用途分别是 控制面(默认 9000)、数据面(9009)、http 服务(8080)。可以使用 --help 查看如何设定
    > bin/server
    

    注: 详细参数可以通过 bin/server --help 来查看

    下面的例子是通过 服务器端的 333 端口来访问内网的 localhost22端口

    Client 安装和运行

    # 下载并解压
    > wget https://github.com/longshengwang/tcpthrough-client/releases/download/client-1.0/client-1.0.zip
    > unzip client-1.0.zip
    > cd client-1.0
    # 启动 client 端, 下面的字段表示:通过服务器上的 333 端口,可以访问客户端的 localhost:22 服务(这里是 ssh 服务)
    > bin/client -u my_home -s <server ip>  -p 333 -l localhost:22 -p 333 -c true -a true
    

    注: 详细参数可以通过 bin/client --help 来查看

    参数说明:

    • -c 表示 client 是否可以被 server 控制(是否可以增加被代理的服务)
    • -u 客户端的名称,也是唯一标识,server 下的 client name 不可以重复
    • -a 表示被代理的端口只可以被信任的主机访问 (如何增加被信任的主机,下面的命令行会有提到)
    • -f 表示可以把所有的参数都写入文件,然后用 -f 指向该文件 文件模板如下
    name=wls_home
    password=wo_shi_server_password
    remote_host=192.168.122.20
    remote_data_port=9009
    remote_manager_port=9000
    local_host=192.168.122.20
    local_port=22
    remote_proxy_port=2222
    is_remote_manage=true
    

    命令行

    可以通过 python 的一个库(自己写的),来查看和管理 server 上的连接信息

    ➜ ~ pip install tcpth.cmd
    ➜ ~ tcpthcmd  # 如果 server 上的 http 端口不是默认的 8080,可以后面加上 -p <port>
    Welcome to use the tcp through.
    tcpthrough> help
    tcpthrough> help
        list -- get all registration
        get <name> -- get special name information
        monitor [<name>] -- monitor the information, refresh on 2s
        register add <name> <localhost:port> <proxy port> -- add registration
        register delete <name> <proxy port> -- delete registration
        trust add <name> [<proxy port>] <trusted ip> -- add trust ip
        trust delete <name> [<proxy port>] <trusted ip> -- delete trust ip
        trust get <name> [<proxy port>] -- get trust ip
    tcpthrough>
    tcpthrough> list   # 在命令行下,列是对齐的,拷贝过来之后就不对齐了
     Name | Local Service | Proxy Port | Out Conn Count | Remote Managed | Security | Write Speed | Read Speed
    --------------------------------------------------------------------------------------------------------------
     my_home | localhost:22 | 333 | 0 | true | true | 0KB/s | 0KB/s
    tcpthrough>
    

    说明:

    • 可以通过 exit 或者 ctrl + d 或者 ctrl + c 退出命令行模式
    • 如果客户端允许服务端控制,那么可以通过 register 命令来进行添加和删除
    • 如果客户端开启安全模式 -a, 那么只有通过 trust add <your-client-name> <your-ip> 来添加信任的 IP 地址
    • monitor 是可以 每个 2s 打印一次 server 端的连接信息
    • register add 中的 localhost 可以是 client 网络中的其他主机的 IP 地址
    104 条回复    2019-12-11 16:51:11 +08:00
    1  2  
    shadowczp
        1
    shadowczp  
       2019-11-08 10:33:09 +08:00
    其实比较新的工具里,有现成的叫做 frp。。。
    xxsww211
        2
    xxsww211  
       2019-11-08 10:35:36 +08:00
    @shadowczp 是,FRP 还是开源项目。ngrok 其实也够用。
    HangoX
        3
    HangoX  
       2019-11-08 10:41:44 +08:00
    倒是差一个 ngrok 重放的功能,其他都没有
    xxsww211
        4
    xxsww211  
       2019-11-08 10:43:27 +08:00
    我觉得楼主这个也很不错,很到位。
    楼主要不考虑其他的突破点,比如不需要固定的公网 IP。连接第三方服务器实现转发,当然第三方这个过程也是开源的,让用户自由组建。
    yorkyoung
        5
    yorkyoung  
       2019-11-08 10:48:07 +08:00
    限速、客户端管理和流量实时这些功能还是比较新颖的,先马后看
    lswang
        6
    lswang  
    OP
       2019-11-08 10:50:58 +08:00
    @xxsww211 现在可没有这么好的第三方,企业宽带太贵了
    lswang
        7
    lswang  
    OP
       2019-11-08 10:52:37 +08:00
    @yorkyoung 感谢支持
    imagecap
        8
    imagecap  
       2019-11-08 10:57:49 +08:00
    收费也好免费也好,最后都是要走公网 ip,都是要花钱。最终各种成本综合考虑,选择自己适合的。
    lswang
        9
    lswang  
    OP
       2019-11-08 11:01:30 +08:00
    @wayixia 其实电信可以申请公网 IP,就是不固定。想要用这个动态 IP,还是要一个固定 IP 来 >_<
    lswang
        10
    lswang  
    OP
       2019-11-08 11:04:09 +08:00
    boywhp
        11
    boywhp  
       2019-11-08 11:04:31 +08:00
    FCN 一键免费穿透,日常维护管理基本够用了
    keepeye
        12
    keepeye  
       2019-11-08 11:07:55 +08:00
    frp 很稳定,就是阿里云带宽太贵了
    ChangHaoWei
        13
    ChangHaoWei  
       2019-11-08 11:09:23 +08:00
    你们都不用 ssh 自带的端口转发?简单快捷。基于 alphine 装 ssh-client 然后 docker 起来也免进程管理。


    换服务器还什么都不用调,通讯还是加密的。不能理解为什么不用。。
    lswang
        14
    lswang  
    OP
       2019-11-08 11:23:40 +08:00
    @ChangHaoWei 用过,容易断。用 docker 运行应该会好点
    prenwang
        15
    prenwang  
       2019-11-08 11:24:21 +08:00
    java netty 实现,是不是内存占用多了一点
    tigerstudent
        16
    tigerstudent  
       2019-11-08 11:30:33 +08:00
    @ChangHaoWei 断了就没了,得重新执行命令,还得写一套脚本去管理重连
    xxsww211
        17
    xxsww211  
       2019-11-08 11:33:49 +08:00
    @lswang 你误会我的意思了。技术只管实现,至于这第三方到底是谁就不用去管,因为这是用户自己的需求,他们自己在一些云服务器搭建个服务就行了。这比自己去建一个第三方要实在很多。
    easing
        18
    easing  
       2019-11-08 11:50:59 +08:00
    我理解这还是需要服务端转发流量?
    jaybing926
        19
    jaybing926  
       2019-11-08 11:53:45 +08:00
    @ChangHaoWei 我用 SSH 转发,frp,ngrok 这些工具都需要 server 端和 client 端,SSH 只要一条命令,一条命令~~
    lihongjie0209
        20
    lihongjie0209  
       2019-11-08 11:56:21 +08:00
    mark 一下 后面学习用
    lswang
        21
    lswang  
    OP
       2019-11-08 11:59:35 +08:00
    @easing 是的,现在 NAT 打洞已经非常难了
    lswang
        22
    lswang  
    OP
       2019-11-08 12:04:08 +08:00
    @jaybing926 ssh 转发是简单,不过少了 限速、管理一些其他的功能
    fanyingmao
        23
    fanyingmao  
       2019-11-08 12:12:13 +08:00 via Android
    还是直接用 ssh 转发,比较简单。
    wpblank
        25
    wpblank  
       2019-11-08 12:57:22 +08:00
    正好我顺路问个问题,本来准备电脑弄个内网穿透,回家了也能连上。结果我们公司网络好像屏蔽了 frp 和 v2ray,想问下怎么实现的
    sagaxu
        26
    sagaxu  
       2019-11-08 13:03:19 +08:00 via Android
    家里宽带公网 IP,配了 dmz,域名解析到家里 IP,每隔半个小时向 dnspod 上报一次 IP。

    公司 ssh 连接到家里做隧道,systemd 管理,转发失败会自动重连。

    第三方工具,好像并不需要。
    encro
        27
    encro  
       2019-11-08 13:10:23 +08:00
    frp,nps,goproxy 都很不错
    wangyongbo
        28
    wangyongbo  
       2019-11-08 13:10:41 +08:00
    @jaybing926 教一下我吧, 这一条命令是啥? 谢谢
    shenqi
        29
    shenqi  
       2019-11-08 13:33:23 +08:00
    临时使用,推荐 pierced。不要滥用了,不然封了就惨了。
    sagaxu
        30
    sagaxu  
       2019-11-08 13:36:05 +08:00 via Android
    @tigerstudent systemd 或者 supervisord 都很成熟
    lswang
        31
    lswang  
    OP
       2019-11-08 13:43:11 +08:00
    @wpblank 怎么屏蔽 frp 和 v2ray 的就不知道了。 文章里的安装步骤照着做就行,如果是 windows 的,把文章里对应的命令换成你手动操作。不过你需要有一个固定的公网 IP
    jaybing926
        32
    jaybing926  
       2019-11-08 14:18:59 +08:00
    @wangyongbo ssh -R 20001:localhost:80 [email protected] 或者 autossh -p22 -M 5000 -NR 20001:0.0.0.0:80 [email protected],autossh 会一直尝试重新连接 可以消除网络故障隐患,ssh 透传的缺陷是透传到外网的端口只能监听 127
    samondlee
        33
    samondlee  
       2019-11-08 14:29:25 +08:00
    点个 star2333
    感觉和 sakura frp 魔改的 有点儿像
    zlylong
        34
    zlylong  
       2019-11-08 14:34:02 +08:00
    @wpblank 屏蔽 V2ray 是如何做到的???比 GFW 还强!?
    lswang
        35
    lswang  
    OP
       2019-11-08 14:43:02 +08:00
    @samondlee 谢谢支持
    SenLief
        36
    SenLief  
       2019-11-08 15:29:27 +08:00
    有公网 IP 的还是直接用 DDNS,没有的我觉得不如买一个设备了。省心
    daimiaopeng
        37
    daimiaopeng  
       2019-11-08 15:31:34 +08:00 via Android
    frp 不香吗?
    lswang
        38
    lswang  
    OP
       2019-11-08 15:39:10 +08:00
    @daimiaopeng 自己写的最香
    ungrown
        39
    ungrown  
       2019-11-08 15:52:12 +08:00
    @xxsww211 你们为什么造轮子之前就不能先查一下,你说的这个也有了,而且早就有了,“远古”项目 n2n 就是(虽然已经凉凉),现在有个更大的项目 zerotier
    ungrown
        40
    ungrown  
       2019-11-08 15:53:08 +08:00
    @lswang 有本事加密算法也自己写
    重复造轮子就是浪费生产力
    ungrown
        41
    ungrown  
       2019-11-08 15:54:48 +08:00
    @zlylong 协议白名单,或者端口白名单,甚至 IP 地理池白名单
    lswang
        42
    lswang  
    OP
       2019-11-08 16:09:35 +08:00   ❤️ 1
    @ungrown 我也想写加密算法,可惜数学能力限制了我。
    重复造轮子的说法不适合个人,程序员就是通过自己开发来学更多的东西。自己造的轮子是自己的轮子,别人造的轮子是别人的。

    再说,如果都用别人的轮子,那你说为什么华为还要搞芯片干嘛?华为也在浪费生产力?
    m1862897
        43
    m1862897  
       2019-11-08 16:19:19 +08:00
    一般人用 frp 就行了

    我当然会把你这个作为备用的,毕竟有 java 源码,熟悉 netty 的 chanelhandler 和 pipeline 可以自己修改;
    frp 好像是 go 写的,go 这种语言,还真特么不会,完全看不懂写的神马,根本无从改起。
    m1862897
        44
    m1862897  
       2019-11-08 16:20:07 +08:00
    所以,大佬,我支持你。
    呵呵,可能还会抄袭你的 netty 代码。
    ysys123
        45
    ysys123  
       2019-11-08 16:21:11 +08:00
    我用的付费的 natapp 用起来也挺稳定 还不用担心自己的 vps 有问题
    lswang
        46
    lswang  
    OP
       2019-11-08 16:23:02 +08:00
    @m1862897 谢谢支持,代码随意用
    lswang
        47
    lswang  
    OP
       2019-11-08 16:24:58 +08:00
    @ysys123 这种流量收费的,怎么防止有人恶意蹭?
    lswang
        48
    lswang  
    OP
       2019-11-08 16:25:40 +08:00
    @ysys123 我看阿里云也有按流量收费,不过不敢用,怕有心人搞。。
    Calm1
        49
    Calm1  
       2019-11-08 16:27:22 +08:00
    收藏了,感觉不错。谢谢楼主分享。
    ungrown
        50
    ungrown  
       2019-11-08 16:28:55 +08:00   ❤️ 1
    @lswang 因为别的芯片厂商故意给华为使绊子,请问你被别人使绊子了吗?
    如果你还觉得实现加密算法的关键是数学能力的话,我只能呵呵,请自行搜索“不要自己实现加密算法”。
    Kilerd
        51
    Kilerd  
       2019-11-08 16:36:31 +08:00
    jaav 写这种东西真的是。。。。。。 怎么说呢? 感觉没必要?
    lswang
        52
    lswang  
    OP
       2019-11-08 16:38:29 +08:00
    @ungrown 如果你用的服务的供应商开不下去了,你用啥。。 。 华为的例子,简单举例,用不着深入探讨。

    我想你的时间应该会用来创造更多的价值,不会浪费的。
    atom234
        53
    atom234  
       2019-11-08 16:41:55 +08:00
    不错
    lswang
        54
    lswang  
    OP
       2019-11-08 16:42:49 +08:00
    @Kilerd 写这个库主要也是实际用下 netty,熟悉网络开发。Netty 很稳定,性能也还行,而且把底层的很多部分都省去了。很多开源项目(JAVA)涉及网络的部分都是 netty 开发的,比如 zookeeper。一些大公司也会用 netty 做一些网络开发。
    m1862897
        55
    m1862897  
       2019-11-08 16:48:42 +08:00
    大佬
    ,看了一下你的代码
    ,你的打包方式别具一格
    ,依赖相当精华尽量优化到最低
    ,小可对大佬佩服得五体投地
    ,能否加个微信
    ,以后给小可一点指教
    lswang
        56
    lswang  
    OP
       2019-11-08 16:51:05 +08:00
    @m1862897 =.= 也就是用了 gradle 打包。。。优点就是不用写那么多冗余的 xml 标签。
    thanatosS
        57
    thanatosS  
       2019-11-08 16:53:11 +08:00
    学习了
    tankren
        58
    tankren  
       2019-11-08 16:54:47 +08:00
    我的联通有公网 有 IPv6 有 443 哈哈
    morphyhu
        59
    morphyhu  
       2019-11-08 17:09:36 +08:00
    支持楼主,感谢分享。在中国的这种网络环境下,多个选择总是好的。
    weifengzi2009
        60
    weifengzi2009  
       2019-11-08 17:21:43 +08:00
    @jaybing926 #32 不只是能监听 127 啊,你可以用 GatewayPorts 去控制监听任意 interface 啊
    varrily
        61
    varrily  
       2019-11-08 17:23:52 +08:00
    来个类似的,多了 web 端管理,client 鉴权 ifport.com 。但说真的,java 太占内存了。
    lswang
        62
    lswang  
    OP
       2019-11-08 17:48:59 +08:00
    @varrily java 的特性,内存占用多,但是相对稳定一些
    gy123
        63
    gy123  
       2019-11-08 17:54:49 +08:00
    server-->长连接-->client;
    client 监听 http 请求--->发送到 server 的 channl-->server 请求 http 服务返回数据;
    思路是这样?
    coloz
        64
    coloz  
       2019-11-08 18:09:22 +08:00
    了解下
    guanhui07
        65
    guanhui07  
       2019-11-08 19:06:40 +08:00
    ngrok frp 我只知道
    dukang
        66
    dukang  
       2019-11-08 20:58:28 +08:00
    @lswang 你这个通信是所有流量都经由中转服务器。还是穿透后,两端点对点通信,无需经过中转?
    ungrown
        67
    ungrown  
       2019-11-08 22:58:11 +08:00 via Android   ❤️ 1
    @lswang 你别给我腆着脸找台阶下,自己举错了例子就勇敢承担别人的质问。
    还服务商开不下去,都是开源可自建项目,用户众多发展迅速。
    我看你这个多余的项目倒是过不了多久就不维护了。
    meppy
        68
    meppy  
       2019-11-09 06:50:35 +08:00
    mark,我一直用 natfrp,挺不错的,还算比较稳定,网速比我自己搭的快。。
    ac2sherry
        69
    ac2sherry  
       2019-11-09 07:14:42 +08:00 via iPhone
    @lswang 公司没有 vpn 吗?
    conn4575
        70
    conn4575  
       2019-11-09 07:41:56 +08:00 via Android
    star 了,不过我还是觉得 frp 更香。看到是 java 的就有点抵触,小机器内存耗不起 233,不过拿来学 netty 应该不错😮
    lswang
        71
    lswang  
    OP
       2019-11-09 07:50:15 +08:00 via iPhone
    @conn4575 谢谢,一开始写这个项目的目的也是为了学习 netty。其实之前已经用 Java 原生网络库写了一个,不过感觉性能不够好、功能不够多,就用 netty 重写了。
    lswang
        72
    lswang  
    OP
       2019-11-09 07:52:23 +08:00 via iPhone
    @conn4575 公司肯定不给用自己的穿透软件,这个主要是为了访问家里的树莓派
    shell314
        73
    shell314  
       2019-11-09 08:16:44 +08:00 via Android
    支持
    waiaan
        74
    waiaan  
       2019-11-09 09:09:58 +08:00
    这类软件,中转服务器才是最关键的吧?
    eq06
        75
    eq06  
       2019-11-09 10:39:34 +08:00
    有 server 的人不需要内网穿透,没 server 的人用不了你的工具
    lswang
        76
    lswang  
    OP
       2019-11-09 11:18:23 +08:00 via iPhone
    @eq06 是需要一个 server,内网需求还是看自己了。我用内网穿透是为了用天猫精灵控制家里的树莓派开关电视
    lswang
        77
    lswang  
    OP
       2019-11-09 11:20:48 +08:00 via iPhone
    @waiaan 是的,现在双十一某宝和某讯针对新用户都有很大折扣,不过上车需注意,因为到期续费太贵了
    lswang
        78
    lswang  
    OP
       2019-11-09 11:23:54 +08:00 via iPhone
    @shell314 感谢支持
    waiaan
        79
    waiaan  
       2019-11-09 11:33:58 +08:00
    @lswang 我记得 ngrok 是可以直接用的。
    ICKelin
        80
    ICKelin  
       2019-11-09 11:56:53 +08:00
    最近怎么这么多人写内网穿透软件。。。
    ICKelin
        81
    ICKelin  
       2019-11-09 12:13:51 +08:00
    ngrok 这款软件很好,但是是国外的,连接的节点看其内部调度算法以及是否在国内有节点。

    frp 是开源项目,面向的是有技术底子的人,没技术功底的让他折腾不一定能搞得定,其实可以算一下,如果 frp 需要花一个早上来搞定部署,还需要域名备案,时间上的消耗足够购买收费软件一年了,还需要额外支付服务器费用,不太划算的。

    市面上有不少基于 frp 或者 ngrok 来做二次开发的软件,但是毕竟不是独立开发的,出故障能否快速解决其实也是一个问题,官网打着免费的旗号,但是这类软件带宽费用是个大头,最终肯定是需要收回去的。

    我觉得楼主是不是可以考虑尝试往软件服务方向去做。
    imWBB
        82
    imWBB  
       2019-11-09 13:30:23 +08:00
    @ICKelin
    为什么要备案?
    直接用国外的服务器就好了。
    ICKelin
        83
    ICKelin  
       2019-11-09 13:32:29 +08:00
    @imWBB 可以的。
    lanternxx
        84
    lanternxx  
       2019-11-09 14:11:36 +08:00
    @ICKelin #81 frp 部署不是 3 分钟就好了的吗。。使用非 80/443 端口也不需要备案
    ICKelin
        85
    ICKelin  
       2019-11-09 15:44:58 +08:00
    @lanternxx 部署这东西得看人,有人用内网穿透是用来做公众号接口调试的,这个还真要求 80/443 端口。
    xia0shi
        86
    xia0shi  
       2019-11-09 15:53:53 +08:00 via iPhone
    支持 点赞
    zhfsxtx
        87
    zhfsxtx  
       2019-11-09 21:24:55 +08:00
    请问开发这种程序你是用什么 IDE?
    lswang
        88
    lswang  
    OP
       2019-11-09 21:42:26 +08:00 via iPhone
    @zhfsxtx idea
    quericy
        89
    quericy  
       2019-11-10 14:21:53 +08:00
    后续考虑支持 client 之间 p2p 么
    c0py7hat
        90
    c0py7hat  
       2019-11-10 22:47:27 +08:00
    为啥你们都有这需求,我就没这需求,佛系..难道我太菜了
    darknoll
        91
    darknoll  
       2019-11-11 08:34:25 +08:00
    @ICKelin frp 是我见过部署最简单的软件了,大部分人几分钟就搞定了吧。
    lswang
        92
    lswang  
    OP
       2019-11-11 09:46:53 +08:00
    @quericy 暂时不考虑,现在打洞太难了。之前用试过了,打不进去。。。
    lswang
        93
    lswang  
    OP
       2019-11-11 09:47:54 +08:00
    @c0py7hat 看自己的需求了,一般捣鼓树莓派和小米或者天猫智能家居之类的,这个需求还是很多的
    stevenkang
        94
    stevenkang  
       2019-11-11 10:01:56 +08:00
    有更简单的:
    ssh -R 80:localhost:8080 serveo.net
    zunceng
        95
    zunceng  
       2019-11-11 15:38:28 +08:00
    你都有 server 了 用 autossh 不就完事了
    ICKelin
        96
    ICKelin  
       2019-11-11 19:22:08 +08:00
    @darknoll 真得看人,我印象中作者也搞了个付费星球群专门解决问题的,大部分人可能是大部分技术人员。买个服务器,买个域名做个解析是不是很难的事,但是并不是所有人都能做得了的。
    wslzy007
        97
    wslzy007  
       2019-11-12 15:00:41 +08:00
    目前 go 语言的穿透工具很多,java 的倒是少见,奈何我的哲学是绿色环保,自己动手,只用 c/c++的
    lswang
        98
    lswang  
    OP
       2019-11-12 18:34:59 +08:00
    @wslzy007 go 在做网络开发方面确实比 java 好。用 java 做网络开发的唯一理由就是 netty 这个库,真的是香
    wslzy007
        99
    wslzy007  
       2019-11-12 18:52:06 +08:00
    @lswang 认同,前提是从 0 开始。毕竟 java 生态是公认最好的。go 的网络框架 /web 框架的确很优秀,这个可以看我之前发的对比测试帖子。做技术,始终是术业有专攻,没有最好的,只有最适合自己的。
    easing
        100
    easing  
       2019-11-20 14:56:35 +08:00
    Client 侧可以同时起多个转发么,还是说每个转发需要一个运行一个 client。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1521 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 17:17 · PVG 01:17 · LAX 10:17 · JFK 13:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.