Lệnh giải quyết sư tử / tên


9

(sự cố này đã xảy ra với tôi với bản cập nhật 10.7.1 - / etc / hosts hiện hoạt động như mọi khi đối với tôi)

Tôi đã cập nhật máy Mac của mình lên Lion và bây giờ tôi nhận thấy rằng / etc / hosts được tham khảo lần cuối, ngay cả sau DNS. Điều này rất khó chịu vì tôi có rất nhiều tên máy chủ lưu trữ mà tôi sử dụng để phát triển.

Thứ tự phân giải tên được cấu hình ở đâu? Tôi có thể kiểm tra nó bằng dscacheutil, vì vậy đây là những gì một máy Snow Leopard nói với tôi:

pilif@tali ~ % dscacheutil -configuration
DirectoryService Cache search policy:
    /Local/Default
    /BSD/local

Settings:
AAAA Queries  - Disabled (link-local IPv6 addresses)
Default TTL   - 3600
Policy Flags  - 0

Và đây là những gì Lion nói với tôi

pilif@kosmos ~ % dscacheutil -configuration
DirectoryService Cache search policy:
    /Local/Default

Unable to get details from the cache node
Unable to get cache configuration information

ngoài hai lỗi, tôi sẽ cho rằng / BSD / Local là thứ khiến nó đọc / etc / hosts trước đó.

Có ai có ý tưởng về việc "Chính sách tìm kiếm bộ nhớ cache" này được lưu trữ không và làm cách nào để thay đổi lại?

Tôi biết rằng tôi có thể tạo các mục nhập tên máy chủ bằng cách sử dụng dcsl, nhưng tôi thực sự muốn giữ / etc / hosts mà tôi sử dụng trên các máy khác nhau.

Cập nhật: Thứ tự độ phân giải rõ ràng có thể được cấu hình trong thư mục Utility. Thật không may, cài đặt Directroy Utility này không liệt kê các tệp BSD nữa trong tab Dịch vụ.

Là tính năng này đi từ Lion? Hoặc là cài đặt này hosed?

Câu trả lời:


5

Tôi đã giải quyết vấn đề (và do đó đăng bài dưới dạng câu trả lời thay vì sửa đổi câu hỏi):

Các tệp BSD thực sự không được liệt kê trong Tiện ích thư mục, cũng như trong dscacheutil nữa, nhưng ít nhất / etc / hosts vẫn được đọc, nhưng có một vấn đề là nhiều tên máy chủ cho mỗi địa chỉ IP dường như không còn được hỗ trợ nữa hoặc ít nhất, họ không làm việc đúng ATM.

Khi máy chủ cũ / etc / của bạn có thể trông giống như

127.0.0.1 localhost foo foobar

Điều này sẽ khiến thời gian chờ ~ 10 giây để giải quyết bất kỳ tên máy chủ nào.

Nhưng nếu bạn sử dụng

127.0.0.1 localhost
127.0.0.1 foo
127.0.0.1 foobar

Nghị quyết sẽ ngay lập tức.

Câu trả lời của RedGrittyBrick cũng hợp lệ, nhưng tôi đặc biệt muốn tiếp tục sử dụng tệp máy chủ hơn là sửa đổi thư mục cục bộ như được chia sẻ giữa các máy phát triển khác nhau của tôi.

Để trả lời các câu hỏi còn lại của tôi quá (bây giờ tất cả đều rõ ràng với tôi):

  • Thứ tự phân giải bộ đệm bạn định cấu hình trong tiện ích thư mục nơi bạn có thể cho biết thư mục nào được bật mà bạn muốn xem theo thứ tự nào.
  • Để cấu hình thư mục, cũng sử dụng tiện ích thư mục
  • Tiện ích thư mục được khởi chạy bằng cách vào Tùy chọn hệ thống> Tài khoản> Tùy chọn đăng nhập> Tham gia thư mục> Tiện ích thư mục
  • Trong Lion, "thư mục" BSD Files không còn khả dụng nữa mặc dù tệp trợ giúp vẫn đề cập đến nó
  • Như tôi đã nói, / etc / hosts vẫn được đọc, nhưng có lỗi tôi đã mô tả ở trên.

Đặt mỗi mục trên dòng riêng của nó đã không giải quyết nó cho tôi. Bạn có thể truy cập "foo" và "foobar" trong cả Chrome và Safari không? Đối với tôi, nó chỉ hoạt động trong Chrome. Bạn có thể ghi đè một trang web hiện tại không, ví dụ: "127.0.0.1 www.google.com"? Đối với tôi, điều đó không hoạt động trong Chrome hoặc Safari.
richardkmiller

