IPv6 有没有类似于 IPv4 的端口映射的能力?

4 天前
 lifanxi

以前我家里内网有一台应用服务器对外提供服务,我的 OpenWrt 路由器上的配置就是 IPv4 做了一个端口映射到这台服务器上,IPv6 直接把 DDNS 指向这台服务器,并在路由器上开放相应的端口。完美。

最近对这台应用服务器做了拆分,拆成了多台 VM 在不同的 IP/端口上提供不同的服务。这时 IPv4 很容易解决,把相应的端口映射改到各台 VM 上就行。但 IPv6 不知道该怎么处理了,没有办法在路由上配置出类似 IPv4 的转发策略?

2481 次点击
所在节点    宽带症候群
23 条回复
maybeonly
3 天前
对于 tcp 和 udp ,ip6tables 可以实现和 iptables 一样的 nat 。
对于 http 类服务,根据需求,还可以选择 http 代理的模式做反向代理。
以及,建议还是用不同的域名区分不同的服务,毕竟就算是 ipv4 ,也可以用 host 区分( http 服务),就算不同的域名也可以加端口。
lifanxi
2 天前
感谢楼上各位。

这几天试了各位推荐的各种方法,都可行:
1. 直接像 IPv4 一样端口映射:直接在 OpenWrt 的 LuCI 上就可配置。对于动态 IPv6 前缀会变的情况,可以用 SLAAC+ULA 的固定地址做转发。
2. 用 socat 转发:最灵活简单的一种做法。
3. 用 nginx 等搭反向代理:不过我不喜欢这个方式,因为多了一层七层的转发,重。
4. 为每台设备单独绑定 DDNS 域名:最直接的做法。

虽然一开始我想要的 1 、2 、3 的效果,但是一圈实践加上仔细思考后,我最后还是决定用 4 的方案,这样各种应用相互隔离,以后如果想再迁移服务器等,改动最小。
godall
1 天前
ipv4 端口转发的原因是 ip 地址有限,所以要端口复用。你 ipv6 了 ip 地址无限了,直接 ip6:PORT 访问就可以了,干嘛还要去转发呢?多此一举,且降低性能。

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

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

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

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

© 2021 V2EX