Làm cách nào để thiết lập nhiều mạng WiFi?


113

Tôi đi đi lại lại từ nhà đến trường với Pi của tôi. Tôi vừa mới nhận được WiFi làm việc tối qua ở nhà bằng cách sử dụng wpa.confthay vì wpa_supplicant.confcuốn sách tôi đang sử dụng đã thay thế cho việc đó. Tôi đã nhận thấy rất nhiều dường như sử dụng wpa_supplicantnhưng tôi không chắc tại sao ...

Dù sao, tôi biết cách tạo IP WiFi tĩnh cho mạng gia đình của mình nhưng làm cách nào để thiết lập mọi thứ để tự động kết nối với WiFi trường học của tôi và sử dụng IP tĩnh khác cho mạng đó?

Đối với mạng, tôi chỉ cần thêm một cái khác network={}trong wpa.conftập tin của tôi ? Đối với IP tĩnh thứ hai, làm cách nào để liên kết nó với mạng trường học?

Câu trả lời:


106

Chỉnh sửa /etc/wpa_supplicant/wpa_supplicant.conf và thêm id_str = "school" trong thông tin wpa của trường và id_str = "home" trong thông tin wpa nhà của bạn. Tệp của bạn bây giờ trông giống như thế này:

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

network={
    ssid="SCHOOLS NETWORK NAME"
    psk="SCHOOLS PASSWORD"
    id_str="school"
}

network={
    ssid="HOME NETWORK NAME"
    psk="HOME PASSWORD"
    id_str="home"
}

Sau đó, thiết lập / etc / mạng / giao diện với trường iface inet tĩnhiface home inet static trong đó để nó trông giống như sau:

Điều này áp dụng cho Raspbian Wheezy trước 2015-05-05 cho lần sau (và Jessie) Xem Cách tôi thiết lập mạng / WiFi / IP tĩnh

auto lo

iface lo inet loopback
iface eth0 inet dhcp

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

iface school inet static
address <school address>
gateway <school gateway>
netmask <school netmask>

iface home inet static
address <home address>
gateway <home gateway>
netmask <home netmask>

Có thể đáng chú ý: Nếu tôi hiểu tài liệu chính xác, để sử dụng phương pháp này, bạn phải có thuộc tính id_str cho MỌI mạng trong tệp wpa_supplicant.conf của bạn. Nếu không thì điều này sẽ không hoạt động. Bạn có thể xác nhận?
PICyourBrain

Tôi không tin đây là trường hợp.
les

3
Cách tiếp cận này hoạt động, tuy nhiên, có thể chuyển đổi WiFi mà không phải khởi động lại Pi không?
MetalGodwin

2
Nếu không id_strđược đưa ra, giá trị sẽ được default.
Raptor

1
@MetalGodwin Bạn có thể sử dụng wpa_clinhư được đề xuất tại đây: raspberrypi.org/forums/viewtopic.php?t=179387
iwillnot

34

Gần đây tôi tình cờ thấy một ứng dụng giao diện điều khiển sắp xếp tất cả các cấu hình không dây. Bạn cũng có thể sử dụng công cụ này để cấu hình giao diện LAN.

sudo apt-get install wicd-curses

Nó sẽ cài đặt khá nhiều gói khác nhưng nó chạy daemon của riêng nó trong nền. Điều này quản lý các mạng và đảm bảo bạn kết nối với các mạng bạn muốn. Chạy nó với:

sudo wicd-curses

Ảnh chụp màn hình của wicd-curses

Nếu bạn nhận được thông báo cho biết không có mạng nào được phát hiện, nhấn P(phải là vốn, vì vậy hãy sử dụng [SHIFT] p) và nhập wlan0 vào trường giao diện không dây và nhấn F10 để lưu.

  1. R để làm mới danh sách.
  2. Sử dụng các con trỏ trên bàn phím để điều hướng lên và xuống danh sách
  3. Nhấn chuột phải để định cấu hình kết nối không dây
  4. Nhấn xuống một vài lần và kiểm tra "Tự động kết nối với mạng này"
  5. Nhấn xuống một vài lần nữa và nhập mật khẩu của bạn vào trường khóa
  6. Nhấn F10 để lưu
  7. Bắt đầu từ 1 để làm điều này một lần nữa cho bất kỳ mạng nào khác

nhập mô tả hình ảnh ở đây

Bạn có thể phải nhấn Cđể kết nối với điểm truy cập. Nếu bạn được kết nối qua cáp, điều đó rất có thể sẽ giết chết giao diện LAN và kết nối không dây.

