ฉันจะตั้งค่าเครือข่าย / WiFi / ที่อยู่ IP แบบคงที่ได้อย่างไร


217

ฉันได้ติดตาม (หนึ่งในร้อย) การกวดวิชาและมันไม่ทำงาน

ฉันจะตั้งค่าเครือข่าย / WiFi / ที่อยู่ IP แบบคงที่ใน Raspberry Pi ได้อย่างไร


(นี่คือ Dorothy Dixer ที่หวังว่าจะได้รับคำถามที่คล้ายกันหลายร้อยข้อ)

คำตอบ:


253

บทช่วยสอนนี้อธิบายวิธีตั้งค่าเครือข่ายโดยใช้ตัวจัดการเครือข่ายเริ่มต้นdhcpcd ที่รวมอยู่ในRaspbianตั้งแต่ 2015-05-05
ซึ่งจะใช้กับรุ่นมูลนิธิRaspbian Buster , Raspbian ยืด , Raspbian เจสซีและสุดท้ายRaspbian ดังเสียงฮืด ๆ
การตั้งค่าบัสเตอร์เหมือนกับการยืด

วิธีการติดตั้ง Raspbian Networking

หากคุณใช้การเชื่อมต่ออีเธอร์เน็ตกับเราเตอร์ไม่ควรมีการกำหนดค่าใด ๆ และควรใช้งานได้ทันที


หมายเหตุ Pi3 / Pi Zero W inbuilt WiFiไม่รองรับเครือข่าย 5GHz และอาจไม่เชื่อมต่อกับ Ch 12,13 บนเครือข่าย 2.4GHz จนกว่าจะมีการตั้งค่าโดเมนกฎระเบียบไร้สาย

WiFiบนอุปกรณ์ที่ใช้ 5GHz ถูกปิดใช้งานจนกว่าจะมีการตั้งค่าโดเมนการกำกับดูแลแบบไร้สาย (Pi4B, Pi3B +, Pi3A +)

  • โดเมนสามารถตั้งค่าผ่านRaspberry Pi Configuration(rc_gui) raspi-configหรือโดยการตั้งค่าcountry=ที่จะเป็น ISO 3166 รหัส alpha2 /etc/wpa_supplicant/wpa_supplicant.confประเทศที่เหมาะสมใน

หากคุณใช้WiFi และ GUIตั้งค่าโดยทำตามหลักเกณฑ์พื้นฐาน

หากคุณกำลังใช้อินเตอร์เน็ตไร้สายจากบรรทัดคำสั่งตั้งขึ้นโดยต่อไปนี้หลักเกณฑ์ของมูลนิธิSSIDนี้เป็นวิธีเดียวที่จะตั้งค่าเครือข่ายที่ไม่ได้ออกอากาศ

นอกจากนี้ยังสามารถใช้เพื่อตั้งค่าระบบ 'หัวขาด' เช่นการใช้สายเคเบิลคอนโซลแบบอนุกรม แต่มันจะง่ายกว่ามากถ้าคุณสามารถยืมจอและคีย์บอร์ดสำหรับการตั้งค่า ดูวิธีการอื่นที่เป็นไปได้โดยใช้สายเคเบิลอีเทอร์เน็ตกับพีซี

การตั้งค่าหัวขาด Raspbian WiFi

Raspbianตั้งแต่เดือนพฤษภาคม 2559 ตรวจสอบเนื้อหาของไดเรกทอรีบูตสำหรับไฟล์ที่เรียกว่าwpa_supplicant.confและจะคัดลอกไฟล์เข้า/etc/wpa_supplicantแทนที่wpa_supplicant.confไฟล์ที่มีอยู่ที่อาจมีอยู่ ไฟล์ในไดเรกทอรีบูตจะถูกลบออก สามารถใช้เพื่อเปิดใช้งานการตั้งค่าหัวขาดโดยใช้การwpa_supplicant.confตั้งค่ารายละเอียดด้านล่าง (คุณอาจต้องการเปิดใช้งานsshด้วย)

ที่อยู่ IP ของฉันคืออะไร

