Tên máy tính OS X không khớp với những gì hiển thị trên thiết bị đầu cuối


119

Tên máy tính của tôi trong System Preferences> Sharing được đặt thành "archos" nhưng đang hiển thị là "iphone" trên thiết bị đầu cuối. Nó chỉ bắt đầu làm điều này sau khi tôi tải Xcode để phát triển iPhone.

Last login: Mon Nov  7 14:46:55 on ttys001
iphone:~ travis$ 

Bất cứ ý tưởng những gì có thể gây ra điều này?


bạn nhận được gì khi gõ echo $ HOSTNAME
Daniel

1
Điều này thật kỳ lạ ... Tôi đang nhận được 'archos.local' cho tiếng vang $ HOSTNAME. Tôi đã viết thư ban đầu khi tôi ở văn phòng, nhưng trên mạng gia đình của tôi nó đã trở lại bình thường. Tôi tự hỏi nếu điều này có liên quan đến mạng lưới công việc của tôi?
Travis Nelson

Câu trả lời:


94

Điều này hoàn toàn bình thường khi điều này xảy ra; khi bạn đăng nhập Terminal bash từ xa sẽ thực hiện tra cứu DNS ngược. Nó sẽ chỉ giống nhau nếu tên máy chủ không được chỉ định trên mạng mà bạn đang kết nối và không có phản hồi từ máy chủ DHCP hoặc việc tra cứu ngược lại với máy chủ DNS từ xa không thể giải quyết.

Bạn có thể dễ dàng vượt quá cài đặt mặc định bằng cách sử dụng lệnh này trong Terminal:

# sudo scutil --set HostName archos

Bạn có thể kiểm tra nó bằng cách sử dụng:

# nslookup nn.nn.nn.nn
( or )
# host nn.nn.nn.nn

(trong đó nn biểu thị địa chỉ IP của máy Mac của bạn)


6
@Gio Xóa khóa HostName trong Hệ thống khỏi / L Library /Preferences / SystemConfiguration / pferences.plist. Xem câu trả lời này .
Lri

2
@Gio: @ Bài đăng của Lauri có thông tin lý lịch tuyệt vời, nhưng nếu bạn muốn một lối tắt: xóa, hãy chạy sudo scutil --set HostName ''.
mkuity0

3
HostNameKhông nên thiết lập vì nó tạo ra một giá trị riêng biệt mà vẫn tồn tại ngay cả khi bạn cố gắng thay đổi tên máy chủ thông qua System Preferences > Sharing. Ngược lại, cài đặt LocalHostNamecập nhật cùng một giá trị và thông thường cũng được chọn bởi trình bao và hostname( ComputerNamegiá trị này phải được cập nhật song song). Hay việc thiết lập HostNamehành xử khác đi theo cách có lợi ở đây?
mkuity0

1
một tên khác để kiểm tra tên máy chủ làhostname -f
ericn

2
Tôi gặp khó khăn này trên 2 máy và các ý tưởng được đề xuất trong câu trả lời của J.Hoover bên dưới, và trong nhận xét của mkuity0 ở trên, đã không hoạt động. Cụ thể, cả hai bạn đều khuyên rằng người ta chỉ thay đổi LocalhostName và ComputerName, tuy nhiên, việc thay đổi này không bao giờ thay đổi Terminal để phản ánh Tên máy tính được chỉ định trong Tùy chọn hệ thống. Tôi tin rằng lý do cho điều này, trong trường hợp của tôi, là cả hai máy đều là bản sao lưu Time Machine và giữ lại thông tin lưu trữ cục bộ từ hình ảnh cũ mặc dù tôi đổi tên vào một ngày sau đó. Chỉ HostName làm việc cho tôi. FYI cho người khác.
oemb1905

45

Bạn cũng có thể muốn thay đổi một số thứ khác bằng lệnh scutil:

sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"

2
Bằng cách thay đổi tên trong Tùy chọn hệ thống-> Chia sẻ và sau đó sử dụng scutilđể đặt HostName, cả hai ComputerNameLocalHostNameđã được đặt thành tên mới cho tôi (trong Mavericks). Rất vui khi biết rằng những cài đặt khác tồn tại, mặc dù.
Jim Stewart

@JimStewart: Thật vậy, đó là lý do tại sao KHÔNG BAO GIỜ được đặt HostName, vì làm như vậy sẽ khiến giá trị đó tồn tại ngay cả khi bạn cố gắng thay đổi tên máy chủ của mình thông qua Tùy chọn hệ thống . Ngược lại, cái LocalHostName được nhặt bởi vỏ và hostname, vì vậy HostNamekhông bao giờ cần thiết.
mkuity0

Trong trường hợp của tôi, tôi đã có một giá trị LocalhostName không chính xác. Chạy sudo scutil --set LocalHostName ''LocalhostName đã xóa và bây giờ lời nhắc của tôi đang sử dụng ComputerName, có giá trị chính xác.
đánh dấu

