ネットワーキング/ WiFi /静的IPアドレスを設定するにはどうすればよいですか?


217

私は(何百ものいずれかの)チュートリアルに従っていますが、機能しません。

Raspberry Piでネットワーク/ WiFi /静的IPアドレスを設定するにはどうすればよいですか?


(これは、数百の同様の質問をうまく捉えることができるドロシー・ディクサーです。)

回答:


253

このチュートリアルでは、2015-05-05以降、Raspbianに含まれているデフォルトのネットワークマネージャーdhcpcdを使用してネットワークをセットアップする方法について説明します。Raspbian BusterRaspbian StretchRaspbian Jessie、最後のRaspbian WheezyのFoundationリリースに適用されます バスターの設定はストレッチと同じです。

Raspbian Networkingのセットアップ方法

ルーターでイーサネット接続を使用している場合、構成は不要であり、そのまま使用できます。


注Pi3 / Pi Zero W内蔵WiFiは5GHzネットワークをサポートしておらず、無線規制ドメインが設定されるまで、2.4GHzネットワーク上のCh 12,13に接続できない場合があります

5GHz対応デバイスでのWiFiは、無線規制ドメインが設定されるまで無効になります(Pi4B、Pi3B +、Pi3A +)

  • ドメインはRaspberry Pi Configuration(rc_gui)を介して、raspi-configまたはでcountry=適切なISO 3166 alpha2国コードを設定することにより設定できます/etc/wpa_supplicant/wpa_supplicant.conf

WiFiを使用しており、GUIFoundationガイドラインに従ってセットアップされている場合

Foundationガイドラインに従ってセットアップされたコマンドラインからWiFiを使用している場合、 これはブロードキャストしないネットワークをセットアップする唯一の方法です。SSID

これは、シリアルコンソールケーブルなどを使用して「ヘッドレス」システムをセットアップするためにも使用できますが、セットアップにモニターとキーボードを借りることができれば非常に簡単です。イーサネットケーブルを使用してPCに接続する別の方法については、以下を参照してください。

ヘッドレスRaspbian WiFiセットアップ

Raspbianは2016年5月以降、ブートディレクトリの内容をチェックして、というファイルがあるかどうかを確認し、ファイルwpa_supplicant.confをにコピーして/etc/wpa_supplicant既存のwpa_supplicant.confファイルを置き換えます。ブートディレクトリ内のファイルは削除されます。これは、wpa_supplicant.conf以下で詳述する設定を使用して、ヘッドレスセットアップを有効にするために使用できます。(おそらくssh同様に有効にする必要があります。)

私のIPアドレスは何ですか?

IP AddressPiが使用していることだけを知りたい場合はhostname -I、コマンドラインでEnter キーを押します。

SSH

2016年11月リリースの時点で、RaspbianのSSHサーバーはデフォルトで無効になっています。あなたはする必要があります有効に手動で。

sudo raspi-configターミナルに入力し、最初にを選択してadvanced optionsからに移動しssh、を押しEnterて[sshサーバーの有効化または無効化]を選択します。

ヘッドレスセットアップの場合、SDカードのブートパーティションに「ssh」という名前のファイルを拡張子なしで配置することにより、SSHを有効にできます。

ネットワークファイル

最近のRaspbian /etc/network/interfacesを実行している場合は、次のようになります。変更した場合は、PUT IT BACKします。(またはStretch単に削除するだけで、事実上何もしません。)

#ifup(8)およびifdown(8)が使用するinterfaces(5)ファイル

#このファイルはdhcpcdで使用されるように書かれていることに注意してください
#静的IPについては、/ etc / dhcpcd.confおよび「man dhcpcd.conf」を参照してください

#/etc/network/interfaces.dのファイルを含めます:
ソースディレクトリ/etc/network/interfaces.d

ファイル/etc/wpa_supplicant/wpa_supplicant.confは推奨セットアップ方法で作成/変更されますが、手動でセットアップすることもできます。最近のRaspbianには、raspi-configSSIDとパスワードを入力するオプションがあります。次のようなものが含まれている必要があります-

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=AU

network={
    ssid="ESSID"
    psk="Your_wifi_password"
}

プライベートネットワーク に接続する必要がある(つまり、ブロードキャストしないSSID)場合は、行scan_ssid=1を含めますnetwork={⋯}

注異なるネットワーク(職場や自宅など)に接続する場合は、複数のnetwork={⋯}エントリを含めることができます。