ถ้าคุณแค่อยากรู้ว่าIP AddressPi ของคุณกำลังใช้การป้อนhostname -Iบนบรรทัดคำสั่ง

SSH

ตั้งแต่เดือนพฤศจิกายน 2559 Raspbian ปิดใช้งานเซิร์ฟเวอร์ SSH เป็นค่าเริ่มต้น คุณจะต้องเปิดใช้งานด้วยตนเอง

ป้อนsudo raspi-configในเทอร์มินัลเลือกแรกadvanced optionsจากนั้นไปที่sshกดEnterและเลือกเปิดใช้งานหรือปิดใช้งานเซิร์ฟเวอร์ ssh

สำหรับการตั้งค่าแบบหัวขาดคุณสามารถเปิดใช้งาน SSH ได้โดยการวางไฟล์ชื่อ 'ssh' โดยไม่มีนามสกุลใด ๆ ลงในพาร์ติชันสำหรับบูตของการ์ด SD

ไฟล์ระบบเครือข่าย

หากคุณใช้ Raspbian ที่ผ่านมา/etc/network/interfacesควรเป็นดังนี้ หากคุณเปลี่ยนมันกลับมา (หรือStretchเพียงแค่ลบมัน - มันไม่มีผลอะไร)

# interfaces (5) ไฟล์ที่ใช้โดย ifup (8) และ ifdown (8)

# โปรดทราบว่าไฟล์นี้เขียนขึ้นเพื่อใช้กับ dhcpcd
# สำหรับ IP แบบคงที่ให้ดู /etc/dhcpcd.conf และ 'man dhcpcd.conf'

# รวมไฟล์จาก /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

ไฟล์/etc/wpa_supplicant/wpa_supplicant.confจะถูกสร้าง / แก้ไขโดยวิธีการตั้งค่าที่แนะนำ แต่สามารถติดตั้งด้วยมือ Raspbian ล่าสุดมีตัวเลือกในraspi-configการป้อน SSID และรหัสผ่าน มันควรมีสิ่งต่าง ๆ ดังนี้: -

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

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

หากคุณจำเป็นต้องเชื่อมต่อกับเครือข่ายส่วนตัว (เช่นไม่มีการแพร่ภาพSSID)รวมถึงสายภายในscan_ssid=1network={⋯}

หมายเหตุหากคุณต้องการเชื่อมต่อกับเครือข่ายที่แตกต่างกัน (เช่นที่ทำงานหรือที่บ้าน) คุณสามารถรวมหลายnetwork={⋯}รายการได้

หากคุณสามารถเข้าถึงเครือข่ายหลายเครือข่ายและต้องการเชื่อมต่อกับเครือข่ายเฉพาะให้รวมสายpriority=100ภายในnetwork={⋯}รายการ
คุณสามารถเลือกลำดับความสำคัญที่แตกต่างกันสำหรับแต่ละเครือข่ายโดยจะเลือกเครือข่ายที่มีลำดับความสำคัญสูงสุดที่สามารถเข้าถึงได้ ค่าเริ่มต้นคือ 0

มีตัวเลือกอื่น ๆ อีกมากมายที่สามารถใช้ดูman wpa_supplicant.confได้

หมายเหตุเกี่ยวกับระบบปฏิบัติการที่ล้าสมัย

Jessieไม่ได้รวม10-wpa_supplicanthook สำหรับจัดการอินเทอร์เฟซ WiFi ดังนั้นจึงจำเป็นต้องลิงก์ไปยัง wpa_supplicant การตั้งค่าเหล่านี้ไม่สามารถใช้ร่วมกับชื่ออินเตอร์เฟสเครือข่ายที่คาดการณ์ได้

การ/etc/network/interfacesใช้โดยJessieควรเป็น: -

# 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 /etc/network/interfacesจะปิดการใช้งาน dhcpcd

ชื่ออินเตอร์เฟสเครือข่ายที่คาดการณ์ได้

Stretchแนะนำ1 ชื่ออินเตอร์เฟสเครือข่ายที่สามารถคาดเดาได้ซึ่งมีการใช้ในการแจกแจงอื่น ๆ ในบางครั้ง

