最近折腾完成pve的虚拟机环境后,也部署了几个虚拟机,昨天给软路由升级一下硬盘。升级完成后,重新开机后完成硬盘的分区,并把硬盘虚拟给了群晖。今天发现登录不上群晖的IP,经过好几次排查,检查发现iptebles的规则已经全部没有了。没办法只好重新设置一次,防止下次重启后再丢失NAT规则,我尝试使用以下方法。

使用iptables保存机制

在设置好了iptables规则后,下次重启后还是会被清除,所以我们需要把它保存起来,使用 iptables-save 命令来进行备份。

BASH
iptables-save > /etc/iptables-rules
点击展开查看更多

修改网卡文件,当网卡重启的时候自动执行恢复命令

BASH
vim /etc/network/interfaces
点击展开查看更多
BASH
pre-up iptables-restore < /etc/iptables-rules
点击展开查看更多

pve

BASH
cat /etc/iptables-rules
点击展开查看更多

iptables-rules

BASH
iptables -F
iptables -X
iptables -Z
点击展开查看更多

iptables

BASH
iptables -L -n --line-numbers
点击展开查看更多

iptables

iptables的规则会在重启或者开机的时候,会自动载入规则,新增iptables规则后建议也执行 iptables-save

直接写在网卡配置文件

表达 含义
pre-up 网卡启用前的动作
up 启用时候的动作
post-up 启用后的动作
pre-down 关闭前的动作
down 关闭时动作
post-down 关闭后动作
BASH
vim /etc/network/interfaces
点击展开查看更多
BASH
post-up echo 1 > /proc/sys/net/ipv4/ip_forward
post-up iptables -t nat -A POSTROUTING -s '10.10.10.0/24' -o esn5 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '10.10.10.0/24' -o ens5 -j MASQUERADE

# iptables NAT

post-up iptables -t nat -A PREROUTING -p tcp -m multiport --dport 113  -j DNAT --to-destination 10.10.10.10:22
post-up iptables -t nat -A PREROUTING -p tcp -m multiport --dport 1000:1099  -j DNAT --to-destination 10.10.10.10

post-up iptables -t nat -A PREROUTING -p tcp -m multiport --dport 223  -j DNAT --to-destination 10.10.10.11:22
post-up iptables -t nat -A PREROUTING -p tcp -m multiport --dport 1100:1199  -j DNAT --to-destination 10.10.10.11
点击展开查看更多

iptables

这个方法有两个弊端

最终我选择第一个方法,第二个方法在测试的时候,修改了网卡文件然后重启了网卡,但是iptables规则并没有生效,要重启母鸡才可以。

版权声明

作者: JunYan`Blog

链接: https://www.jinjun.top/posts/43/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

评论

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键