21

私は常に OSX で BIND を使用して、ローカル開発マシンにローカル DNS リゾルバーを提供してきました。特に、仮想マシンがローカル開発環境にアクセスしやすくするためです。

ばかげて一晩で OSX Mavericks にアップグレードすることにしましたが、コマンド ライン開発者ツールが追加されていても、BIND がインストールされていないようです。

この機能を復元する方法、または最新の OSX に代替の DNS ソリューションが用意されているかどうかについて、誰か提案がありますか?

ありがとう、スティーブ

4

7 に答える 7

10

Homebrew をインストールし、それを使用して bind をインストールするのが最善の方法のようです。

ちょっとした「落とし穴」はほとんどないので、この bash スクリプトをまとめてすべてを簡素化しました。

1) Homebrew をインストールします

2) このファイルを「ConfigureBrewBindOnOSX10_9.sh」として Mac に保存して実行するか ( sh ./ConfigureBrewBindOnOSX10_9.sh)、コマンドを 1 行ずつ手動で実行します (詳細を確認したい場合は.

ConfigureBrewBindOnOSX10_9.shの内容

#!/bin/bash

# Last Updated: Jun 17, 2014
# camden@arrowtech.net
#
# Run as root or sudo the commands that need it as you go.

# 1) USE HOMEBREW TO INSTALL BIND

brew install bind

# 2) CONFIGURE BIND

# Create a custom launch key for BIND

/usr/local/sbin/rndc-confgen > /etc/rndc.conf
head -n 6 /etc/rndc.conf > /etc/rndc.key

# Set up a basic named.conf file.
# You may need to replace 9.10.0-P2 with the current version number if it is out of date.

cat > /usr/local/homebrew/Cellar/bind/9.10.0-P2/etc/named.conf  <<END
//
// Include keys file
//
include "/etc/rndc.key";

// Declares control channels to be used by the rndc utility.
//
// It is recommended that 127.0.0.1 be the only address used.
// This also allows non-privileged users on the local host to manage
// your name server.

//
// Default controls
//
controls {
        inet 127.0.0.1 port 54 allow {any;}
        keys { "rndc-key"; };
};

options {
        directory "/var/named";
};

// 
// a caching only nameserver config
// 
zone "." IN {
    type hint;
    file "named.ca";
};

zone "localhost" IN {
    type master;
    file "localhost.zone";
    allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
    type master;
    file "named.local";
    allow-update { none; };
};

logging {
        category default {
                _default_log;
        };

        channel _default_log  {
                file "/Library/Logs/named.log";
                severity info;
                print-time yes;
        };
};

END

# Symlink Homebrew's named.conf to the typical /etc/ location. 
ln -s /usr/local/homebrew/Cellar/bind/9.10.0-P2/etc/named.conf /etc/named.conf 


# Create directory that bind expects to store zone files

mkdir /var/named

curl http://www.internic.net/domain/named.root > /var/named/named.ca


# 3) CREATE A LuanchDaemon FILE: 

cat > /System/Library/LaunchDaemons/org.isc.named.plist <<END
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Disabled</key>
        <false/>
        <key>EnableTransactions</key>
        <true/>
        <key>Label</key>
        <string>org.isc.named</string>
        <key>OnDemand</key>
        <false/>
        <key>ProgramArguments</key>
        <array>
                <string>/usr/local/sbin/named</string>
                <string>-f</string>
        </array>
        <key>ServiceIPC</key>
        <false/>
</dict>
</plist>
END

chown root:wheel /System/Library/LaunchDaemons/org.isc.named.plist 
chmod 644 /System/Library/LaunchDaemons/org.isc.named.plist 

# Shutdown bind (if it was running)
#launchctl unload /System/Library/LaunchDaemons/org.isc.named.plist


# Launch BIND and set it to start automatically on system reboot.
launchctl load -wF /System/Library/LaunchDaemons/org.isc.named.plist

助けが必要な場合はお知らせください。静かないくつかのマシンでこれを正常に構成しました。

于 2013-10-28T16:25:41.243 に答える
7

Homebrew を使用して BIND9 をインストールします。現在のbrewのインストールは私が望むほど完全ではありません. plist。

私の変更はまだマージされていませんが、更新されたファイルは次の場所で確認できます: github.com/mxcl/homebrew/pull/23598 を使用brew edit bindして BIND の式を開き、フォークしたバージョンにコピーして保存し、再インストールします。を使用して淹れbrew install bindます。

于 2013-10-27T20:29:46.703 に答える
1

DD-WRTでDNSMasqを発見するまで、MACで実行されているローカルDNSサーバーを使用していました

LAN と WIFI 用に DD-WRT ルーターをセットアップし、DD-WRT の DNSMasq 機能を使用して、開発マシンにマップする必要があるすべての全体を一覧表示しました。

DD-WRT ルーターにログインします。

[サービス] の下で、DNSMasq を有効にします

[追加の DNSMasq オプション] の下に、マスクする各エントリを一覧表示します。

address=/[url]/[ip]

例:

address=/www.dev.mysite.com/192.168.1.10
address=/photos.dev.mysite.com/192.168.1.11
address=/static.dev.mysite.com/192.168.1.12

これは、ルーター上でローカル アドレス用に独自の DNS サーバーを実行するようなものですが、オーバーヘッドはありません。

このようにして、LAN経由でローカル開発マシンに接続し、WIFI経由ですべてのモバイルデバイスに問題なく接続できます.

利点:

  • MAC に DNS サーバーのオーバーヘッドがない
  • DNS 構成は不要で、DHCP 経由で機能します
  • モバイル デバイスを WIFI 経由で開発マシンに簡単に接続できます。
  • ルーターインターフェースを介したメンテナンスと設定が簡単
于 2014-03-04T10:55:53.533 に答える
1

Bind は Mavericks にインストールされます。ファイルだけが移動しました。すべてのゾーン ファイルは /Library/Server/named/ にあります。

実際、Apple は 10.6.8 と比較して、より準拠した実装に向けて良い仕事をしています。

ファイルを手動で変更するのは簡単です。

私の $0.02

LL

于 2013-12-05T18:30:26.363 に答える