การเชื่อมต่อเครือข่ายจะมีชื่อขึ้นมาจากคำนำหน้าen- อีเธอร์เน็ตหรือwl- WLAN ตามด้วยการxแสดงให้เห็นMACและMACเช่นหรือenxb827eb123456 wlx00c140123456WiFi onboard ของ Pi4, Pi3 และ PIZeroW ที่เชื่อมต่ออยู่sdioจะใช้ชื่อนี้wlan0

สิ่งนี้มีประโยชน์สำหรับผู้ที่ใช้อินเตอร์เฟซเครือข่ายหลายอย่างอย่างไรก็ตามสำหรับผู้ใช้ Pi ส่วนใหญ่ด้วยอีเธอร์เน็ตและอินเตอร์เฟซ WiFi เดียวจะสร้างความแตกต่างเล็กน้อย ชื่อก่อนหน้านี้eth0และwlan0สามารถเรียกคืนได้ถ้าคุณผ่านในบรรทัดคำสั่งเคอร์เนลในnet.ifnames=0/boot/cmdline.txt

มีตัวเลือกในraspi-configการเปิดใช้งานชื่อเครือข่ายอินเทอร์เฟซที่คาดเดาได้

1. ด้วยเหตุผลบางอย่างที่ไม่สามารถเข้าใจได้มูลนิธิตัดสินใจที่จะ "ปิดใช้งานชื่ออินเตอร์เฟสเครือข่ายที่คาดการณ์ได้สำหรับอุปกรณ์อีเธอร์เน็ต" เพียง 3 สัปดาห์หลังจากแนะนำคุณสมบัติที่รอคอยมานาน มีตัวเลือกภายใต้Advanced Optionsของraspi-configเพื่อสลับการตั้งค่านี้


ตั้งค่าที่อยู่ IP แบบคงที่

ดูคำตอบที่อยู่ IP แบบคงที่แยกต่างหาก


การdhcpcdกำหนดค่าขั้นสูง

โดยค่าเริ่มต้นแล้ว Raspbian จะใช้dhcpcdในการจัดการเน็ตเวิร์กอินเตอร์เฟส นี่เป็นไปโดยอัตโนมัติและผู้ใช้ส่วนใหญ่ไม่จำเป็นต้องระบุ SSID และรหัสผ่านสำหรับเครือข่ายไร้สาย

เป็นไปได้ที่จะกำหนดค่าวิธีการdhcpcdทำงานโดยการป้อนตัวเลือกใน/etc/dhcpcd.conf; ดูman dhcpcd.conf. มีบทความที่ดีอยู่dhcpcdที่https://wiki.archlinux.org/index.php/dhcpcd

ข้อมูลต่อไปนี้อธิบายการกำหนดค่าทั่วไปบางอย่างเพิ่มเติม: -

โปรไฟล์ทางเลือก

เป็นไปได้ที่จะกำหนดค่าโปรไฟล์คงที่ภายในdhcpcdและถอยกลับไปเมื่อ DHCP lease ล้มเหลว สิ่งนี้มีประโยชน์โดยเฉพาะอย่างยิ่งสำหรับเครื่องที่ไม่มีหัวซึ่งสามารถใช้โปรไฟล์แบบคงที่เป็นโปรไฟล์ "การกู้คืน" เพื่อให้แน่ใจว่าสามารถเชื่อมต่อกับเครื่องได้ตลอดเวลา โปรไฟล์สแตติกถูกตั้งค่าเป็นที่อยู่ IP แบบคงที่อื่น ๆ

    # กำหนดโปรไฟล์แบบคงที่
    โปรไฟล์ static_eth0
    ip_address แบบคงที่ = ⋯
    เราเตอร์แบบคงที่ = ⋯
    static domain_name_servers = ⋯

    # fallback ไปยังโปรไฟล์คงที่ใน eth0
    อินเตอร์เฟส eth0
    fallback static_eth0

ป้องกันไม่ให้dhcpcdตั้งค่าอินเทอร์เฟซ

