it-swarm-ko.tech

호스트 이름을 사용하여 LAN에서 머신에 액세스 할 수있게하는 방법

호스트 이름을 사용하여 액세스하려는 머신에 대한 세부 정보는 다음과 같습니다.

$ hostname
hostname
$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   hostname.company.local  hostname

기본 Debian 6 (Squeeze) 설치이므로 아직 아무 것도 다루지 않았습니다.

이것은 위의 컴퓨터에 액세스하려고하는 컴퓨터 (Debian Unstable을 실행 중)에서 얻는 것입니다.

$ ping hostname
ping: unknown Host hostname
$ ping hostname.company.local
ping: unknown Host hostname.company.local
$ cat /etc/resolv.conf
nameserver 192.168.2.21
nameserver 192.168.2.51
search company.local
131
tshepang

로컬 네트워크를 포함하여 인터넷에서 컴퓨터는 IP 주소 로 서로 전화합니다. 머신 B의 이름을 사용하여 머신 A에서 머신 B에 액세스하려면 머신 A는 B의 이름을 IP 주소에 맵핑 할 수있는 방법이 있어야합니다. A에서 머신 이름을 선언하는 세 가지 방법이 있습니다.

  • 호스트 파일 . 이것은 이름을 주소에 매핑하는 간단한 텍스트 파일입니다.
  • 도메인 이름 시스템 (DNS) . 이것은 글로벌 인터넷에서 사용되는 방법입니다. 예를 들어, 브라우저에이 페이지를로드 할 때 컴퓨터에서 가장 먼저하는 일은 unix.stackexchange.com의 주소를 알기 위해 DNS 요청을하는 것입니다.
  • NIS , LDAP 또는 Active Directory 와 같은 다른 이름 데이터베이스 이들은 일부 회사 네트워크에서 사용되지만 자주 사용되지는 않습니다 (사용자 데이터베이스에 NIS, LDAP 또는 AD를 사용하는 많은 네트워크는 머신 이름에 DNS를 사용함). 네트워크에서 이들 중 하나를 사용하는 경우 전문적인 네트워크 관리자가 있으므로 수행 할 작업을 요청해야합니다.

이들이 실제로 작동하는 방법에는 여러 가지가 있습니다. 그것들을 모두 덮을 수는 없습니다. 이 답변에서는 몇 가지 일반적인 상황을 설명하겠습니다.

호스트 파일

Hosts 파일 방법은 특별한 방법이 필요하지 않다는 장점이 있습니다. 한 대의 컴퓨터 이름이 변경 될 때 모든 컴퓨터를 업데이트해야하므로 여러 대의 컴퓨터가있는 경우 번거로울 수 있습니다. B의 IP 주소가 동적으로 할당되는 경우 (네트워크에 연결할 때마다 다른 주소를 얻도록) 적합하지 않습니다.

호스트 파일은 이름을 IP 주소에 매핑하는 간단한 행 목록입니다. 다음과 같이 보입니다 :

127.0.0.1       localhost localhost.localdomain
198.51.100.42   darkstar darkstar.bands

유닉스 시스템에서 호스트 파일은 /etc/hosts입니다. Windows에서는 c:\windows\system32\drivers\etc\hosts입니다. 인터넷에 연결할 수있는 모든 운영 체제에는 비슷한 파일이 있습니다. 위키 백과에 목록이 있습니다 .

A의 호스트 파일에서 B에 대한 항목을 추가하려면 다음을 수행하십시오.

  1. B의 IP 주소를 결정하십시오. B에서 ifconfig 명령을 실행하십시오 (명령을 찾을 수 없으면 /sbin/ifconfig를 시도하십시오). 출력에는 다음과 같은 줄이 포함됩니다.

    eth1      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab
              inet addr:10.3.1.42  Bcast:10.3.1.255  Mask:255.255.255.0
    

    이 예에서 B의 IP 주소는 10.3.1.42입니다. inet addr: 줄이 여러 개인 경우 네트워크 카드에 해당하는 줄을 선택하십시오. lo 항목이나 터널 또는 가상 항목은 절대 사용하지 마십시오.

  2. A에서 hosts 파일을 편집하십시오. A가 일부 유닉스 시스템을 실행중인 경우 /etc/hosts를 수퍼 유저로 편집해야합니다. 시스템 관리자 (루트)로 명령을 실행하는 방법 }를 참조하십시오.

가정 또는 소규모 사무실 네트워크의 DHCP + DNS

필요한 장비가 있다면이 방법이 가장 간단합니다. 하나의 장치 만 구성하면 모든 컴퓨터에서 서로의 이름을 알 수 있습니다. 이 방법은 컴퓨터가 네트워크에 연결할 때 컴퓨터가 자동으로 IP 주소를 검색하는 방법 인 DHCP 을 통해 IP 주소를 얻는다고 가정합니다. DHCP가 무엇인지 모른다면 아마 그렇습니다.

