rcmdnk's blog

My IP

前にMacのホスト名の設定 の所で ローカルネットワークでない場合のホスト名 の設定をしてましたが、使っているファイルがYosemiteでは完全に消去されて 同じ設定方法ができなくなったのでそれのアップデート。

Yosemiteでの、としてますが、Mavericks以前でも恐らくこの方法の方が 正しかったんでは、と思います。

Sponsored Links

ローカルネットワークでない場合のホスト名@Yosemite

Mavericks以前では/etc/hostconfigというファイルがあって、その中に

HOSTNAME=myMac.local

とか書いておけば、グローバルネットワーク上でもmyMac.localという ホスト名を指定することが出来ましたが、Yosemiteでは/etc/hostconfig自体が もう使われなくなりました。 (もともと以前から# This file is going awayみたいな事が書かれてました。)

ではどうするかというと、実は環境設定の共有から 設定されるLocalHostNameやコンピューター名同様、

  • /Library/Preferences/SystemConfiguration/preferences.plist

の中で設定出来ます。

/Library/Preferences/SystemConfiguration/preferences.plist
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  <key>System</key>
  <dict>
    <key>Network</key>
    <dict>
      <key>HostNames</key>
      <dict>
        <key>LocalHostName</key>
        <string>myMac</string>
      </dict>
    </dict>
    <key>System</key>
    <dict>
      <key>ComputerName</key>
      <string>myMac</string>
      <key>ComputerNameEncoding</key>
      <integer>1</integer>
      <key>HostName</key>
      <string>myMac.local</string>
    </dict>
  </dict>

Systemの中のさらにもう一つのSystemの中の項目の中で、 HostNameという値がありますが、 これはデフォルトではありませんが、このkeyを加えて myMac.local等と上の様にして指定する事が出来ます。

LocalHostNameComputerName共有コンピューター名の 所で設定されているものです。

ホスト名として使われるときにはLocalHostName.localが付いたもの 使われるので最後のHostNameのところではそれに合わせるために myMac.localとしています。

これで、ローカルネットワーク中でもグローバルなIPを貰うようなところでも (少なくとも手元では)同じ名前で使う事が出来ます。

またこれらの値は

$ sudo scutil --set ComputerName myMac
$ sudo scutil --set LocalHostName myMac
$ sudo scutil --set HostName myMac.local

のように、scutilコマンドを使ってターミナルから設定することも可能です。

この辺、下のスクリプトを見つけて参考にしました。

OSX for Hackers: Yosemite Edition. This script tries not to be too opinionated and any major changes to your system require a prompt. You’ve been warned. Also, please don’t email me about this script, my poor inbox…

scutil以外にもdefaultsコマンドを使って色々と対話的に設定していく スクリプトですが、 こんな感じのスクリプトを自分用にも作って、 homebrew-file の中でも使えるようにしたりして 一発でアプリも設定も自分用に初期化したり後のために記録しておいたり 出来るようにしたい所。

Sponsored Links
Sponsored Links

« socatを使ってソケットテストする Octopressでページもstashする »