Nó cũng quản lý kết nối để nó sẽ kết nối lại với bất kỳ điểm truy cập không dây nào được cấu hình nếu nó bị rớt vì bất kỳ lý do gì nhưng nó cũng sẽ cố gắng kết nối với bất kỳ mạng có sẵn nào, giống như trong Windows, Macintosh hoặc Linux Desktops.

Hy vọng nó giúp!


2
loại công cụ này chính xác là những gì tôi đang tìm kiếm. tất cả các tính linh hoạt được cung cấp bởi GUI, nhưng thiết bị đầu cuối thay thế. Cảm ơn bạn!
Bọt biểnGuy

Upvote: Sau khi chạy nó, tôi đã thực hiện Quét IP nâng cao của hai mạng con và Rpi3 của tôi hiển thị trên cả hai mạng. Thật thú vị, khi tôi đi cài đặt ban đầu, nó nói với tôi rằng tôi đã có phiên bản mới nhất.
SDsolar

Một chi tiết nhỏ: Để có thêm phạm vi tôi đang sử dụng wlan1 với ăng ten ngoài, vì vậy, trong các lời nguyền, tôi đã phải đi vào prefs để chỉ định bộ điều hợp đó. Không cần phải tắt wlan0 nhưng dù sao tôi cũng đã làm điều đó với sudo ifcongig wlan0.
SDsolar

32

Với Jessiebản phát hành Raspbian , bạn không phải chỉnh sửa interfacetệp. Chỉ cần cập nhật wpa_supplicanttệp với nhiều mạng là đủ. Đây là vẻ ngoài của nó -

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

network={
    ssid="SCHOOLS NETWORK NAME"
    psk="SCHOOLS PASSWORD"
    id_str="school"
}

network={
    ssid="HOME NETWORK NAME"
    psk="HOME PASSWORD"
    id_str="home"
}

Điều này làm việc cho tôi và wifi của tôi luôn được kết nối với danh sách các mạng có sẵn được đề cập trong tệp trên. Hy vọng nó giúp.


23

Trên thực tế bạn có thể thêm tùy chọn ưu tiên. Thích như vậy:

network={
      ssid="open"
      key_mgmt=NONE
      id_str="open"
      priority=3
}

network={
        ssid="secure"
        key_mgmt=WPA-EAP
        proto=WPA2
        group=CCMP
        pairwise=CCMP
        eap=TLS
        ca_cert="/etc/certs/cacert.pem"
        client_cert="/etc/certs/client.pem"
        private_key="/etc/certs/client.key"
        private_key_passwd="somepwd"
        identity="me"
        priority=5
}

network={
        ssid="AndroidAP"
        key_mgmt=WPA-PSK
        proto=WPA2
        pairwise=CCMP
        group=CCMP
        psk="SomeP4ssw0rd"
        priority=4
}


network={
        ssid="Spooky"
        key_mgmt=NONE
        group=WEP104
        psk="A4ABC2FC27412D4D23CAEBCA23"
        priority=2
}

network={
        ssid="another"
        key_mgmt=WPA-PSK
        proto=WPA2
        pairwise=CCMP
        group=CCMP
        psk="A very long and secret passphrase here"
        priority=1
}

mức độ ưu tiên: khi nhiều mạng có sẵn đồng thời, mạng có giá trị ưu tiên cao nhất sẽ được chọn.

id_str: đối với mỗi mạng, bạn có thể cung cấp cho tham số này một giá trị cụ thể (một chuỗi). Nếu không được cung cấp, "mặc định" được sử dụng làm chuỗi văn bản. Chuỗi này được sử dụng trong / etc / mạng / giao diện làm định danh giao diện ảo. Điều này cho phép tạo các khối cấu hình cụ thể cho từng mạng. Yêu cầu duy nhất là có giao diện vật lý bằng phương pháp "inet thủ công" (đây là PHẢI).


Chỉ cần kiểm tra lại ở đây, mức độ ưu tiên được đặt trong dấu sao? Từ những gì tôi đọc được, chúng không được đặt trong hai dấu sao, nhưng tôi có thể sai ở đây.
ericmjl

@ericmjl Anh ấy đã cố gắng in đậm mã, tôi sẽ chỉnh sửa nó.
Patrick Cook

Có cách nào để làm cho nó tự động quét lại và xem liệu mạng ưu tiên cao hơn có sẵn và chuyển đổi không?
Michal

@Michal Vâng, có một quá trình nền đang chạy mà chỉ cần như vậy.
les

@les Làm thế nào mà làm việc, lệnh nào?
luckydonald
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.