Điều này giải quyết 10s chờ tôi. Cảm ơn bạn, điều đó đã khiến tôi phát điên.
Josh Bleecher Snyder

Đã giải quyết nó cho tôi vào ngày 10.7.3!
EMiller

3

Vấn đề là Lion xử lý TLD .local khác nhau vì nó dành riêng cho một số tính năng Multicast DNS (được Bonjour sử dụng). Cách duy nhất tôi tìm thấy để giải quyết vấn đề này là sử dụng một TLD khác cho các máy chủ phát triển (ví dụ: .dev). Nó hoạt động tốt với tôi, hy vọng nó sẽ hữu ích cho người khác!


đây hoàn toàn là những gì đã xảy ra trên hộp của tôi thx
slf

1

Như tôi mong đợi bạn biết, cách Unix truyền thống để xử lý việc này là bằng cách sử dụng một hostresorderhoặc orderchỉ thị trong /etc/resolv.conf. OS X không (hoặc có thể được thực hiện) để đọc và sử dụng các tệp này nhưng OS X có một hệ thống riêng được quản lý thông qua các tùy chọn mạng mà tôi tin rằng sẽ ghi đè lên các tệp cấu hình này khi khởi động.

http://hints.macworld.com/article.php?story=20070223050607406

http://docs.info.apple.com/article.html?path=ServerAdmin/10.6/en/od4939886e.html

https://discussions.apple.com/thread/2493759

http://blog.daemon.com.au/go/blog-post/managing-the-host-file-on-leopard

Điều này không trả lời câu hỏi của bạn nhưng thông tin và liên kết có thể giúp tìm thấy một. Tôi đã đưa nó vào một bình luận nếu tôi có thể ngưng tụ nó lại cho phù hợp.


Tôi biết về dscl, nhưng tôi đặc biệt muốn sử dụng tệp máy chủ không thể bật và tắt rõ ràng trong Lion nữa. Nó luôn luôn được đọc, nhưng với các quy tắc phân tích cú pháp khác với trước đây - hãy xem câu trả lời của tôi cho câu hỏi của tôi.
pilif

1

Có thể khắc phục sự cố này bằng cách sử dụng dnsmasq làm DNS cục bộ và thêm các mục ở đó hoặc sử dụng dnsmasq để sử dụng /etc/hosts.

Có thể sử dụng tập lệnh để đặt thứ tự máy chủ DNS:

Filename: setdsn
-------------------------------------------------
#!/bin/bash

# Script is used to set the Nameserver Lookup under Max OS X 10.4 with the Console
# Script by Stephan Oeste

