beyondstars

一种把 5G 蜂窝数据网络接入家庭局域网的方式

  •  
  •   beyondstars · Dec 11, 2023 · 5425 views
    This topic created in 1061 days ago, the information mentioned may be changed or developed.

    以下是 5G 终端接入家庭局域网的示意图:

    img

    动机是一次手机测速过程中发现 5G 蜂窝网络约有 500Mbps 的速度,于是希望找到一种方式把蜂窝网络接入到家庭局域网,并且提供一种能够让家庭局域网的其它上网设备按需访问蜂窝网络的方式。

    以下是大致思路或步骤:

    在 Linux 上可以通过 usbmuxd 使操作系统访问到 iPhone 的 USB 个人热点,结合 kernel 的 ipheth 模块,iPhone 连接好之后系统会自动创建一个对应的虚拟网卡(可通过 ip link 命令查看,一般是 enx 开头的),可以通过 dhclient -v <网卡名称> 命令为其申请 IP 地址,之后 iPhone 应该会显示热点已处于被连接的状态。确保 iPhone 的个人热点功能已打开,如果 DHCP lease 申请失败,愿意继续尝试的可以手动还原 iPhone 的网络设置并重启后再试。

    这时可以验证这块 ipheth 网卡能 ping 通因特网上的其它主机,例如:ping -I enx5204 www.baidu.com,在某些运营商环境下这块网卡也会被分配到公网 IPv6 地址。如果这里失败了先回到第一步或者放弃。

    经过上述步骤我们就已经成功把 iPhone 连接到了示意图中的 server 角色,并且 server 已经能借助于 usbmuxd 和 ipheth 软件功能访问到 iPhone 的蜂窝网络。

    接下来要解决的是如何让局域网中的其它设备也能按需地使用这个蜂窝网络,可以在 server 上建立一个隧道端点,例如 Wireguard 、IPIP ,或者 VXLAN 等,然后局域网中的上网设备默认用有线宽带网络(示意图中的 ISP1 ),当需要使用蜂窝网络时,通过隧道连接到 server 。

    示意图中列举的例子是 Wireguard 方案,客户端通过 Wireguard 连接到服务端之后,手动设定 wg0 网卡的 IP 地址例如 10.0.1.101 ,然后在 server 上进行以下关键配置:

    # 启动 IP 封包转发功能,否则 kernel 会丢弃不是自己的包
    sysctl -w net.ipv4.ip_forward=1
    
    # 策略路由,根据源地址决定下一跳是哪个
    ip rule add from 10.0.1.101/32 table 101
    ip route add default via 172.16.10.1 dev enx5204 table 101
    
    # 对 outgoing 流量进行 snat ,否则收不到回包。
    iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -j MASQUERADE
    

    在客户端上我们可以通过 curl 命令测试,假设它的 eth0 网卡接的是 ISP1 的有线宽带,wg0 网卡是连接到 server 的隧道端点,那么以下命令应该会输出不同的 IP:

    curl --interface eth0 ifconfig.me  # 应当回显自己在 ISP1 的 IP 地址
    curl --interface wg0 ifconfig.me  # 应当回显自己在 ISP2 (也就是蜂窝网络的 ISP )的 IP 地址
    

    那么接下来客户端就可以通过这个 wg0 网卡来按需使用蜂窝网络。

    Supplement 1  ·  Dec 15, 2023
    最近新购置了一个 5G CPE (带 LAN 口),这种方式更加适合把 5G 接入家庭局域网,原来的这种方式其实是为了把闲置不用的手机利用起来。

    另外如果让手机直接开热点的话,它的热点可能会和已有的 WiFi 造成干扰,我对 WiFi 不是很了解,不确定是否有一种自动避让的机制来确保同一环境下同时开启的路由器 WiFi 和手机热点两者之间只产生很小的冲突。
    27 replies  •  2023-12-17 14:51:39 +08:00
    fan88
    fan88
    Dec 11, 2023❤️4
    1
    搞复杂了,兄弟。
    华为 5G CPE ,直接解决您的需求。
    exiaohao
    exiaohao
    Dec 11, 2023
    2
    FWA ( Fixed Wireless Access )了解一下
    核心部件如 1 楼,买一个 CPE 就行了
    Donaldo
    Donaldo
    Dec 11, 2023
    3
    如果路由器是扩展性比较好的 linux 设备的话(例如 openwrt ),可以直接接在路由器上部署 usbmuxd ,省去服务器和 wireguard 。
    yhrzpm
    yhrzpm
    Dec 11, 2023
    4
    买个随身 wifi 接到 op ,用 mwan3 做主备就行吧
    mantouboji
    mantouboji
    Dec 11, 2023
    5
    以为自己有什么重大发现之前最好先去淘宝和咸鱼搜索一番。
    tianxin
    tianxin
    Dec 12, 2023 via Android
    6
    流量不要钱?
    yulihao
    yulihao
    Dec 12, 2023
    7
    这不是一个 CPE 搞定的事情么,现在紫光平台的 5G CPE 几乎是 300 多了吧(好像)
    另外别迷信 5G ,容易受到环境影响的,不稳定
    flynaj
    flynaj
    Dec 12, 2023 via Android
    8
    老哥估计没有用过 Windows+Android ,插上线打开 USB 共享就行,或者打开 WiFi 热点。openwrt 下面 安装 kmod-usb-net-rndis 打开 USB 共享,配置接口路由表就可以。
    musi
    musi
    Dec 12, 2023
    9
    不理解的是在有宽带的情况下什么场景会用到蜂窝网络
    TESTFLIGHT2021
    TESTFLIGHT2021
    Dec 12, 2023
    10
    没必要 随便一个光纤宽带都秒杀 5G 4G
    yolee599
    yolee599
    Dec 12, 2023 via Android
    11
    5G 费用那么贵,划算吗?
    my2492
    my2492
    Dec 12, 2023
    12
    为什么不在软路由上插一个 5G 模组呢?这样无论是路由的功能,还是接入方式,都解决了
    bt7vip
    bt7vip
    Dec 12, 2023 via Android
    13
    蜂窝可以作为宽带接入使用,用的平板 4G 能跑 50M 带宽,没拉宽带。
    playingangel
    playingangel
    Dec 12, 2023 via iPhone
    14
    @yolee599 有这类想法的人有可能手里面有不限量套餐,套了各种 bug 可以实现不限速不限量,把他当宽带用是可以的
    Donaldo
    Donaldo
    Dec 12, 2023
    15
    @yolee599 #11 29 块一个月 200 多 g ,我这速率能跑到下载 600mbps 上传 80mbps ,相当超值了。
    zer
    zer
    Dec 12, 2023
    16
    做个备用可以玩一玩,我自己也搞了个二级路由插了个 4G 网卡,专门解决家里 ESXI 里的软路由挂了的时候,能有个原创重启恢复的入口
    xinJang
    xinJang
    Dec 12, 2023
    17
    一个 cpe 就解决的事情
    Conantv2
    Conantv2
    Dec 12, 2023
    18
    用 openwrt ,在无线那里连上手机热点,就多一个网络了
    Fred0410
    Fred0410
    Dec 12, 2023
    19
    虽然我用不到,但我觉得这种实现方式很好。
    chancat
    chancat
    Dec 13, 2023 via Android
    20
    rndis ,usb 共享网络, 以太网共享网络
    beyondstars
    beyondstars
    OP
    Dec 15, 2023
    21
    @fan88 #1 如果没有 CPE 的话只用手机做这件事的确显得复杂,但是当时好没有选好 CPE ,又刚好有闲置的手机,也算是一种娱乐吧。
    beyondstars
    beyondstars
    OP
    Dec 15, 2023
    22
    @my2492 #12 有时间我会研究下 ,之前没太接触过,感觉这种东西可能更加偏底层(更接近硬件)?评论区很多人提到 CPE ,这个我之前也听说过,我感觉 CPE 的话可能算是 5G 模组加天线加功率放大器加以太网 NIC 加路由交换模块……
    beyondstars
    beyondstars
    OP
    Dec 15, 2023
    23
    @zer #16 是的,有点类似于一种 带外管理 的思路,用一个专门的网络来管理计算/网络设备。
    beyondstars
    beyondstars
    OP
    Dec 15, 2023
    24
    @mantouboji #5 哈哈 大哥你过奖啦 我可没说这是什么重大发现,另外咸鱼和淘宝大家都知道吧(包括我),用业余时间折腾一下闲置手机,再把过程分享出来也是有意义的,所以你驳斥的点是什么呢?
    beyondstars
    beyondstars
    OP
    Dec 15, 2023
    25
    @flynaj #8 用过 mac, raspberrypi 加 android, 不过手头上没有 5g 的 android, 当时测的速度不理想,就不继续折腾了。其实 android 也好 iphone 也好也就是个驱动程序的区别。
    flynaj
    flynaj
    Dec 15, 2023 via Android
    26
    @beyondstars Windows 已经自带驱动,任何一个 Android 手机都可以直接用。
    Cassius
    Cassius
    Dec 17, 2023 via Android
    27
    不是路由器直接接个手机就完事了么。。。
    华硕你开双 wan 模式就有第二 wan 设置了。
    手机 usb 共享网络,路由设置 usb 就完事了
    需要规则单独起一条就行了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1929 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 52ms · UTC 08:10 · PVG 16:10 · LAX 00:10 · JFK 03:10
    ♥ Do have faith in what you're doing.