14

Có hai lý do tiềm năng cho shell ( $HOSTNAMEbiến, '\h'in $PS1) và hostnametiện ích để báo cáo tên máy chủ khác với tên được hiển thị trong System Preferences > Sharing:

  • sudo scutil --set HostName newNameđã được sử dụng để liên tục thay đổi tên máy chủ - thật không may, giá trị này độc lập với LocalHostNamegiá trị được đặt bởi Tùy chọn hệ thống đằng sau hậu trường - mặc dù man hostnamegợi ý phương pháp này, KHÔNG SỬ DỤNG CNTT vì lý do đó; chạy sudo scutil --set HostName ''để loại bỏ nó , tại điểm LocalHostNamecần được báo cáo lại; để biết thông tin cơ bản, hãy xem bài đăng này của @Lauri Ranta.

  • [ Cập nhật: Sau đây là không còn đúng như của OSX 10.10 ] Nếu bạn /etc/hoststập tin có một mục phù hợp với địa chỉ IP của máy tính của bạn, tên của entry sẽ được báo cáo.

Chỉ khi cả hai điều trên không đúng thì vỏ và hostnamephản ánh giá trị được đặt thông qua Tùy chọn hệ thống.


Nếu bạn muốn thay đổi tên máy chủ của mình từ trình bao , hãy chạy cả hai cách sau:

  • sudo scutil --set LocalHostName <newName>
  • sudo scutil --set ComputerName <newFriendlyName>

trong đó <newFriendlyName>có thể là phiên bản thân thiện hơn (dấu cách, dấu chấm câu) của <newName>(chỉ chữ số và dấu gạch ngang).


thật không may, chỉ cần đặt hai cái đó là không đủ trong trường hợp của tôi: gist.github.com/rdp/71d5368087b94b5ea55a
rogerdpack 19/12/14

@rogerdpack: Và bạn đã chạy sudo scutil --set HostName ''trước (vấn đề trường hợp) và chắc chắn rằng không có mục nào trong /etc/hosts? scutil --get HostNamenên báo cáo Hostname: not set.
mkuity0

yeah scutil --get HostName HostName: not set/ etc / hosts có vẻ lành tính ...
rogerdpack 19/12/14

1
@rogerdpack: Câu hỏi ngớ ngẩn: PS1biến của bạn không có tên máy chủ được mã hóa cứng thay vì sử dụng \h, phải không? Về một bên: /etc/hostskhông còn được tham khảo kể từ OSX 10.10 (Tôi đã cập nhật câu trả lời của mình).
mkuity0

2
Đẹp. Xóa tên máy chủ (bằng cách đặt nó thành chuỗi trống như bạn đề xuất sudo scutil --set HostName '' :) một lần nữa cho phép OS X ánh xạ tên máy tính đến địa chỉ IP của nó (ví dụ: hiện tại nó hoạt động ping <computername>).
Brent Faust


5

Tôi đồng ý rằng mẹo của Jeffrey Hoover là câu trả lời đúng. Xóa bộ đệm DNS và khởi động lại máy Mac cũng là một bước hay. Đây là biến thể của câu trả lời của Jeff Hoover:

sudo -i
Password:

for n in HostName ComputerName LocalHostName; do
    scutil --set $n new_hostname
done

exit

1
Bạn đang thiếu một -: nó phải được --setlàm việc. Ngoài ra, như tôi đã nhận xét tại câu trả lời của Jeff: có lẽ tốt hơn là không nên đặt HostName.
mkuity0

4

Tùy chọn hệ thống -> Chia sẻ -> Tên máy tính -> đặt thành bất cứ điều gì

Và sau đó khởi động lại máy tính của bạn. Không có lệnh console là cần thiết. Hoạt động cho OS X 10.10.2


Vào ngày 10.14.6, tôi đã gặp tình huống Chia sẻ -> Tên máy tính được đặt theo cách tôi muốn nó vẫn hostnametrả về "MacBook-Pro". Tôi thậm chí đã thay đổi nó và vẫn có vấn đề. Tôi chưa bao giờ thấy vấn đề này trước đây. Các scutillệnh làm việc cho tôi. Tôi đang tự hỏi bạn sẽ làm điều đó ở đâu / như thế nào thông qua giao diện GUI.
pedz



2

Tôi gặp vấn đề là chỉ có vỏ ( zshtrong trường hợp của tôi) không hiển thị tên máy tính chính xác. Chỉ cần khởi động lại shell đã giải quyết nó:

exec /bin/zsh

2

Ngoài câu trả lời trước, hãy nhớ rằng bạn có thể sử dụng địa chỉ tĩnh trong bộ định tuyến của mình. Bạn phải nhập IP tĩnh và địa chỉ MAC của card mạng, sau đó bạn đặt tên cho nó. Tên máy chủ sẽ được tự động cập nhật thành tên được chỉ định. Đó là nó.

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.