複数のネットワークにアクセスでき、特定のネットワークに接続する場合はpriority=100network={⋯}エントリ内に行を含めます。
ネットワークごとに異なる優先度を選択できます。アクセス可能な最も優先度の高いネットワークが選択されます。デフォルトは0です。

使用できる他の多くのオプションがありますman wpa_supplicant.conf

廃止されたオペレーティングシステムに関する注意

Jessieに10-wpa_supplicantWiFiインターフェースを管理するフックが含まれていないため、wpa_supplicantへのリンクが必要です。これらの設定は、予測可能なネットワークインターフェイス名と互換性がありません。

/etc/network/interfacesで使用されるジェシーは、次のようになります-

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto lo
iface lo inet loopback

iface eth0 inet manual

allow-hotplug wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1
iface wlan1 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

dhcp in /etc/network/interfacesを呼び出すと、が無効になり dhcpcdます。

予測可能なネットワークインターフェイス名

Stretchしばらくの間、他のディストリビューションで使用されている1つの 予測可能なネットワークインターフェイス名を導入しました。

ネットワークインターフェイスの名前は、接頭辞en—イーサネットまたはwl— wlanに続いてx指示MACMACeg enxb827eb123456またはで形成されwlx00c140123456ます。sdioただし、接続されているPi4、Pi3、およびPIZeroWのオンボードWiFiは、名前を使用しますwlan0

これは、複数のネットワークインターフェイスを使用しているユーザーにとって有益な場合がありますが、ほとんどのPiユーザーにとって、単一のイーサネットインターフェイスとWiFiインターフェイスではほとんど違いはありません。以前の名前eth0wlan0net.ifnames=0、のカーネルコマンドラインを渡すと復元できます/boot/cmdline.txt

raspi-config予測可能なネットワークインターフェイス名を有効にするオプションがあります。

1.何らかの不可解な理由により、財団は待望の機能を導入してからわずか3週間後に「イーサネットデバイスの予測可能なネットワークインターフェイス名を無効にする」ことを決定しました。下のオプションがあるAdvanced Optionsraspi-configは、この設定を切り替えるには。


静的IPアドレスを設定する

別の回答をご覧ください静的IPアドレス


高度なdhcpcd構成

Raspbianはデフォルトで、dhcpcdネットワークインターフェイスの管理に使用します。これは自動で行われ、ほとんどのユーザーは、ワイヤレスネットワークのSSIDとパスワードを指定するだけで済みます。

dhcpcdにオプションを入力することにより、動作方法を設定できます/etc/dhcpcd.conf。参照man dhcpcd.conf.Thereがオンに良い記事ですdhcpcdhttps://wiki.archlinux.org/index.php/dhcpcd

以下に、より一般的な構成の一部を示します。

フォールバックプロファイル

dhcpcdDHCPリースが失敗すると、静的プロファイルを内部に構成し、それにフォールバックすることができます。これは、静的プロファイルを「回復」プロファイルとして使用して、常にマシンに接続できるようにするヘッドレスマシンで特に役立ちます。静的プロファイルは、他の静的IPアドレスとして設定されます

    #静的プロファイルを定義
    プロファイルstatic_eth0
    静的ip_address =⋯
    静的ルーター=⋯
    静的domain_name_servers =⋯

    #eth0の静的プロファイルへのフォールバック
    インターフェースeth0
    フォールバックstatic_eth0

dhcpcdインターフェイスの構成を禁止する

これは、他のインターフェイスでの通常の構成を許可しながら、Piがアクセスポイント(他のファイルを使用して構成する必要がある)として機能できるようにするためによく行われDHCPます。

denyinterfaces wlan0ファイルの最後に追加します(ただし、他の追加されたインターフェイス行の上)。

防ぐdhcpcdインターフェイスにゲートウェイを設定するから

インターフェイスにデフォルトルート(多くの場合、静的IPアドレスと組み合わせて使用​​)をインストールしないように指定する場合

    ゲートウェイ

ホスト固有の構成

dhcpcdホストネットワークに依存するインターフェイスを構成できます。これは、アドレス解決プロトコル(ARP)を使用して、DHCP解決を試みる前にMACまたはIPアドレスに基づいてホストをプローブします。

    インターフェイスbge0
    192.168.0.1のアーピング

    #私の特定の192.168.0.1ネットワーク
    プロファイルdd:ee:aa:dd:bb:ee
    static ip_address = 192.168.0.10 / 24

    #一般的な192.168.0.1ネットワーク
    プロファイル192.168.0.1
    static ip_address = 192.168.0.98 / 24

