V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tianzry
V2EX  ›  问与答

安卓机有构建远程局域网的方法吗?

  •  
  •   tianzry · 2018-02-08 10:46:37 +08:00 via Android · 6632 次点击
    这是一个创建于 2507 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想跟朋友一起联机玩 元气骑士 ,但是它只能同一个 WiFi 下局域网联机,无法广域网联机,可是我们不在同一个局域网环境下。所以想问问,有办法做到构建一个远程局域网环境的办法吗?

    以前电脑上有一个叫 hamachi 的软件可以实现这种想法的,只是它没有安卓客户端。
    11 条回复    2018-02-11 00:06:20 +08:00
    FlyPuff
        1
    FlyPuff  
       2018-02-08 11:10:06 +08:00 via Android
    感觉会卡爆吧。。。可以考虑其他 steam 上的 coop 游戏哇
    function007
        2
    function007  
       2018-02-08 11:12:03 +08:00
    zerotier 有安卓客户端
    tianzry
        3
    tianzry  
    OP
       2018-02-08 12:59:01 +08:00 via Android
    @FlyPuff 这个比较轻量,悠闲点呢
    tianzry
        4
    tianzry  
    OP
       2018-02-08 13:01:13 +08:00 via Android
    @function007 谢谢老铁的推荐。试了一下这个,两台手机都装上了,也分配了个 192.168.169.*的 IP,勾选了全局,不过不知为何搜索局域网的游戏搜不出来,可能配置出了问题🤣
    quartz699
        5
    quartz699  
       2018-02-08 20:09:46 +08:00 via Android   ❤️ 1
    搜索局域网内的设备,应该是通过广播地址查找的吧。Android 系统有 wlan0,tun0 等网络接口,wifi 用的 wlan0,vpn 用的 tun0,zerotier 建立的是 vpn 所以用的 tun0,所以该游戏搜索时有可能只广播了 wlan0 接口上的地址,而没有广播 tun0 接口。如果可以直接输入对方 ip 连接的话,就能避免这个搜索不到的问题。
    zerotier 在你的网络环境下,不知道能不能穿透,不能的话可是走的 zerotier 的服务器,延迟会很大。你可以 ping 一下看看延迟怎么样
    tianzry
        6
    tianzry  
    OP
       2018-02-08 23:39:49 +08:00 via Android
    @quartz699 嗯嗯,谢谢指导,我试试看
    terrytw
        7
    terrytw  
       2018-02-09 09:49:19 +08:00
    你可以用 hamachi 和电脑模拟器....
    tianzry
        8
    tianzry  
    OP
       2018-02-09 19:25:29 +08:00
    @terrytw 这个就太吃力了,作为休闲手游呐
    tianzry
        9
    tianzry  
    OP
       2018-02-09 19:31:35 +08:00
    @quartz699 老铁,我测试了一下,果然,通过 zerotier 给连接上了,两台手机互相 ping zerotier 提供的内网 ip,可以 ping 通,延迟 600ms 左右。但是游戏里头仍旧无法找到对方。不知老铁知道 wlan0 桥接 tun0 的方法不,网上这方面的资料少之又少诶。
    另外说一句,供大伙参考测试:想要 zerotier 提供的内网 ip ping 得通,需要在 my.zerotier.com/network/xxx 里头配置一下连接上的用户,勾选 Allow Ethernet Bridging
    quartz699
        10
    quartz699  
       2018-02-10 15:24:34 +08:00 via Android   ❤️ 1
    zerotier 延迟太大,可以考虑其它 vpn,pptp 或 openvpn 等。

    桥接的话不能单靠手机吧,将 tun0 与 wlan0 桥接了,而 tun0 的流量本身是走 wifi(wlan0)的,除非插网线走 eth0 了。不过 android 系统怎么桥接我也不知道。

    网上找到一个类似的问题( http://forums.whirlpool.net.au/archive/1765479 ),也没有给解决方法。

    zerotier 建立的局域网能够互通这是没问题的。试过一个 LAN Messager 软件( https://apkpure.com/lan-messenger-p2p-offline-chat-and-file-sharing/com.nabinbhandari.lam.android ),输入对方 ip 就可以建立聊天窗口,处于局域网下会自动搜索局域网中的设备,比如在 wifi(wlan0)下搜索该 wifi 网段的设备,4G(ccmni0)网络下,搜索电信运营商内网下的设备。然而尝试在这两种网络下开启 vpn(tun0),发现它也不会自动搜索 vpn 局域网的设备。但它提供直接输入 ip 连接的功能,然后 vpn 局域网的设备也确实可以建立通信。

    所以可以看出,这款游戏和 LAN Messager 都并未对 tun0 网段内的设备进行搜索。虽然不懂 android 软件的开发,但我想这在技术上应该是可行的。或许可以发邮件给游戏开发商反应一下该问题。

    那么现阶段,或许有个比较麻烦的解决办法。vpn 用法是一样的,zerotier 就先不考虑了,延迟大。需要公网 ip(或 ngrok 等服务?),建一个 openvpn 服务器,两端 PC 用 openvpn 客户端连接到该局域网,PC 开 wifi 热点,再将 PC 的 openvpn 虚拟网卡与无线网卡桥接。这样,手机连接 wifi 就直接由 openvpn 局域网内的 DHCP 分配 vpn 局域网 ip 地址(或自己设置静态地址)。或是用 openwrt 路由器,将路由器的 tun0 与 lan 桥接。以上也只是猜想,我并没有实践过。
    tianzry
        11
    tianzry  
    OP
       2018-02-11 00:06:20 +08:00 via Android
    @quartz699 感谢老铁分享,我再琢磨琢磨,谢谢(*°∀°)=3
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2962 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:10 · PVG 08:10 · LAX 16:10 · JFK 19:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.