配置路由器IPv6地址访问局域网终端IPv4服务

2021年2月5日 4300点热度 3人点赞 0条评论

 

移动一直称为大内网,普通宽带没有公网IP,所以基本无法从外网访问回来,好在现在各大运营商已经在全面铺设IPv6,包括手机、家庭宽带已经支持 IPv6了。于是就简单记录一下,我是如何配置IPv6访问家里内网IPv4系统的。

准备工作:公网IPv6、Openwrt路由器、域名

 

一、获取公网IPv6地址

1、进入光猫主要修改两个地方。一是ISP默认把光猫都弄成了路由模式,这里修改为桥接模式。二是IP协议版本选择 IPv4/IPv6 双栈,我这里默认只有IPv4。光猫管理后台地址、超级管理员密码请自行百度。

2、使用OpenWRT路由器拨号上网,请选择一个支持IPv6,动态 DNS功能固件,这里建议自己编译OpenWRT固件,需要什么功能编译进什么功能,编译方法见之前文章。拨号成功后,就可以看到IPv6 WAN口获取到的IPv6地址。

二、通过IPv6外部访问

1、修改防火墙策略。OpenWRT 的默认防火墙策略做了一定的安全限制。WAN口入站数据、转发默认设置是拒绝,所以即使路由器 WAN 口已经分配到的公网 IPv6 也是无法从外网来访问,这里最暴力的解决方式无非就是直接将入站数据、转发设置为接受。当然为了安全更建议在高级设置里配置防火墙按需开放端口,以最大限度保护路由器及内部设备,仅允许将需要的暴露到公网访问的端口开放访问权限。

2、动态DNS设置。虽然获取到了公网 IPv6地址,但这个地址不是固定,只要重启路由都会变。这里就需要注册一个域名,在域名解析商及OpenWRT 动态 DNS 设置页面,配置好DDNS。这样即使IPv6地址变了,域名解析商也能自动解析到新的IPv6地址,通过域名访问就解决了家庭宽带IPv6地址不固定的问题。

3、普通家庭宽带是屏蔽了22、80、443等端口的,在使用一些服务时是要注意修改默认端口,才能通过IPv6外部访问。

三、访问内网中的IPv4

默认OpenWRT配好IPv6后,内网系统也能获取到公网 IPv6地址,但由于公网 IPv6地址不固定,每个系统都配置DDNS也很麻烦,且部分老系统不支持IPv6。这里我就使用了socat,通过路由器IPv6地址访问局域网终端IPV4服务。SOCAT可以将路由器的IPv6地址端口监听转发到局域网里面的IPv4终端的服务端口。

1、安装socat

opkg update
opkg install socat

2、转发命令

socat TCP6-LISTEN:8088,reuseaddr,fork TCP4:192.168.2.190:8096 &
socat TCP6-LISTEN:8088,reuseaddr,fork UDP4:192.168.2.190:8096 &

命令解释:让socat监听路由器的IPV6的8088端口的服务请求,然后转发请求到内网的192.168.2.190地址的8096端口(TCP和UDP监听)。如果你要转发其他端口和终端的服务,参照上述命令即可。

同时可以设置启动OpenWRT后执行上述命令。

最后我们就可以通过域名加端口号的方式访问局域网终端IPV4服务了。

信仰飘扬

行尽天涯 静默山水间