これらの機能を使用しておらず、ネットワークが単純な場合は、ARPプローブを無効にしてDHCPを高速化できます。

    うるさい

異なるwpa_supplicantファイルを使用する

特定のワイヤレスインターフェイスに異なるwpa_supplicant.confファイルを使用するようにdhcpcdを構成することが可能です。

名前のファイルを作成wpa_supplicant-"$interface".confして/etc/wpa_supplicant/例えばwpa_supplicant-wlan0.confのみで使用されますがwlan0

/etc/wpa_supplicant/wpa_supplicant.conf 他の無線インターフェースに使用されます。


Piにコンピューターを接続する

Raspbianの最近のバージョン(を使用dhcpcd)はsshlink-localアドレス上で動作することを許可しavahi(これはzeroconf実装です)、プログラムがローカルネットワークで実行されているホストを検出できるようにします。

これは、Piをコンピューター(イーサネットケーブルを使用)またはローカルネットワークルーターに接続し、IPアドレスを知らなくても接続できることを意味します。

LinuxとOS Xからssh pi@hostname.local(デフォルトのホスト名はraspberrypi)で簡単に接続できますssh。これは一般的なGUI プログラムで動作するはずです。これは、Windowsの一部のバージョンおよび非標準的な方法で.localを使用するネットワークで問題になる場合があります。(https://en.wikipedia.org/wiki/.localを参照)

.local解決は、たとえばで常に機能するとは限りませんrsync。以下はIPを解決する必要があります(bashスクリプトに含めることができます)
RemotePi=$(getent hosts hostname.local | awk '{ print $1 }')

システムがgetenthostsたとえばmacOS を照会する必要がない場合は、次を使用できます。
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')

複数のPiがある場合は、各Piに一意のホスト名があることを確認する必要があります。

クロスケーブルを使用できますが、必要はありません(ほとんどの最新のインターフェースは自動的に検出します)。

直接接続の1つの欠点は、Piがインターネットにアクセスできず、日付が設定されないことです。ssh pi@hostname.local sudo date -s$(date -Ins)接続前に実行することにより、ホストから日付をコピーできます。

範囲:

このチュートリアルでは、付属のソフトウェアを使用してインターネットにアクセスするための通常のRaspbianインストールのセットアップについて説明します。また、同じネットワーク上の他のコンピューターへの接続についても説明します。

主に、Pi(特にWiFi)を機能させるのに苦労している新規ユーザーを支援することを目的としています。

それはカバーしません:-

  • その他のネットワークマネージャー。
  • Piで高度なネットワークを実行する(DHCPサーバー、トンネリング、VPN、アクセスポイントなど)。
  • の使用ipv6(ただし、ipv6ネットワークがあればこれは機能します)。
  • 代替ネットワーク設定。(ネットワークを設定するにはさまざまな方法があります。)

2
「これはファイルに入力するものではありません」と混乱しました。誤解しない限り、Milliwaysがここで意味しているのは、ファイル全体をこのテキストの一部で置き換えないということです。ただし、このビットを最後に追加しても問題ありません(もちろん、好みに合わせてパラメーターを変更します)。また、そのインターフェースを介したルーティングを設定したくない場合、routersおよびdomain_name_serversラインはオプションです。
マーク

4
IPアドレスを構成するには、DHCPクライアントをインストールし、その構成を使用して静的IPを設定する必要があります。RaspbianにDHCPサーバーが必要な場合は機能しません!DHCPクライアントはDHCPサーバーの起動に実行されるため、IPはまだ設定されていないため、DHCPサーバー(isc-dhcpd)からエラーが発生します。
リュックStepniewski

16
これは公式に文書化されていますか?
アラステアマコーマック

6
これはどこに文書化されていますか?つまり、WTF。私はこれらの指示だけでなく他の多くの指示に従いましたが、接続できません。私は喜んでネットワークを見てスキャンすることができますが、接続したり関連付けたりすることはありません。私はこれについてとても気難しいです。
アーロンJアンダーソン


64

静的IPアドレスを設定する

静的IPアドレスの設定に関する質問は、このサイトで最も一般的なものです。非常に多くのチュートリアルがあります(多くの間違った、時代遅れの、または不完全な)。

免責事項

先に進む前に、静的アドレスを設定することはお勧めできないと述べる義務があります。テレコミュニケーションエンジニアはこれを行いません。静的IPアドレスは、ネットワーク管理者の生活の悩みの種になる可能性があります。静的IPアドレスが必要な場合があります。たとえば、DHCPサーバーを実行している場合や、DHCPサーバーのない分離ネットワークで実行している場合です。

とにかく続行することに決めた場合は、正しいことを確認する必要があります。Foundation Networkチュートリアルからの適応

ローカルネットワークの設定を見つける

これはDHCPを使用してPi自体で最も簡単に実行できますが、ネットワーク上の任意のコンピューターで実行できますが、他のシステムではコマンドが異なる場合があります。

走る

ip -4 addr show | grep global

次のような出力が得られます。

inet 10.1.1.30/24 brd 10.1.1.255 scope global eth0
inet 10.1.1.31/24 brd 10.1.1.255 scope global wlan0

最初のアドレスはネットワーク上のPiのIPアドレスであり、スラッシュの後の部分はネットワークサイズです。/ 24になる可能性が高いです。

2番目のアドレスは、ネットワークのbrd(ブロードキャスト)アドレスです。

ルーター(またはゲートウェイ)のアドレスを見つける

ip route | grep default | awk '{print $3}'

10.1.1.1

最後に、多くの場合ゲートウェイと同じDNSサーバーのアドレスを書き留めます。

cat /etc/resolv.conf

# Generated by resolvconf
nameserver 10.1.1.1

そして、続くONE次の方法を。(他の方法は、ここでは説明しませんがあります。これらはRaspbianで最も一般的です。)(いずれかの方法でのための適切なネットワークインタフェース名に置き換えeth0wlan0または予測可能なネットワークインタフェース名を

接続されていない場合でも、インターフェイス名を検索する場合は、次のコマンドを実行します ls /sys/class/net/

いずれの方法でも、使用されていないIPアドレスを選択する必要があります。理想的には、同じサブネットワーク内で、DHCPサーバーが使用する範囲外です。

dhcpcdメソッド

/etc/network/interfacesデフォルトのままにします(上記を参照)。

/etc/dhcpcd.conf次のように編集します:

 Here is an example which configures a static address, routes and dns.
       interface eth0
       static ip_address=10.1.1.30/24
       static routers=10.1.1.1
       static domain_name_servers=10.1.1.1

       interface wlan0
       static ip_address=10.1.1.31/24
       static routers=10.1.1.1
       static domain_name_servers=10.1.1.1

ip_address上記のコマンドからのアドレスとサイズ(または同じネットワーク上の別の未使用アドレス) routersは、ルーター(またはゲートウェイ)のアドレスです。 domain_name_servers/etc/resolv.confのDNSアドレスです。(を参照man dhcpcd.conf

上の良い記事があるdhcpcdhttps://wiki.archlinux.org/index.php/dhcpcdザ・がFallback profile静的IPに代わるものですが


ネットワークインターフェイスメソッド

注意この方法はお勧めできません(DHCPクライアントデーモンを無効にした場合にのみ機能します)。特に、両方のインターフェイスを使用する場合。

Piで静的ネットワークアドレスを構成する /etc/network/interfaces

auto eth0
iface eth0 inet static
        address 10.1.1.30
        netmask 255.255.255.0
        gateway 10.1.1.1

allow-hotplug wlan0
iface wlan0 inet static
        address 10.1.1.31
        netmask 255.255.255.0
        gateway 10.1.1.1
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

address上記のコマンドからのアドレス(または同じネットワーク上の別の未使用アドレス)は、 netmask255.255.255.0がネットワークサイズに対応します/24gatewayルーター(またはゲートウェイ)のアドレスです。

を指定することもできますがdns-nameservers、通常はこれは必要ありません。broadcast自動的に由来しているaddressnetmask、指定する必要はありません。詳細については、https://wiki.debian.org/NetworkConfigurationを参照してください

どちらか、または両方eth0wlan0または予測可能なネットワークインターフェイス名のいずれかを設定できます

次に、DHCPクライアントデーモン無効にして、標準のDebianネットワークに切り替えます

sudo systemctl disable dhcpcd
sudo systemctl enable networking

変更を有効にするために再起動します。

sudo reboot

1
あなたが言及するこれら2つの方法の長所と短所は何ですか?
エリオットB

@ElliottBは上記の免責事項を読みます。
ミリウェイズ

1
私はそれを読んで、dhcpcdとネットワーキングの2つの方法について疑問に思っています。dhcpcd inで15秒の遅延が発生するため、静的IPで起動が速くなるかどうかを確認したいのですがsystemd-analyze
エリオットB

私はどちらも使用しません-これは、多くの人々が(何らかの理由で-私を避けます)しようとするので、そこにありますが、ネットワークを理解していないため、間違っています。それはあなたが他に何をしているかに依存するため、単純な答えはありません。静的IPを設定するには、持っていることはほとんどありませんANYあなたは非常に遅いDHCPサーバーを持っていない限り、起動時間への影響を。質問がある場合は、質問してください。これはディスカッションフォーラムではありません。
ミリウェイズ

static domain_search=example.localdhcpcd.confメソッドに追加しました。元に戻す/編集/連絡してください。
MadMike

35

イーサネット接続の静的IPアドレスの場合:

  1. sudo nano /etc/dhcpcd.conf
  2. ファイルの先頭に次の行を入力します。

    interface eth0
    static ip_address=192.168.1.XX/24
    static routers=192.168.1.1
    static domain_name_servers=192.168.1.1
    
  3. sudo reboot

これは、最近のJessieアップデートで行う必要があります。/etc/network/interfaces放っておかなければなりません。ブラウザを開き、ルーターアドレス(ほとんどの場合192.168.1.1)を入力し、ホームネットワークをチェックして、Raspberry Piが「静的」として表示されることを確認します。


5
少なくとも回答の一部をコピーする場合は、正しく理解する必要があります。
ミリウェイズ

2
おそらくあなたの場合はうまくdhcpcdいきましたが、他のアドレス範囲ではできないネットマスクを推測したため、一般的にはうまくいきませんでした。manページを読んでください。
ミリウェイズ

1
/ etc / network / interfacesはそのままにしておくべきだと断言しますが、その理由は述べません。実際、まったく逆です。以下の私の答えをご覧ください。
JayEye

2
再起動せずにネットワークサービスを再起動する場合は、ファイルにauto eth0上記のiface eth0 inet manual行があることを確認してください/etc/network/interfacesudo service networking restartコマンドでネットワークを再起動する
-Barmaley

3
これはコピーされた回答でもかまいませんが、ラズベリーに静的IPを設定するために必要なものがすべて含まれています。受け入れられる回答は不必要に長くなります。
ペドロロビト

11

これを行う簡単で簡単な方法:

ラズビアジェシー&ストレッチ

これにより、固定IPが設定され、sshデーモンが有効になります。

  • 開いて行末に/boot/cmdline.txt追加ip=192.168.1.20します。
  • 空のファイルを作成する /boot/ssh
  • Raspberry Piを起動します
  • Linuxの場合ssh pi@192.168.1.20、パスワードはraspberryです。使用するパテを ssh経由で接続するには、Windows上で。

私はこれを使用して、電源とイーサネットのみで接続されたモニターなしで起動するRaspbian JessieとStretchにアクセスしています。sshシェルでアクセスした後、セットアップを続行できます。

この処理後、Raspberry PIには2つの IPがありました。1つは指定した固定IPから、もう1つはRaspberry Piで実行されているdhcp-clientからです。

ifconfig固定IPが表示されます。一方、右上の青い矢印アイコンはdhcpd-IPを示しています。


1
IPv6を無効にすることを提案しないでください。その必要はありません。
アンデルス

なぜ2つのIPが必要なのですか?

@ SiXandSeven8ths 2つのIPは必要ありません。動作を観察し、驚きを最小限に抑えるためにここで説明しています。私は答えを改善しましたが、そうする時間はありませんでした。
MadMike

@MadMike私もそれを観察し、それが私のために物事を台無しにした、最終的にそれを整理しましたが、これは混乱しています。

1
@ SiXandSeven8thsそれを聞いてすみません。私にとってはうまくいきました。また、これはモニターとキーボードをラズベリーパイに接続せずに行う唯一の方法でした。だから私はそれが他の誰かに役立つかもしれないと考えました。
MadMike

4

最初にすべきことは、Raspberry piのIPを静的にすることです。したがって、Raspberry piの電源を入れると、アクセスポイント(ホットスポット)に接続する必要があります。

アクセスポイントに接続します。raspberry piのターミナルにifconfigと入力し、そのIPアドレスを下に入力します。私の場合は192.168.43.233でした

dhcpcd.confファイルを編集することから始めます

sudo nano /etc/dhcpcd.conf

一番下までスクロールし、接続(有線または無線)に従ってこの行を最後に追加します。

interface eth0

static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1


interface wlan0
static ip_address=192.168.43.233/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

Ctrl + xを押して保存し、再起動します。ラズベリーパイの電源を入れると、アクセスポイントに自動的に接続されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.