สิ่งนี้มักจะทำเพื่อให้ Pi ทำหน้าที่เป็นจุดเข้าใช้งาน (ซึ่งจำเป็นต้องกำหนดค่าโดยใช้ไฟล์อื่น) ในขณะที่อนุญาตการDHCPกำหนดค่าปกติบนอินเทอร์เฟซอื่น

เพิ่มdenyinterfaces wlan0ในตอนท้ายของไฟล์ (แต่เหนือกว่าบรรทัดอินเตอร์เฟสที่เพิ่มอื่น ๆ )

ป้องกันไม่ให้dhcpcdตั้งค่าเกตเวย์บนอินเทอร์เฟซ

หากคุณต้องการให้อินเทอร์เฟซไม่ได้ติดตั้งเส้นทางเริ่มต้นใด ๆ (มักใช้ร่วมกับที่อยู่ IP แบบคงที่) ระบุ

    nogateway

การกำหนดค่าเฉพาะโฮสต์

dhcpcdสามารถกำหนดค่าอินเทอร์เฟซที่ขึ้นอยู่กับเครือข่ายโฮสต์ วิธีนี้ใช้ Address Resolution Protocol (ARP) เพื่อตรวจสอบโฮสต์ที่ใช้ MAC หรือที่อยู่ IP ก่อนที่จะพยายามแก้ไข DHCP

    อินเตอร์เฟส bge0
    arping 192.168.0.1

    # เครือข่ายเฉพาะของฉัน 192.168.0.1
    โปรไฟล์ dd: ee: aa: dd: bb: ee
    ip_address คงที่ = 192.168.0.10 / 24

    # เครือข่ายทั่วไป 192.168.0.1
    โปรไฟล์ 192.168.0.1
    ip_address คงที่ = 192.168.0.98 / 24

คุณสามารถเพิ่มความเร็ว DHCP ได้โดยการปิดการใช้งาน ARP probing หากคุณไม่ได้ใช้คุณสมบัติเหล่านี้และมีเครือข่ายง่าย

    noarp

ใช้ไฟล์ wpa_supplicant ที่แตกต่างกัน

เป็นไปได้ที่จะกำหนดค่า dhcpcd ให้ใช้ไฟล์ wpa_supplicant.conf ที่แตกต่างกันสำหรับอินเตอร์เฟสไร้สายที่เฉพาะเจาะจง

สร้างไฟล์ชื่อwpa_supplicant-"$interface".confใน/etc/wpa_supplicant/เช่นwpa_supplicant-wlan0.confจะถูกใช้โดยเฉพาะwlan0

/etc/wpa_supplicant/wpa_supplicant.conf จะถูกใช้สำหรับอินเทอร์เฟซไร้สายอื่น ๆ


เชื่อมต่อคอมพิวเตอร์กับ Pi

เวอร์ชันล่าสุดของ Raspbian (ซึ่งใช้dhcpcd) อนุญาตให้sshทำงานผ่านที่link-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 }')

หากระบบของคุณไม่ต้องgetentสืบค้นhostsmacOS เช่นนั้นคุณสามารถใช้สิ่งต่อไปนี้: -
RemotePi=$(arp -n hostname.local | awk '{x = $2; gsub(/[()]/, "", x); print x }')

หากคุณมี Pi หลายตัวคุณต้องแน่ใจว่า Pi แต่ละตัวมีชื่อโฮสต์ที่ไม่ซ้ำกัน

คุณสามารถใช้สายเคเบิลแบบไขว้ แต่คุณไม่จำเป็นต้องใช้สายเคเบิลหนึ่ง

ข้อเสียเปรียบประการหนึ่งของการเชื่อมต่อโดยตรงคือ 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 แบบคงที่! มันไม่ทำงานถ้าฉันต้องการเซิร์ฟเวอร์ DHCP ใน Raspbian ของฉัน! ไคลเอ็นต์ DHCP ทำงานหลังจากเปิดตัวเซิร์ฟเวอร์ DHCP ดังนั้น ip ยังไม่ได้ตั้งค่าทำให้เซิร์ฟเวอร์ DHCP (isc-dhcpd) บ่น
Luc Stepniewski

16
เอกสารนี้อยู่ที่ไหนอย่างเป็นทางการ ?
Alastair McCormack

