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

2023-08-22 18:27:46 +08:00
 wayne630

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

4730 次点击
所在节点    宽带症候群
23 条回复
brader
2023-08-22 18:30:52 +08:00
我记得 cloudflare 可以接收 v6 流量转发 v4 流量
yzc27
2023-08-22 18:34:02 +08:00
刚刚问了下 chatgpt ,它的解决方案里有用到 iptables
cnbatch
2023-08-22 18:36:02 +08:00
能否这样:开个端口转发,设置成仅监听 IPv6 的 8888 ,然后转发给 127.0.0.1:8888
Muniesa
2023-08-22 18:36:24 +08:00
nginx 转发一下就可以吧
fox0001
2023-08-22 18:37:11 +08:00
如果能使用 Nginx 之类做反向代理,就简单了。
wayne630
2023-08-22 18:38:36 +08:00
nginx 试过反代了,不太行,客户端连接很久后提示 400 错误
sunmacarenas
2023-08-22 18:40:15 +08:00
openwrt 上用 socat 配置 ipv6 转发
wayne630
2023-08-22 18:54:21 +08:00
@sunmacarenas 非常感谢! socat 完美解决了我的问题!
执行如下命令:
socat TCP6-LISTEN:8889,reuseaddr,fork TCP4:127.0.0.1:8888 &
在公网通过 IPv6 访问 8889 端口,即可访问原来仅能通过 IPv4 访问 8888 端口才能访问的服务。
再次感谢!
Tink
2023-08-22 18:56:41 +08:00
iptables 转一下呗
hzqim
2023-08-22 19:48:09 +08:00
有一个项目叫 大吉(lucky)
https://github.com/gdy666/lucky
linshiyouxiang
2023-08-22 20:15:18 +08:00
@wayne630 追加一个 openwrt 上 [luci-app-socatg]( https://github.com/big-tooth/luci-app-socatg) 图形界面, 使用完美.

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

另外,haproxy 其实更合适
cq65617875
2023-08-23 08:10:25 +08:00
最好用应用转发
例如 socat 或者 gost 这种
iptables 要用到 tproxy
yuchenr
2023-08-23 09:03:37 +08:00
随便一个支持双栈 tcp 端口转发就可以
SSSaya
2023-08-24 06:25:58 +08:00
op 那直接用 socat/Lucky 就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/967455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX