技术解析

iptables 如何实现转发 CNAME 的端口?
0
2021-07-05 00:00:20
idczone
说一下背景:

我要实现监控录像端口转发到公网,并且在任何地方都可以用手机 gDMSS 客户端看到。

公司只可以用铁通的宽带,铁通的宽带端口仅对网内的用户开放。
(例如说我在另外一个地方,我也是铁通的,我就可以访问你的 80 、 443 等各种端口)

IP : 221.172.12.240 ,这是我今天拨号得到的地址

阿里云是多线的,因此可以访问铁通的端口。所以我用它来转发:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 37777 -j DNAT --to-destination 221.172.12.240:37777

转发了之后,由于阿里云的端口是全网都可以访问的,这样我就实现了我最初的目的。

然而,我这里的 AC 使用的是 Ripple OS ,每天有计划重启。

每次重启我的公网 IP 就会变动,但是我设置了 DDNS ,也就是说、如果可以转发 CNAME 的端口,也就不用我每天修改一下 iptables 规则了。

-------------------------------------------------------------------

如上就是背景,我想知道如何使用 iptables 转发我使用了 DDNS 的 CNAME 。

或者是说有什么其他的端口转发,可以转发 CNAME 的端口?
现在就是每天 ping 一下我的 DDNS 的 CNAME 地址,然后进 VPS 修改 iptables 规则。。。然后用手机客户端看监控 。。。。。。。。。。

所以你要写个 shell 脚本丢 cron 里

1L 不就是解决方法嘛

AC 重启后自动连上阿里云根据自身 IP 去改下 iptables 。。。。。。。

我感觉只用 rinetd 就够了

用 rinetd 这样配置就能解决你的问题
0.0.0.0 37777 your.ddns.com 37777
allow *.*.*.*

iptables 不支持域名,或者, LZ 你可以用 openvpn 将阿里的服务器和你自己铁通网络内的某台 server 连起来。
比如, openvpn server 放阿里服务器,铁通内某服务器 /router for 监控设备 openvpn client 去保持与阿里服务器连线

7 楼的方法靠谱,也不需要 DDNS ,动态 IP 的一端装 openvpn client , server 上 iptables 打通到 openvpn client 的内网 IP 。 openvpn 亲自验证这种环境,很稳定,自身有心跳机制,短线重连。

也可以动态 IP 一端,写个 shell , curl ifconfig.co 获取外网 IP ,如果发生变化,远程执行 iptables 命令到阿里云机器更改 IP 。也不需要 DDNS 。

刚刚自己写了个脚本每天 ping 一下 DDNS 的域名,然后把 iptables 中的 IP 修改过来 。。。
用 rinetd 使用这个规则端口显示是开了,可是手机端也是连不上。不知道是不是无法转发 CNAME 还是说这类协议太奇特 。。
你这个主意也很好 。。但是远程执行的话好像又有点麻烦了,我现在就直接在腾讯云 ping DDNS 的域名来改 。。。
目前也就只能这样了,谢谢各位的回复,受益良多。

草泥马,把你妈包给我

挖个坟。我也有类似的需求。目前我用的是 v2 的任意门协议,可以适应域名解析变化。用过 rinetd,似乎只会在启动时解析域名,之后并不会随域名解析变化而更新。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服