6
เอกสารนี้อยู่ที่ไหน ฉันหมายถึง WTF ฉันทำตามคำแนะนำเหล่านี้และอื่น ๆ อีกมากมายและไม่สามารถเชื่อมต่อได้ ฉันสามารถดูและสแกนเครือข่ายได้อย่างมีความสุข แต่จะไม่เชื่อมต่อหรือเชื่อมโยง ฉันบ้ามากเกี่ยวกับเรื่องนี้
AaronJAnderson


64

ตั้งค่าที่อยู่ IP แบบคงที่

คำถามเกี่ยวกับการตั้งค่าที่อยู่ IP แบบคงที่เป็นคำถามที่พบได้ทั่วไปในเว็บไซต์นี้ มีบทช่วยสอนจำนวนมาก (ผิดจำนวนมากล้าสมัยหรือไม่สมบูรณ์)

คำปฏิเสธ

ก่อนดำเนินการต่อฉันรู้สึกว่าจำเป็นต้องระบุว่าไม่แนะนำให้ตั้งค่าที่อยู่สแตติก วิศวกรโทรคมนาคมไม่ทำเช่นนี้ ที่อยู่ IP แบบคงที่อาจเป็นชีวิตของผู้ดูแลเครือข่าย มีสถานการณ์ที่จำเป็นต้องใช้ที่อยู่ IP แบบคงที่เช่นหากคุณใช้เซิร์ฟเวอร์ DHCP หรือทำงานบนเครือข่ายแยกที่ไม่มีเซิร์ฟเวอร์ DHCP

หากคุณมุ่งมั่นที่จะดำเนินการต่อไปคุณควรแน่ใจว่าคุณทำถูกต้อง ดัดแปลงจาก บทสอนเครือข่ายพื้นฐาน

ค้นหาการตั้งค่าเครือข่ายท้องถิ่นของคุณ

สิ่งนี้ทำได้ง่ายที่สุดด้วย Pi เองโดยใช้ DHCP แต่สามารถทำได้บนคอมพิวเตอร์ทุกเครื่องในเครือข่ายของคุณแม้ว่าคำสั่งอาจแตกต่างกันในระบบอื่น ๆ

วิ่ง

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

ที่อยู่แรกคือที่อยู่ IP ของ Pi ของคุณบนเครือข่ายและส่วนที่อยู่หลังเครื่องหมายทับคือขนาดเครือข่าย มีโอกาสสูงที่คุณจะเป็น / 24

ที่อยู่ที่สองคือที่อยู่ 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

จากนั้นทำตามวิธีใดวิธีหนึ่งต่อไปนี้ (มีวิธีการอื่น ๆ ไม่ได้รับการบันทึกไว้ที่นี่. เหล่านี้เป็นที่พบมากที่สุดใน Raspbian.) ( ในวิธีการอย่างใดอย่างหนึ่งแทนชื่อที่เหมาะสมสำหรับการเชื่อมต่อเครือข่ายeth0, wlan0หรือชื่อเชื่อมต่อเครือข่ายที่คาดการณ์ . )

หากคุณต้องการค้นหาชื่ออินเตอร์เฟสแม้ว่าจะไม่ได้เชื่อมต่อให้รันคำสั่งต่อไปนี้ 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คือที่อยู่ DNS จาก /etc/resolv.conf (ดูman dhcpcd.conf)

มีบทความที่ดีอยู่dhcpcdที่https://wiki.archlinux.org/index.php/dhcpcd The Fallback profileเป็นอีกทางเลือกหนึ่งของ IP แบบคงที่


วิธีการเชื่อมต่อเครือข่าย

หมายเหตุไม่แนะนำวิธีนี้(และใช้ได้เฉพาะเมื่อคุณปิดใช้งาน DHCP ไคลเอ็นต์ daemon) โดยเฉพาะอย่างยิ่งหากคุณวางแผนที่จะใช้ทั้งสองอินเตอร์เฟส

กำหนดค่าส่วนเสริมเครือข่ายแบบคงที่ใน 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 /24สอดคล้องกับเครือข่ายขนาด gatewayคือที่อยู่ของเราเตอร์ (หรือเกตเวย์)