네트워크에 홈 라우터 가있는 경우 해당 라우터에 연결된 머신의 이름을 구성하는 것이 가장 좋습니다. 먼저, B의 MAC 주소 를 알아 내야합니다. 각 네트워크 장치에는 고유 한 MAC 주소가 있습니다. B에서 ifconfig -a 명령을 실행하십시오 (명령을 찾을 수 없으면 /sbin/ifconfig -a를 시도하십시오). 출력에는 다음과 같은 줄이 포함됩니다.

    eth1      Link encap:Ethernet  HWaddr 01:23:45:67:89:ab

이 예에서 MAC 주소는 01:23:45:67:89:ab입니다. 케이블 (또는 wifi를 통해 연결된 경우 wifi 카드)을 통해 라우터에 연결된 네트워크 포트에 해당하는 HWaddr 라인을 선택해야합니다. 여러 항목이 있는데 어떤 항목을 모르는 경우 케이블을 연결하고 IP 주소를받는 네트워크 장치를 확인하십시오 (inet addr 줄 바로 아래).

이제 라우터의 웹 인터페이스에서 "DHCP"와 같은 설정을 찾으십시오. 설정의 이름과 위치는 라우터 모델에 따라 다르지만 대부분 비슷한 기본 설정이 있습니다. 토마토 펌웨어 의 모습은 다음과 같습니다.

tomato screenshot

MAC 주소, IP 주소 및 원하는 이름을 입력하십시오. 로컬 네트워크의 주소 범위에서 IP 주소를 선택할 수 있습니다. 대부분의 홈 라우터는 192.168. x 형식의 주소 범위로 사전 구성되어 있습니다. y 또는 10. x . y . z . 예를 들어 위에 표시된 토마토 라우터의 "네트워크"탭에는 값이 10.3.0.1 인 "라우터 IP 주소"설정과 값이 255.255.255.0 인 "서브넷 마스크"설정이 있습니다. 로컬 네트워크의 주소는 10.3.0. z 형식이어야합니다. 자동 할당 된 DHCP 주소에 대한 주소 범위도 있습니다 (10.3.0.129–10.3.0.254). 수동으로 할당 한 DHCP 주소의 경우이 범위에 속하지 않는 주소를 선택하십시오.

이제 B를 네트워크에 연결하면 지정한 IP 주소가 얻어지고 네트워크의 모든 컴퓨터에서 지정된 이름으로 연결할 수 있습니다.

Dnsmasq로 나만의 DNS 서버 만들기

사용 가능한 홈 라우터가없는 경우 모든 Linux 시스템에서 동일한 기능을 설정할 수 있습니다. Dnsmasq 을 사용하여 DNS 을 설정하는 방법을 설명하겠습니다. 다른 유사한 프로그램이 많이 있습니다. 구성하기 쉽고 가볍기 때문에 Dnsmasq를 선택했습니다 (예를 들어 위에서 설명한 Tomato 라우터가 사용합니다). Dnsmasq는 PC, 서버 및 네트워크 장비를위한 대부분의 Linux 및 BSD 배포판에서 사용할 수 있습니다.

