로컬 네트워크에 호스트 이름 설정

로컬 네트워크에 호스트 이름 설정

그래서 저는 저와 학교의 다른 괴짜들이 웹사이트 테스트와 서버 실습에 사용할 실험적인 네트워크를 설정하고 있습니다. 저는 시스템 및 네트워크 관리자입니다(그러나 실제로는 Quake를 플레이하기 위한 것입니다).

집에서 가지고 놀면서 전체 IP 주소를 호스트 컴퓨터(이 경우 Raspberry Pi)에 SSH로 연결해야 하는 것이 지루하다는 것을 알았습니다. 내 현재 호스트 이름은 입니다 hyperfang. 대신 pi@longip, 어떻게 해야 합니까 pi@hyperfang? 내 라우터에 정적 DNS 설정이 있습니다. 이 기능이 작동하려면 네트워크에 DNS 서버를 설정해야 합니까?

내 네트워크는 무선이므로 노트북이 해당 네트워크에 연결됩니다. 랩톱에 대한 루트 액세스 권한은 없지만 사용자가 를 통해 로그인할 수 있는 Raspberry Pi가 있습니다 ssh. 내가 원하는 것은 누군가가 네트워크에 가입하고 내 Pi에 로그인하려고 할 때 그것을 사용할 수 있다는 것입니다 pi@hyperfang. 나는 호스트 파일 구성 솔루션이 아니라 로컬 도메인과 같은 다른 것을 찾고 있습니다.

내 Pi에서 이것을 실행 했지만 avahi작동하지 않습니다.

노트: 이 네트워크는 인터넷에 연결되어 있지 않으며 순수 로컬 네트워크입니다.

답변1

ssh를 사용하여 Pi에 액세스 할 수 있습니다 [email protected]. hostname.local이는 IP 주소가 필요한 대부분의 장소에서 작동하지만 몇 가지 예외가 있습니다 rsync.

이는 avahi실행 중이라고 가정하며 최근 설치의 경우에도 마찬가지입니다.Raspbian

답변2

투자하려는 시간, 기술적 능력, 원하는 시스템 유연성에 따라 몇 가지 다른 옵션이 있습니다.

소규모 혼합 네트워크 또는 Windows가 아닌 네트워크의 경우 각 컴퓨터에서 호스트 파일을 사용하는 것이 좋습니다. 완전히 Windows 기반 네트워크(게시물 및 사이트 이름을 기준으로 볼 때 분명히 존재하지 않음)의 경우 일반적으로 netbios를 사용하여 네트워크에서 다른 Windows 시스템을 "찾아" 호스트 이름 조회 기능을 제공할 수 있습니다. 다른 것들 사이.

호스트 파일은 Linux 컴퓨터의 /etc/hosts에 있으며 IP 주소를 호스트 이름에 매핑하는 간단한 목록입니다. 이는 고정 IP 주소가 있고 호스트 이름과 IP 주소를 할당해야 하는 컴퓨터 수가 상대적으로 적은 경우 올바른 접근 방식입니다.

이것은 이 컴퓨터에 있는 호스트 파일의 복사본입니다. 로컬 DNS 서버(dnsmasq)를 사용하기 때문에 파일이 많지 않습니다.

#
# /etc/hosts: static lookup table for host names
#

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       localhost.localdomain   localhost
::1             localhost.localdomain   localhost
192.168.1.2     lenny
# End of file

가지고 있는 각 IP 주소/호스트 이름 쌍에 대해 이 파일에 새 줄을 추가하기만 하면 됩니다. 로컬 호스트 주소인 ipv6 및 ipv4는 파일에 보관되어야 합니다. 이것이 없으면 일반적으로 문제가 발생합니다.

이 목록을 채운 후 LAN의 모든 컴퓨터에 배포해야 합니다. 완료되면 IP 주소가 아닌 호스트 이름으로 각 컴퓨터를 참조할 수 있습니다. 예를 들어 특정 IP 주소에 대해 여러 호스트 이름/별칭을 지정할 수도 있습니다.

192.168.1.2    lenny   lennon  lemon

그러면 이러한 이름 중 하나를 사용하여 원격 컴퓨터에 연결할 수 있습니다(수정된 호스트 파일이 설치된 경우).

Windows 시스템에는 일반적으로 시스템의 조금 더 깊은 곳에 묻혀 있는 호스트 파일도 있습니다.

C:\Windows\System32\drivers\etc\hosts 

Linux 버전과 동일한 구문을 사용합니다. 이에 대한 자세한 내용을 볼 수 있는 링크는 다음과 같습니다.방법.

전용 서버가 있고 자체 로컬 DNS를 구성하려는 경우 사용할 수 있는 두 가지 주요 프로그램이 있습니다.DNS그리고제본. 이 LAN은 인터넷에도 연결되어 있지 않기 때문에 둘 다 과잉이라고 생각하지만 둘 다 옵션입니다. dnsmasq는 구성하기가 더 쉽지만 기능이 덜 풍부한 경향이 있습니다. 올바르게 구성되면 바인딩은 엔터프라이즈급 인프라를 지원할 수 있습니다.