คุณสามารถระบุdns-nameserversได้ แต่โดยทั่วไปไม่จำเป็น broadcastได้มาโดยอัตโนมัติจากaddressและnetmaskและไม่จำเป็นต้องระบุ สำหรับรายละเอียดเพิ่มเติมโปรดดูhttps://wiki.debian.org/NetworkConfiguration

คุณสามารถตั้งค่าอย่างใดอย่างหนึ่งหรือทั้งสองeth0, wlan0หรือหนึ่งในชื่ออินเตอร์เฟซเครือข่ายสามารถคาดเดาได้

จากนั้นปิดการใช้งานภูตลูกค้าของ DHCPและสลับไปยังเครือข่าย Debian มาตรฐาน :

sudo systemctl disable dhcpcd
sudo systemctl enable networking

รีบูตเพื่อให้การเปลี่ยนแปลงมีผล:

sudo reboot

1
ข้อดีและข้อเสียของสองวิธีนี้ที่คุณพูดถึงคืออะไร?
Elliott B

@ElliottB อ่านข้อจำกัดความรับผิดชอบข้างต้น
Milliways

1
ฉันได้อ่านแล้วฉันแค่สงสัยเกี่ยวกับ dhcpcd vs ระบบเครือข่ายทั้งสองวิธี ฉันต้องการดูว่า IP แบบคงที่ช่วยให้บูตเร็วขึ้นหรือไม่เพราะฉันเห็นการหน่วงเวลา 15 systemd-analyzeวินาทีสำหรับ dhcpcd
เอลเลียต B

ฉันไม่ได้ใช้อย่างใดอย่างหนึ่ง - นี่ก็แค่นั้นเพราะมีหลายคนลอง (ด้วยเหตุผลอะไรก็ตามที่ทำให้ฉันหลงทาง) แต่เข้าใจผิดเพราะพวกเขาไม่เข้าใจเครือข่าย ไม่มีคำตอบง่ายๆเพราะขึ้นอยู่กับว่าคุณกำลังทำอะไรอยู่ หมายเหตุการตั้งค่า IP แบบคงที่ไม่น่าจะส่งผลกระทบใด ๆต่อเวลาบูตเว้นแต่คุณจะมีเซิร์ฟเวอร์ DHCP ที่ช้ามาก หากคุณมีคำถามคุณควรถามคำถาม - นี่ไม่ใช่กระดานสนทนา
Milliways

ฉันได้เพิ่มstatic domain_search=example.localวิธี dhcpcd.conf แล้ว อย่าลังเลที่จะเปลี่ยน / แก้ไข / ติดต่อฉัน
MadMike

35

สำหรับที่อยู่ IP แบบคงที่ในการเชื่อมต่อ Ethernet:

  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

สิ่งนี้จะต้องทำสำหรับการอัพเดตล่าสุดของเจสซี ควรจะปล่อยให้อยู่ตามลำพัง/etc/network/interfaces เปิดเบราว์เซอร์ของคุณและป้อนที่อยู่เราเตอร์ของคุณ (192.168.1.1 เป็นส่วนใหญ่) และตรวจสอบเครือข่ายในบ้านของคุณเพื่อให้แน่ใจว่า Raspberry Pi แสดงเป็น 'คงที่'


5
หากคุณกำลังจะคัดลอกบางส่วนของคำตอบอย่างน้อยคุณควรทำให้ถูกต้อง
Milliways

2
มันอาจทำงานได้ในกรณีของคุณ แต่ไม่ใช่โดยทั่วไปเพราะdhcpcdอนุมาน netmask ซึ่งไม่สามารถใช้ได้สำหรับช่วงที่อยู่อื่น อ่านmanหน้า
Milliways

1
คุณยืนยันว่า / etc / network / interfaces ควรถูกทิ้งไว้ตามลำพัง แต่คุณไม่ได้บอกว่าทำไม ในความเป็นจริงค่อนข้างตรงข้ามเป็นจริง ดูคำตอบของฉันด้านล่าง
JayEye

