我正在关注设置 DNS 隧道的教程。
我遇到了以下指令:
现在您需要在此服务器上启用转发。我使用 iptables 来实现伪装。关于这一点有很多 HOWTO(例如一个简单的)。在 Debian 上,iptables 的配置文件位于 /var/lib/iptables/active。相关位是:
*nat
:PREROUTING ACCEPT [6:1596]
:POSTROUTING ACCEPT [1:76]
:OUTPUT ACCEPT [1:76]
-A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
COMMIT
重新启动 iptables:
/etc/init.d/iptables restart
问题是我没有任何/var/lib/iptables/active
。 (我在 ubuntu 上。)
我该如何实现这一点?我怀疑我应该以iptables
某种方式与命令交互,但我不知道该写什么。我想最好的办法可能是以某种方式将命令放入脚本中。
(附注。如果我执行几个iptables
命令,它不会永远存在,对吗?重启时规则会被丢弃吗?)
答案1
使用以下命令:
/sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -j MASQUERADE
如果您希望每次系统启动时都应用它,最简单的方法就是将该文件放入/etc/rc.local
该行之前exit 0
。
祝你好运,
若昂·米格尔·内维斯
答案2
不管怎样,我的 debian 系统上没有 /var/lib/iptables/active,所以我猜这个指南/操作方法有点过时了。
我甚至不确定该怎么做:
*nat:预路由接受[6:1596]:后路由接受[1:76]:输出接受[1:76]
我猜它要么是链的默认规则,要么指定你应该允许端口 6 到 1596 等等。
答案3
您可能会发现安装 Shorewall 并让它为您管理 iptables 更简单。它针对 Debian 进行了打包,并且有详尽的文档。
答案4
有一个包含要恢复的系统服务的软件包
sudo apt-get install iptables-persistent
将规则放入 /etc/iptables/rules。
一种方法是:
sudo bash -c "iptables-save > /etc/iptables/rules"