Finer04's Blog
首页
乱写一通
脑洞破文
随便谈谈
当前播放.page
用 nftables/iptables 为无法连接的外网映射IP的请求转发到其他IP地址
Finer04
February 17, 2026
1157 字
文章目录
## 背景 我当前工作的云平台是有专区的,云平台是专用的 10 段的内网地址,而对外出口是用 17 段的,是在我们的防火墙做SNAT和DNAT做互通的。当初我们有个需求需要跨网络备份源主机,并把数据恢复到本地机房。跨网的话需要配置跳板机和作业的回调地址,我都需要回调到 17 段的地址才能备份用户源端的主机。 信息是这样的 - 源端IP地址:17.111.111.100; - 备份平台地址:10.10.230.15; - 备份平台对外映射地址:17.111.45.234; - LiveCD的云主机地址:10.10.31.3 但是这个有一个很笨比的问题,备份完毕后需要恢复到本地机房的时候,我在云平台虚拟机挂载了一个 LiveCD 用于恢复映像,准备开始恢复的时候,LiveCD居然向备份平台的对外映射地址请求作业数据,我在平台也没看到恢复的时候选什么回调地址,客户也急着问进度,问厂商他们说也忘了这个场景了下个版本更新。那只能想想办法了 我现在就是要解决,LiveCD 访问 17.111.45.234 的所以 TCP 请求,都要转发到 10.10.230.15 ## 该问题同样适用的场景 1. 自己访问自己的对外映射的业务 IP; 2. 自己访问自己其他业务的对外映射的业务 I; 3. 内网调试,不改大范围的代码的情况下; ## 解决办法 直接给结论吧,用 iptables 的 NAT 临时应急吧,还好 LiveCD 是 Rocky Linux 的,虽然没有iptables但好像有nftables。 nft add table ip nat nft add chain ip nat output { type nat hook output priority -100 \; } nft add rule ip nat output ip daddr 源外网映射IP tcp dport 源端口 dnat to 转发到真正的IP地址:目的端口 nft add rule ip nat output ip daddr 17.11.45.234 tcp dport 443 dnat to 10.10.230.15:443 改写成 iptables 就是 `iptables -t nat -A OUTPUT -d 源外网映射IP -p tcp --dport 源端口 -j DNAT --to-destination 转发到真正的IP地址:目的端口` ## 其他 Windows 暂时没有合适的办法,问 AI 居然给一个逆天的叫我改 hosts 的方法,那肯定不行。
发表评论
称呼
*
Email
*
网站
提交评论
▲ Top
发表评论