ローカルネットワークにホスト名を設定する

ローカルネットワークにホスト名を設定する

だから私は私と学校の他のオタクがウェブサイトのテストやサーバーの練習に使用する実験的なネットワークを設定しています。私はシステムとネットワーク管理者です(しかし実際にはQuakeをプレイするためのものです)。

自宅で遊んで、IPアドレス全体をホストコンピュータ(この場合はRaspberry Pi)にSSHで接続する必要があるのは面倒です。私の現在のホスト名はですhyperfang。代わりにpi@longip、どうすればいいですかpi@hyperfang?私のルーターに静的DNS設定があります。この機能を機能させるには、ネットワークにDNSサーバーを設定する必要がありますか?

私のネットワークはワイヤレスなので、ラップトップはそのネットワークに接続します。ラップトップへのrootアクセス権はありませんが、ユーザーが経由でログインできる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を構成したい場合は、2つの主要なプログラムがあります。DNSそして製本。このLANはインターネットにも接続されていないので、どちらも過剰だと思いますが、どちらもオプションです。 dnsmasqは設定が簡単ですが、機能が少ない傾向があります。正しく構成されている場合、バインディングはエンタープライズクラスのインフラストラクチャをサポートできます。

修正する

Raspberry PiをローカルDNSサーバーとして使用できるのは珍しいことではありません。始めるのに役立ついくつかのリンクは次のとおりです。

Linuxマガジン blog.grobinson.net markwilson.it

私の関心事は、このネットワークのクライアントが現在どのように構成されているのか、それを変更できるかどうかです。クライアントがすべてDHCP用に設定されており、フルアクセス権を持つルータが現在その役割を担っている場合は、すべての準備が完了しました。ルーターのDNSサーバーをRaspberry Piの固定(非DHCP)アドレスに設定するだけです。スケジュールされたDHCP公開IPアドレスをパイのMACアドレスとして使用するようにルーターを設定すると、DHCPを使用できます。ほとんどすべてのルーターでこの設定を許可します。

完了したら、以下の手順に従って pi で DNS を設定します。

一部のルータには追加機能が組み込まれています。これを調べる必要があります。場合によっては、カスタムドメイン(例:.localや.lan)を作成し、ここにすべてのdhcpクライアントを追加して、ホスト名によるLAN通信を許可します。他のファイルにはホストファイルと同様の機能があります(またはホストファイルもあります)。本格的に見る前に、dnsmasqを少し見てみましょう。

答え3

自分のシステムで使用できるエイリアスのみが必要な場合は、DNSサーバーやルーターを含める必要はありません。使用する方法に応じて、2つの場所のいずれかにエイリアスを作成できます。

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に対してping、Telnet、wget、curlなどを実行できるようにするには、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]

関連情報