고쳐 쓰다

Raspberry Pi를 로컬 DNS 서버로 사용할 수 있는 것은 드문 일이 아닙니다. 시작하는 데 도움이 되는 몇 가지 링크는 다음과 같습니다.

리눅스 매거진 blog.grobinson.net markwilson.it

내 관심사는 이 네트워크의 클라이언트가 현재 어떻게 구성되어 있는지와 이를 수정할 수 있는지 여부입니다. 클라이언트가 모두 DHCP용으로 구성되어 있고 전체 액세스 권한이 있는 라우터가 현재 해당 역할을 맡고 있다면 모든 준비가 완료된 것입니다. 라우터의 DNS 서버를 Raspberry Pi의 고정(비DHCP) 주소로 설정하기만 하면 됩니다. 예약된 DHCP 게시 IP 주소를 파이의 MAC 주소로 사용하도록 라우터를 구성하면 DHCP를 사용할 수 있습니다. 거의 모든 라우터에서 이 구성을 허용합니다.

완료되면 아래 지침에 따라 pi에서 DNS를 구성하십시오.

일부 라우터에는 추가 기능이 내장되어 있습니다. 이를 조사해야 합니다. 어떤 경우에는 사용자 정의 도메인(예: .local 또는 .lan)을 만들고 여기에 모든 dhcp 클라이언트를 추가하여 호스트 이름으로 LAN 통신을 허용합니다. 다른 파일은 호스트 파일과 유사한 기능을 갖습니다(또는 심지어 호스트 파일도 가지고 있음). 본격적으로 살펴보기 전에 dnsmasq를 잠깐 살펴보겠습니다.

답변3

자신의 시스템에서 사용할 수 있는 별칭만 필요한 경우에는 DNS 서버나 라우터를 포함할 필요가 없습니다. 사용하려는 방법에 따라 두 위치 중 하나에 별칭을 만들 수 있습니다.

SSH 별칭만

SSH를 통해서만 hyperfang에 연결하려는 경우 SSH 명령을 효과적으로 단축하는 일부 정보가 포함된 SSH 구성 파일을 생성할 수 있습니다. 예를 들어.

  1. ~/.ssh/config가 있는지 확인합니다. 존재하지 않으면 그냥 만드십시오 touch ~/.ssh/config.

  2. 다음과 같이 SSH 구성 파일을 편집합니다.

    Host hyperfang
        HostName <longassip>
        User pi
    
  3. 을 사용하여 SSH 연결을 시작합니다 ssh hyperfang.

시스템 전체 별칭(예: SSH뿐만 아니라 모든 네트워크 작업)

Hyperfang에 대해 핑, 텔넷, wget, 컬 등을 실행할 수 있으려면 SSH 구성 파일보다 더 확실한 것이 필요합니다. 이 경우 호스트 파일이 작동합니다. 이 변경을 수행하려면 루트 자격 증명이나 sudo 권한이 필요합니다.

  1. /etc/hosts다음 줄을 추가하려면 편집하세요 .

    <longassip> hyperfang

  2. 다음 명령을 사용하여 SSH 연결을 시작하십시오.ssh pi@hyperfang

노트:

네트워크의 모든 사람이 Hyperfang을 별칭으로 사용할 수 있도록 하려면 이러한 솔루션은 적합하지 않으며 DNS 서버가 필요합니다. 이 경우 라우터 지침을 따르거나 네트워크에 DNS 서버를 설정하세요.

답변4

고정 IP 및 "호스트" 파일

장치의 IP를 다음으로 설정하십시오.고정 IP해당 IP와 호스트 이름을 파일에 추가하세요 /etc/hosts. 예를 들어,

192.168.100.22    hyperfang.localnet.lan    hyperfang

SSH 구성 파일

또한 다른 답변에서 지적했듯이 SSH 프로필/옵션을 추가하면 사용자, 포트 등과 같은 다른 항목을 지정할 수 있습니다.

$ cat ~/.ssh/config

Host 192.168.100.22
   User pi

스크립트

간단한 스크립트를 만들거나 alias이 함수를 호출하세요. 분명히, 다른 사람들이 이 프로세스를 용이하게 하기 위해 그것을 사용하고 싶다면, 스크립트가 alias당신의 시스템 및/또는 사용자에게 로컬이기 때문에 갈 길입니다 .

alias sspi='ssh [email protected]'

필요한 경우 배포할 수 있는 스크립트에 대한 매우 간단한 시도는 다음과 같습니다.

#!/bin/bash

# Optional Message
echo 'This script is about to connect to...'

# Prompt for confirmation
read -p "Are you sure? " -n 1 -r
echo    # (optional) move to a new line
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
    exit 1
fi

xterm -e ssh [email protected]

관련 정보