先交代一下背景,就当前国内网络情况,离全局ipv6还有很长的路要走,但是ipv4资源却已油尽灯枯;很多设备都不支持ipv6,即使支持ipv6,路由器默认也是未开启状态,更恶心的是运营商宽带安装人员更是不懂ipv6,光猫默认就关闭了,好东西都堵在门外了------
你千辛万苦终于搞定了ipv6,然后全家设备也能获取到ipv6公网ip了,这时候你想在广域网通过域名访问家里的设备时,你会发现路由器不支持ipv6转发,这时候你杠:都有ipv6了,还转发什么,直接访问呀;那么问题来了,ipv6地址2天换一个,你搞个ddns来更新?假设有10个设备,你也搞10个域名来更新地址吗?显然不现实
于是,你会想在路由器搞个ddns,让广域网直接通过ipv6能访问到你的路由器,然后通过网络转发路由器下的设备,来访问,一个域名访问全家,方便、简单。
而Openwrt默认是不支持ipv6转发的(最少官方的luci没这功能),不过既然有这需求,就有开发者去实现,这就是开源的好处
Socat开源项目地址:https://github.com/big-tooth/luci-app-socatg
研究发现,OpenWrt官方opkg packages源已经有对应的后端程序包了,只查一个前台luci跟汉化luci包
为了方便大家,把luci包放这里吧:socat安装文字教程.rar
附件内有简单的安装教程,是其他网友写的,不过还是有几个需要注意的地方:
- 安装之前,先执行opkg update更新一下opkg源
- 先安装luci-app-socat.ipk,这时候会自动下载并安装socat(否则会提示配置文件冲突)
- 安装完成,如果你的Openwrt ps命令不是busybox自带的话,需要修改一下/etc/init.d/socat的stop方法
#将
ps -w| grep "$CONFIG_PATH/" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
#改成如下:
ps -ef| grep "$CONFIG_PATH/" | grep -v "grep" | awk '{print $2}' | xargs kill -9 >/dev/null 2>&1 &
使用也是很简单的,简单说一下场景:
你想访问你家里电脑的8090端口,路由器已经有ipv6+ddns+域名,电脑是接在路由器lan下,于是可以参考下图:
如果电脑的ipv6地址变幻多端,建议在目标协议选择IPv4,这样目标地址就可以选择内网的电脑ipv4地址
然后广域网就能通过ipv6访问了;切记,经过了socat转发后就不要使用Openwrt防火墙里面的端口转发,避免端口冲突(可以通过netstat -anpl检查一下端口占用情况)
滑稽/滑稽/
您好,请问op做旁路由可以吗?
应该可以,可以试试先
socat是将ipv4转成ipv6,底层我看是用iptable实现的
socat不依赖内核kmod,大胆试就行
填好了打X是为啥
后台看看有没有执行起来
ps -ef|grep socat
root@op:~# ps -ef|grep socat
28375 root 1304 S grep socat
哦,你看样子你的ps 命令是busybox精简版,不支持 -ef选项
试试ps |grep socat,运行socat之前先看看端口转发是不是占用了这个端口,端口被占就会导致socat无法使用
我这边能运行起来,但是前台页面看也是打X
大佬,能留个你这个openwrt的固件下载链接吗?
额,这是我个人编译的,哈哈,21.02.3比较老了
大佬,能分享一下固件吗?试了很多次,装不上