if [ $# -lt 2 ] ; then
echo "Use: $0 [2.Nameserver]"
echo "Example Use: $0 example.tld 1.2.3.4 1.2.3.5"
exit 1
fi

PSID=$( (scutil | grep PrimaryService | sed -e 's/.*PrimaryService : //')<< EOF
open
get State:/Network/Global/IPv4
d.show
quit
EOF
)

scutil << EOF
open
d.init
d.add ServerAddresses * $2 $3
d.add DomainName $1
set State:/Network/Service/$PSID/DNS
quit
EOF
-------------------------------------------------

Tạo tập tin:

chmod +x setdns

Và sau đó sử dụng ist với (Ví dụ): setdns domain.com 12,23.34,45
(Được đăng bởi emzy trên http://hints.macworld.com/article.php?story=20050621051643993 )

Nếu bạn muốn tập lệnh tự động tải khi thay đổi mạng, bạn nên tạo một .plist, đặt nó vào /Library/LaunchDaemonsvà sử dụng:

sudo launchctl load -w /LibraryLaunchDaemons/name.your.plist

1

Tôi gặp vấn đề này trong Snow Leopard trong khi cố gắng thiết lập Máy chủ cập nhật phần mềm trong suốt. Tôi cũng đã nhận được nó hoạt động trên Lion. Bản thân Máy chủ Cập nhật Phần mềm là một nửa giữa hack và kydge, nhưng vấn đề này đã được giải quyết khá thanh lịch. Đây là những gì tôi biết:

  • / etc / hosts không tồn tại trong Lion và giống như các phiên bản OS X gần đây được đặt để đọc sau DNS.
  • /etc/resolv.conf tồn tại trong Lion nhưng là một liên kết tượng trưng đến /var/run/resolv.conf.
  • /var/run/resolv.conf được viết lại bất cứ khi nào cấu hình mạng của bạn được cập nhật. Đó có thể là do khởi động lại, gia hạn thuê DHCP, v.v.

Tôi đã tạo ra kịch bản sau đây. / usr / local / hostsBind:

mv /var/run/resolv.conf /var/run/resolv.conf.new
echo order hosts, bind > /var/run/resolv.conf
cat /var/run/resolv.conf.new >> /var/run/resolv.conf

điều này sao lưu tệp chínhvvv hiện tại, tạo một tệp mới với thứ tự máy chủ mong muốn trước BIND và nối tệp trước đó vào cuối.

Tôi gọi tập lệnh này bằng cách xem tập tin chínhvvvv với công việc đã khởi chạy sau tại / L Library / LatunchDaemons / com.domain.hostsBind.plist (bạn có thể thay đổi com.domain thành thứ gì đó hợp lý với bạn):

<?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>Label</key>
    <string>com.domain.hostsBind</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/hostsBind</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/var/run/resolv.conf</string>
    </array>
</dict>
</plist>

Điều này đã được làm việc cho tổ chức của chúng tôi với máy chủ Cập nhật phần mềm Lion.

Điều cuối cùng cần lưu ý, điều này cũng hoạt động tốt với Snow Leopard nếu bạn thay đổi đường dẫn cho độ phân giải thành /etc/resolv.conf. Lion chỉ ném đường cong của symlink thành / var / run / thay vì / etc /.

-b

PS: Nguồn cho tập lệnh: http://forums.macrumors.com/showthread.php?p=6742920


Khi tôi thử điều này, công việc tiếp tục đặt hàng trước trên tệp vì việc thay đổi tệp đã kích hoạt một bản cập nhật mới.
Harmanjd

1

Có một số điều sai với máy chủ apache đi kèm với OSX Lion.

  1. Rất nhiều mô-đun được tải theo mặc định.
    Mở ra /etc/apache2/httpd.confvà xem qua danh sách các mô-đun được kích hoạt (tất cả chúng đều được bật theo mặc định). Bạn có thể có thể tắt rất nhiều trong số họ bằng cách đặt một #ở phía trước của dòng.

    Đây là những cái tôi đã tắt:

#LoadModule authn_dbm_module libexec/apache2/mod_authn_dbm.so
#LoadModule authn_anon_module libexec/apache2/mod_authn_anon.so
#LoadModule authn_dbd_module libexec/apache2/mod_authn_dbd.so
#LoadModule authn_default_module libexec/apache2/mod_authn_default.so
#LoadModule authz_groupfile_module libexec/apache2/mod_authz_groupfile.so
#LoadModule authz_user_module libexec/apache2/mod_authz_user.so
#LoadModule authz_dbm_module libexec/apache2/mod_authz_dbm.so
#LoadModule authz_owner_module libexec/apache2/mod_authz_owner.so
#LoadModule authz_default_module libexec/apache2/mod_authz_default.so
#LoadModule auth_basic_module libexec/apache2/mod_auth_basic.so
#LoadModule auth_digest_module libexec/apache2/mod_auth_digest.so
#LoadModule dbd_module libexec/apache2/mod_dbd.so
#LoadModule mime_magic_module libexec/apache2/mod_mime_magic.so
#LoadModule unique_id_module libexec/apache2/mod_unique_id.so
#LoadModule proxy_connect_module libexec/apache2/mod_proxy_connect.so
#LoadModule proxy_ftp_module libexec/apache2/mod_proxy_ftp.so
#LoadModule proxy_scgi_module libexec/apache2/mod_proxy_scgi.so
#LoadModule proxy_ajp_module libexec/apache2/mod_proxy_ajp.so
#LoadModule dav_module libexec/apache2/mod_dav.so
#LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
#LoadModule bonjour_module libexec/apache2/mod_bonjour.so
#LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so
  1. Các tập tin máy chủ là không hoàn hảo.
    Bây giờ hãy mở tập tin máy chủ của bạn, nằm ở /etc/hosts. Ở đây bạn sẽ thấy dòng này (và một số ý kiến):

Macbook 127.0.0.1-pro-van-bart.local

(tên máy tính khác ngoài khóa học). Thêm dòng sau (thay đổi tên máy tính):

fe80::1%lo0 macbook-pro-van-bart.local
  1. Hãy xem cấu hình apache của bạn
    Hãy chắc chắn rằng bạn vhostskhông dựa vào IP. Thay đổi chúng như thế này:

NameVirtualhost 127.0.0.1:80

Trở thành:

NameVirtualhost *: 80

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.