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

我想问一下, Android 手机作为服务端(用 4G 信号), pc 作为客户端(用 WiFi),不在一个局域网,他们之间可以通信吗?最近试了一下,发现老是连接不了,请大家指教?

  •  
  •   YangJian1994 · 2018-01-16 09:52:21 +08:00 · 12597 次点击
    这是一个创建于 2495 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近想做一个 Android app,作为服务端去监听电脑发过来的数据,在一个局域网是可以访问的,但我想如果手机没有连入 WiFi,那么电脑和手机还可以通信吗?前提是我知道 Android 手机的外网 ip,但是还是无法连接,不清楚什么原因。。。

    16 条回复    2018-01-16 18:24:35 +08:00
    raysonx
        1
    raysonx  
       2018-01-16 09:59:46 +08:00 via Android
    运营商 4G 给移动设备分配的都是内网 IP,使用对称 nat 和公网连接,而且设置有严格的防火墙策略。
    除非将来放开 ipv6,否则不可能作 TCP listener
    jianleer
        2
    jianleer  
       2018-01-16 10:02:42 +08:00
    几乎大部分的终端设备分配的 IP 都不是公网 IP,也就是说你的手机和电脑在两个局域网中,一般的生产服务器是公网 IP 或者有转发,手机则不是,无法完成路由寻址的过程,所以这样是无法通信的
    cctv1005s927
        3
    cctv1005s927  
       2018-01-16 10:03:19 +08:00
    1,在你描述的这种情况里面,手机没有连入 wifi,手机电脑是不可通信的。
    2,你说你知道你的安卓手机的外网 IP,你有想过这个外网 IP 是怎么来的吗?这个是路由器分配的一个动态 IP,相当于你看到的外网 IP 也只不过是另外一个局域网内的 IP 地址而已。

    3,那在这种情况下如何让他们组网连接?
    最基本的思想就是你们需要一个公有的服务器,在公网上有固定 IP 的东西,把他们串联起来。

    推荐方法:
    ( 1 )使用『蒲公英』异地组网,我自己试过是有效的
    ( 2 )买一台公网的 server,在上面搭建 vpn,多台设备连入 vpn,即可互通。(理论可行,未测试)
    YangJian1994
        4
    YangJian1994  
    OP
       2018-01-16 10:06:04 +08:00
    @raysonx 谢谢,了解了
    YangJian1994
        5
    YangJian1994  
    OP
       2018-01-16 10:06:41 +08:00
    @jianleer 谢谢,我还是想得太简单了
    YangJian1994
        6
    YangJian1994  
    OP
       2018-01-16 10:07:39 +08:00
    @cctv1005s927 谢谢,我准备用一个阿里云服务器试试。
    FlyPuff
        7
    FlyPuff  
       2018-01-16 10:17:54 +08:00 via Android
    teamviewer PC 版上有个 VPN 服务,但是好像 Android 好像访问不到这个服务吧
    iwtbauh
        8
    iwtbauh  
       2018-01-16 10:19:57 +08:00 via Android
    理论上存在 NAT 穿透的可能
    参考 coturn
    iwtbauh
        9
    iwtbauh  
       2018-01-16 10:20:51 +08:00 via Android
    另外,如果 WiFi 的路由器分配到了公网 IP,可以使用 UPnP 打开防火墙端口
    zpxshl
        10
    zpxshl  
       2018-01-16 10:33:54 +08:00 via Android
    不能,可买服务器当电脑手机的中转站。之前的项目就是这样搞得。
    linshiyouxiang
        11
    linshiyouxiang  
       2018-01-16 10:42:09 +08:00   ❤️ 1
    zerotier 穿透? 只测试够了. 实际项目 可以自建中转(zerotier)moon 服务器.
    http://www.lucktu.com/archives/766.html
    autulin
        12
    autulin  
       2018-01-16 11:48:08 +08:00 via iPhone
    想了一下,两个设备同时 VPN 到一个网,这样或许可以吧?
    winglight2016
        13
    winglight2016  
       2018-01-16 12:41:24 +08:00
    如果只是想实现数据双向发送,可以通过 http / socket 连接到第三方服务器然后长连接通讯
    jyf
        14
    jyf  
       2018-01-16 12:49:19 +08:00
    n2n 穿透没啥问题 不过总是要客户端麻烦
    arafat5549
        15
    arafat5549  
       2018-01-16 16:40:23 +08:00
    做 NAT 穿透 试试 webrtc
    s82kd92l
        16
    s82kd92l  
       2018-01-16 18:24:35 +08:00 via Android
    仅仅是消息的话可用公用的 mqtt 服务器,客户端协议很全,天生用来做 IOT 长连接
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2786 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 12:40 · PVG 20:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.