2
หากคุณต้องการรีสตาร์ทบริการเครือข่ายโดยไม่ต้องรีบูตตรวจสอบให้แน่ใจว่าคุณมีบรรทัดauto eth0ด้านบนiface eth0 inet manualใน/etc/network/interfaceไฟล์ของคุณ รีสตาร์ทเครือข่ายผ่านsudo service networking restartคำสั่ง
Barmaley

3
นี่อาจเป็นคำตอบที่ถูกคัดลอก แต่มีทุกสิ่งที่คุณต้องการในการติดตั้ง ip แบบคงที่บนราสเบอร์รี่คำตอบที่ยอมรับนั้นมีความยาวโดยไม่จำเป็น
Pedro Lobito

11

วิธีการสั้นและเข้าใจผิดได้ทำอย่างไรกับ:

Raspbian Jessie & Stretch

สิ่งนี้จะตั้งค่า IP คงที่และเปิดใช้งาน ssh daemon:

  • เปิด/boot/cmdline.txtและเพิ่มip=192.168.1.20ที่ส่วนท้ายของบรรทัด
  • สร้างไฟล์ว่าง /boot/ssh
  • Boot Raspberry Pi ของคุณ
  • บน Linux เริ่มต้นรหัสผ่านssh pi@192.168.1.20 raspberryใช้Puttyบน Windows เพื่อเชื่อมต่อผ่าน ssh

ฉันใช้สิ่งนี้เพื่อเข้าถึง Raspbian Jessie and Stretch ของฉันซึ่งบูทที่ไม่มีจอมอนิเตอร์ที่ต่อพ่วงพร้อมกับ power และอีเธอร์เน็ตเท่านั้น หลังจากเข้าถึงด้วย ssh shell ฉันสามารถตั้งค่าต่อไปได้

หลังจากการรักษานี้ราสเบอร์รี่ PI มีสอง IP: หนึ่งจาก IP คงที่ที่คุณระบุและอีกหนึ่งจากลูกค้า DHCP- ทำงานบนราสเบอร์รี่ Pi

ifconfigจะแสดง IP คงที่ให้คุณ ในขณะที่ไอคอนลูกศรสีน้ำเงินที่ด้านบนขวาแสดง dhcpd-IP


1
กรุณาอย่าแนะนำปิดการใช้งาน IPv6 ไม่จำเป็นสำหรับสิ่งนั้น
Anders

ทำไมฉันต้องมี 2 IP
SiXandSeven8ths

@ SiXandSeven8ths ไม่จำเป็นต้องมี 2 IP ฉันได้สังเกตพฤติกรรมและกำลังอธิบายที่นี่เพื่อลดความประหลาดใจให้เหลือน้อยที่สุด ฉันจะปรับปรุงคำตอบของฉัน แต่ไม่มีเวลาทำเช่นนั้น
MadMike

@MadMike ฉันก็สังเกตเห็นเช่นกันและมันก็ทำให้ฉันสับสนในที่สุดฉันก็แยกมันออก แต่มันก็สับสน
SiXandSeven8ths

1
@ SiXandSeven8ths ฉันขอโทษที่ได้ยินเช่นนั้น มันทำงานได้ดีสำหรับฉัน นี่เป็นวิธีเดียวที่จะทำได้โดยไม่ต้องติดจอภาพและคีย์บอร์ดใด ๆ กับราสเบอร์รี่ปี่ ดังนั้นฉันคิดว่ามันจะเป็นประโยชน์กับคนอื่น
MadMike

4

สิ่งแรกที่คุณควรทำคือทำให้ IP ของคุณคงที่ ดังนั้นเมื่อใดก็ตามที่คุณเปิดเครื่อง Raspberry pi คุณควรเชื่อมต่อกับจุดเชื่อมต่อ

เชื่อมต่อกับจุดเข้าใช้งานของคุณ พิมพ์ ifconfig ในเทอร์มินัลราสเบอร์รี่ pi และป้อนที่อยู่ 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 เพื่อบันทึกและรีบูต ตอนนี้เปิดราสเบอร์รี่ pi ของคุณและมันจะเชื่อมต่อกับจุดเชื่อมต่อของคุณโดยอัตโนมัติ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.