항상 켜져 있고 고정 IP 주소가 있고 어떤 종류의 Linux 또는 BSD를 실행중인 컴퓨터를 선택하십시오. S (서버용)라고합시다. S에서 dnsmasq 패키지를 설치하십시오 (아직없는 경우). 아래에서는 구성 파일이 /etc/dnsmasq.conf라고 가정합니다. 위치는 배포판에 따라 다를 수 있습니다. 이제 몇 가지 작업을 수행해야합니다.

  • Dnsmasq에게 인터넷에서 가져온 호스트 이름 외에 호스트 이름을 제공하도록 지시하십시오. 가장 간단한 방법은 /etc/hosts에 이름과 IP 주소를 입력하고 (위의 "호스트 파일"섹션 참조) /etc/dnsmasq.confno-hosts 지시문이 없는지 확인하는 것입니다. 주석 처리되지 않은. (#로 시작하는 줄은 주석 처리됩니다.) 이름을 다른 파일에 넣을 수 있습니다. 그렇게하면 addn-hosts=/path/to/hosts/file/etc/dnsmasq.conf 줄을 넣으십시오.
  • 인터넷상의 컴퓨터 이름에 대한 IP 주소를 얻는 방법을 Dnsmasq에 알려주십시오.

    • 데비안, 우분투 또는 파생 제품을 사용하는 경우 resolvconf 패키지를 설치하십시오. 대부분의 경우 모든 것이 기본적으로 작동합니다.
    • 네트워크 관리자 나 ISP가 DNS 서버의 주소를 제공 한 경우 /etc/dnsmasq.conf에 입력하십시오. 예를 들면 다음과 같습니다.

      server=8.8.8.8
      server=8.8.4.4
      
    • 현재 DNS 설정이 무엇인지 모른다면 /etc/resolv.conf 파일을보십시오. nameserver 8.8.8.8와 같은 줄이 표시되면 server=8.8.8.8/etc/dnsmasq.conf 줄을 넣으십시오. /etc/dnsmasq.conf를 변경 한 후 Dnsmasq를 다시 시작하십시오. 그렇게하는 명령은 배포판에 따라 다릅니다. 일반적인 가능성은 restart dnsmasq 또는 /etc/init.d/dnsmasq restart입니다.

  • S에게 모든 호스트 이름 요청에 Dnsmasq 서비스를 사용하도록 지시하십시오. /etc/resolv.conf 파일을 루트로 편집하고 모든 nameserver 줄을 제거한 다음 nameserver 127.0.0.1를 대신 넣으십시오.
    • 데비안 또는 우분투에서 resolvconf를 사용하는 경우, 네트워크를 가동하여 resolvconf 패키지를 설치하면 /etc/resolv.conf가 차선책 일 수 있습니다. /etc/resolvconf/resolv.conf.d/ 디렉토리의 base, headtail 파일에 nameserver 항목이 포함되어 있지 않은지 확인한 후 resolvconf -u (루트).
  • 다른 시스템에 S를 DNS 서버로 사용하도록 지시하십시오. /etc/resolv.conf를 편집하고 모든 nameserver 줄을 단일 nameserver 10.3.0.2로 바꾸십시오. 여기서 10.3.0.2는 S의 IP 주소입니다 (S의 IP 주소를 찾는 방법은 위 참조).

Dnsmasq를 DHCP 서버로 사용하여 머신이 이름에 해당하는 주소를 자동으로 얻을 수 있습니다. 이것은이 답변의 범위를 벗어납니다. Dnsmasq 설명서를 참조하십시오 (어렵지는 않습니다). 지정된 로컬 네트워크에는 단일 DHCP 서버 만있을 수 있습니다 (로컬 네트워크의 정확한 정의는이 답변 범위를 벗어납니다).

글로벌 인터넷의 이름

지금까지 로컬 네트워크를 가정했습니다. 세계의 다른 구석에있는 기계에 이름을 지정하려면 어떻게해야합니까? DHCP와 관련된 부분은 로컬 네트워크 내에서만 적용 할 수 있다는 점을 제외하고 위의 기술 중 하나를 계속 사용할 수 있습니다. 또는 시스템에 퍼블릭 IP 주소가있는 경우 자신의 퍼블릭 이름을 등록 할 수 있습니다. (공용 이름에도 개인 IP 주소를 할당 할 수 있습니다. 덜 일반적이고 덜 유용하지만 기술적 인 어려움은 없습니다.)

자신의 도메인 이름 얻기

자신 만의 domain name 을 가져 와서이 도메인 내의 호스트 이름에 IP 주소를 할당 할 수 있습니다. 도메인 이름을 도메인 이름 공급자에 등록해야합니다. 이 비용은 일반적으로 가장 저렴한 도메인의 경우 연간 10 ~ 15 달러입니다. 도메인 이름 제공 업체의 웹 인터페이스를 사용하여 호스트 이름에 주소를 할당하십시오.

동적 DNS

컴퓨터에 동적 IP 주소가있는 경우 dynamic DNS 프로토콜을 사용하여 주소가 변경 될 때 컴퓨터 이름과 관련된 IP 주소를 업데이트 할 수 있습니다. 모든 도메인 이름 공급자가 동적 DNS를 지원하는 것은 아니므로 구입하기 전에 쇼핑하십시오. 개인 용도로 No-IP 는 자체 도메인 (예 : example.ddns.net)을 사용하는 경우 무료 동적 DNS 서비스를 제공합니다.

멀티 캐스트 DNS (mDNS)를 사용하십시오. LAN 서브넷에서 작동하는 제로 구성 프로토콜입니다. 서버가 필요하지 않습니다. .local TLD (이미 사용중인 것입니다).

당신이 요구하고 있기 때문에, 다른 모든 것은 지나친 것처럼 보입니다. 그렇지 않다면 아마 묻지 않았을 것입니다.

27
tne
vi /etc/dhcp3/dhclient.conf

send Host-name "ubuntu-laptop";

/etc/init.d/networking restart
4
LanceBaynes

컴퓨터는 단지 어떤 호스트 이름이 어떤 IP 주소에 속하는지 마술처럼 알지 못합니다. 로컬 호스트에서도 일종의 조회가 필요합니다.

어떤 종류의 이름 조회 서비스를 사용하도록 다른 시스템을 구성해야합니다. 이것은 될 수있다 /etc/hosts 클라이언트, ldap, nsswitch 또는 일반 DNS 서버에서. bind를 사용하고 로컬 도메인 내의 모든 로컬 컴퓨터를 입력 한 다음 해당 사이트의 DNS를 제공하도록합니다.

3
Caleb

호스트 파일을 방해하지 않고 인터넷 도메인 이름과 인터넷 액세스 권한을 소유 한 경우 내부 IP를 가리키는 A 유형 하위 도메인을 만들 수 있습니다. 예를 들어 setup intranet-pc1.someperson.com10.0.1.13.

1
MK Yung