我正在尝试在我的局域网中演示碘。我有一台碘客户端机器、一台带有主机名的碘服务器机器t1.haxor.com
和一台本地运行的 DNS 服务器。
我想模仿一个企业环境,其中只允许对企业 DNS 服务器的 DNS 请求。因此,客户端机器只允许通过端口 53 向本地 DNS 服务器发送数据包。我不想为公共域付费,所以我想设置本地 DNS 服务器以将 DNS 请求查询转发*.haxor.com
到碘服务器。
简单地说,我希望碘服务器成为*.haxor.com
我局域网中的名称服务器。
haxor.com
根据iodine github 自述文件,我试图创建一个区域。然而,我失败了。
$TTL 10
@ IN SOA ns.haxor.com. admin.haxor.com. (
1 ;serial number
10 ;time to refresh
10 ;time to retry
604800 ;time to expire
10 ) ;minimum TTL
IN NS ns.haxor.com.
;address to name mapping
t1.haxor.com. IN NS ns.haxor.com.
ns.haxor.com. IN A IP-ADDRESS-OF-IODINE-SERVER
配置named.conf.local
:
zone "haxor.com" {
type master;
file "/etc/bind/zones/db.haxor.com";
};
如何配置 bind9 向*.haxor.com
碘服务器发送 DNS 请求?
问题
我很确定问题在于
named.conf.local
,我将haxor.com
区域的类型设置为master
. 我认为 master 应该是该区域的最终权威,这就是它没有转发请求的原因。如果我错了,请纠正我。我的解决方案:
我在 DNS 服务器上安装了 bind9:
apt install bind9
我还根据本教程设置了日志记录和转发。但是,我认为这一步是不必要的。
然后,我去了
/etc/bind/named.conf.local
并添加了以下内容:确保更改
YOUR-IODINE-SERVER-IP-ADDRESS-HERE
为正确的 IP 地址。此配置会将区域的所有 DNS 请求转发haxor.com
到您的碘服务器。然后,在服务器上,启动 iodine:
iodined -f 10.0.0.1 t1.haxor.com -P password
此命令假定您的计算机不在 10.0.0.0 网络中。如果是,您将必须指定其他 IP 范围的 IP 地址。请注意,这
10.0.0.1
不是 iodine 服务器的当前 IP 地址,而是 DNS 隧道的任意所需 IP 地址。在客户端,启动碘:
iodine -f -r IP-ADDRESS-OF-YOUR-LOCAL-DNS-SERVER t1.haxor.com -P password
确保更改
IP-ADDRESS-OF-YOUR-LOCAL-DNS-SERVER
为您配置转发的 DNS 服务器的 IP 地址。就是这样!然后,您应该有一个有效的 DNS 隧道。您可以通过在客户端计算机上运行以下命令来验证它:
ping 10.0.0.1
ping 应该是成功的。