wayne630

如何把 IPv6 的流量转发到 IPv4 上?

  •  
  •   wayne630 · Aug 22, 2023 · 8219 views
    This topic created in 1175 days ago, the information mentioned may be changed or developed.

    路由器是 OpenWRT x86 ,上面运行着一个远古服务,它只能如 0.0.0.0:8888 这样监听 IPv4 ,并不能如::8888 这样双栈监听。宽带目前只有公网 v6 ,所以在外网并不能访问这个服务,有没最简单的办法能在公网通过 v6 访问这个服务呢?谢谢大家!

    23 replies  •  2023-10-12 21:56:31 +08:00
    brader
    brader
    Aug 22, 2023
    1
    我记得 cloudflare 可以接收 v6 流量转发 v4 流量
    yzc27
    yzc27
    Aug 22, 2023 via iPhone
    2
    刚刚问了下 chatgpt ,它的解决方案里有用到 iptables
    cnbatch
    cnbatch
    Aug 22, 2023
    3
    能否这样:开个端口转发,设置成仅监听 IPv6 的 8888 ,然后转发给 127.0.0.1:8888
    Muniesa
    Muniesa
    Aug 22, 2023 via Android
    4
    nginx 转发一下就可以吧
    fox0001
    fox0001
    Aug 22, 2023 via Android
    5
    如果能使用 Nginx 之类做反向代理,就简单了。
    wayne630
    wayne630
    OP
    Aug 22, 2023
    6
    nginx 试过反代了,不太行,客户端连接很久后提示 400 错误
    sunmacarenas
    sunmacarenas
    Aug 22, 2023 via Android
    7
    openwrt 上用 socat 配置 ipv6 转发
    wayne630
    wayne630
    OP
    Aug 22, 2023
    8
    @sunmacarenas 非常感谢! socat 完美解决了我的问题!
    执行如下命令:
    socat TCP6-LISTEN:8889,reuseaddr,fork TCP4:127.0.0.1:8888 &
    在公网通过 IPv6 访问 8889 端口,即可访问原来仅能通过 IPv4 访问 8888 端口才能访问的服务。
    再次感谢!
    Tink
    Tink
    Aug 22, 2023 via Android
    9
    iptables 转一下呗
    hzqim
    hzqim
    Aug 22, 2023 via Android❤️1
    10
    有一个项目叫 大吉(lucky)
    https://github.com/gdy666/lucky
    linshiyouxiang
    linshiyouxiang
    Aug 22, 2023
    11
    @wayne630 追加一个 openwrt 上 [luci-app-socatg]( https://github.com/big-tooth/luci-app-socatg) 图形界面, 使用完美.

    内网要是有 v2ray 也能通过其转发.
    linshiyouxiang
    linshiyouxiang
    Aug 22, 2023
    12
    表达有误, 内网有 v2ray ,也能通过 v2ray 转发那个 远古服务
    tyhunter
    tyhunter
    Aug 22, 2023
    13
    #10 提到的 Lucky 挺好用的,用端口转发就行,我在 NAS 上跑了 SS ,在 3xxx 端口,然后在路由器的 Lucky 上配置了端口转发(监听 NAS IP:3xxx 转发到路由器的 3xxxx 端口)和 DDNS ,这样手机直接配置 SS 的地址为 DDNS:3xxxxx 就能直接连回家了,和内网操作一样
    lovelylain
    lovelylain
    Aug 22, 2023 via Android
    14
    @wayne630 nginx 是可行的,你没成功是你的问题。折腾 nginx 可以在 ipv6 直连和 frp 反代时下游的 web 服务都能取到客户端 ip 。
    40kecedwixyCdM81
    40kecedwixyCdM81
    Aug 22, 2023
    15
    opkg install socat
    wayne630
    wayne630
    OP
    Aug 22, 2023 via iPhone
    16
    @lovelylain 问题是后端不是标准的 web 服务。总之就是折腾了半天 nginx 都 400
    aru
    aru
    Aug 23, 2023
    17
    @wayne630
    不是标准服务就要用 nginx 的 stream 模块做 tcp/udp 的转发
    https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/

    另外,haproxy 其实更合适
    cq65617875
    cq65617875
    Aug 23, 2023
    18
    最好用应用转发
    例如 socat 或者 gost 这种
    iptables 要用到 tproxy
    yuchenr
    yuchenr
    Aug 23, 2023
    19
    随便一个支持双栈 tcp 端口转发就可以
    SSSaya
    SSSaya
    Aug 24, 2023
    20
    op 那直接用 socat/Lucky 就行了
    xinJang
    xinJang
    Aug 24, 2023
    21
    @brader 尝试过 很卡很卡 放弃吧
    wayne630
    wayne630
    OP
    Aug 28, 2023
    22
    @xinJang 这个方案肯定不行,数据去美国绕一圈再回来肯定卡
    blueboyggh
    blueboyggh
    Oct 12, 2023
    23
    为啥我把 socat/lucky 跑在内网的一个 n1 上就不行呢?

    n1 现在用 v6 地址可以连上 ssh ,但是想通过 n1 走 socat/lucky 转发到局域网内的其他设备,就访问不到

    有没有大佬给解解惑
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1718 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 109ms · UTC 16:08 · PVG 00:08 · LAX 08:08 · JFK 11:08
    ♥ Do have faith in what you're doing.