명령 줄을 사용하여 WPA wifi 네트워크에 연결하려면 어떻게합니까?


답변:


113

iw (list / config)는 WEP 만 처리 할 수 ​​있습니다.

명령 wpasupplicant을 제공 하는 패키지가 wpa_supplicant필요합니다 sudo apt-get install wpasupplicant. 필요한 경우를 통해 설치하십시오 .

SSID와 비밀번호를 입력 /etc/wpa_supplicant.conf합니다 (sudo 필요).

예:

network={
    ssid="ssid_name"
    psk="password"
}

인터페이스가 wlan0이라고 가정하면 다음과 연결할 수 있습니다.

sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext
sudo dhclient wlan0

"wext"는 드라이버이며 각 카드마다 다릅니다. 참조하십시오 wpa_supplicant -h. 예 :

hostap (default) Host AP driver (Intersil Prism2/2.5/3). (this can also be used with Linuxant DriverLoader).
hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).
madwifi MADWIFI 802.11 support (Atheros, etc.).
atmel ATMEL AT76C5XXx (USB, PCMCIA).
wext Linux wireless extensions (generic).
ndiswrapper Linux ndiswrapper.
broadcom Broadcom wl.o driver.
ipw Intel ipw2100/2200 driver.
wired wpa_supplicant wired Ethernet driver
roboswitch wpa_supplicant Broadcom switch driver
bsd BSD 802.11 support (Atheros, etc.).
ndis Windows NDIS driver.

iwlist / iwconfig는 WEP 만 처리 할 수 ​​있지만 제 경우 wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && dhclient wlan0 에는 무선 네트워크에 연결되지 않았습니다. 기본적으로 NetworkManager는 네트워크에 연결되어 있지만 명령 행을 시도하고 싶습니다.
등록 된 사용자

마지막 명령은 실제로 두 개의 명령이므로 모두 root(시스템 관리자) 로 실행해야합니다 . 그래서 sudo wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf -Dwext && sudo dhclient wlan0 또는 약 2 개 명령어로 나눕니다 &&.
Anders

이 솔루션은 "wlan0 : 지원되지 않는 드라이버 'ext'"오류를 표시합니다.
Cerin

1
@Rinzwind, Yes ... wpa_supplicant의 맨 페이지를 살펴보면 드라이버가 다를 수 있으므로 명령이 문자 그대로 제공되지 않을 수 있습니다. 특정 하드웨어에 대해 -D <driver>를 선택해야합니다. 저에게는 "nl80211"이되었습니다.
Cerin

1
나는 -D 옵션을 완전히 생략하고 작동합니다! 감사! :)
Ray

72

이 링크는 모든 것을 보여주고 나를 위해 잘 작동했습니다 : http://linux.icydog.net/wpa.php

여기에 내용을 복사하고 있으므로 사이트가 오프라인 상태가 될 수 있습니다.

커맨드 라인 WPA

때로는 GUI 네트워킹 도구에 액세스 할 수없는 명령 줄에 있지만 액세스 포인트는 WPA로 보호됩니다. 너 뭐하니?

무선 카드가 실제로 작동한다고 가정하면 (즉, iwconfig가이를보고 상호 작용할 수 있음) wpa_supplicant를 사용하는 것은 실제로 매우 간단합니다. wpa_supplicant 설치

오늘날 대부분의 배포판에는 기본적으로 wpa_supplicant가 설치되어 있습니다. wpa_passphrase 및 wpa_supplicant 명령을 사용할 수 있으면 계속 진행하십시오. 그렇지 않으면 (Ubuntu의 경우)와 같은 방법으로 패키지를 설치해야합니다.

$ sudo apt-get install wpasupplicant

또는 (Fedora의 경우) :

# yum install wpa_supplicant

또는 배포판에 대한 명령이 무엇이든.

구성 파일 생성

이제 wpa_supplicant가 설치되었으므로 구성 파일을 작성합니다. SSID 및 WPA 암호를 알고 나면 다음을 실행하면됩니다.

$ wpa_passphrase myrouter mypassphrase > wpa.conf

물론 "myrouter"를 라우터의 SSID로, "mypassphrase"를 WPA 암호로, "wpa.conf"를 구성을 저장하려는 파일로 바꿉니다.이 파일 이름은 특정 형식을 따르지 않아도됩니다. 특정 확장명이 있습니다.

또는 명령 줄에 암호를 입력하지 않도록 (쉘 기록에 저장되지 않음) 명령 줄에 SSID 만 지정할 수 있습니다. wpa_passphrase는 암호를 입력하고 다음을 입력하기를 기다립니다.

$ wpa_passphrase myrouter > wpa.conf
mypassphrase

다음과 같은 파일로 끝나야합니다.

network={
    ssid="myrouter"
    #psk="mypassphrase"
    psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}

연결하기

이제 실제로 wpa_supplicant를 실행하여 무선 네트워크에 연결합니다. 먼저, 라우터가 SSID를 브로드 캐스트하는 경우 (모두 기본적으로 수행) 무선 카드가 실제로 볼 수 있는지 확인하고 싶을 것입니다.

$ iwlist scan

새로 고치기를 강제로 루트로 실행해야 할 수도 있습니다.

다음으로 세 가지 정보를 알아야합니다.

  1. 카드에 사용할 wpa_supplicant 무선 드라이버 Running wpa_supplicant --help에는 다른 드라이버가 나열됩니다 ( "drivers :"아래). : 0.5.8로, 유용한 선택 사항은 wext, hostap, madwifi, atmel, ndiswrapper,과 ipw(IPW는 오래된 커널입니다,> = 2.6.13이 wext를 사용한다). 카드와 일치하는 것이 보이지 않으면 wext를 사용해보십시오.
  2. 카드의 네트워크 장치. 이것은 일반적으로 eth1 또는 wlan0이지만 확실하지 않은 경우을 실행할 수 있습니다 iwconfig. 비 무선 장치에 대해서는 "무선 확장명 없음"을보고하고 모든 무선 장치에 대한 일부 데이터를 표시합니다.
  3. 이전 단계에서 작성한 구성 파일의 경로입니다.

이제이 데이터를 얻었으므로 루트로 실행하십시오.

# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]

옵션과 매개 변수 사이에는 공백이 없습니다. 명확성을 위해 추가 한 괄호는 포함하지 마십시오. 예를 들어, 내 노트북의 경우 다음과 같습니다.

# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf

-B콘솔을 차지하지 않도록 옵션 을 사용하여 백그라운드에서 실행할 수도 있습니다 .

이제 네트워크와 연결되었습니다.

온라인으로

실제로 온라인 상태가 되려면 어떻게 든 IP를 얻어야합니다. 대부분의 사람들은 라우터에 내장 된 DHCP 서버에서 동적 IP를 얻으려고합니다. (정적 IP 및 라우팅 테이블 설정은 다루지 않을 것입니다. 그 자체로는 야수입니다.)

DHCP 임대를 받으려면 먼저 보유하고있는 임대를 루트로 해제하십시오.

# dhclient -r

그런 다음 새 임대를 요청하십시오 (물론 이전 섹션에서 사용한 것과 동일한 네트워크 장치 이름으로 eth1을 교체하십시오).

# dhclient eth1

이론 상으로는 이제 IP가 있습니다. 행복한 서핑!


1
경험이없는 사람들을 위해 참고로, 대부분의 무선 카드 인터페이스 이름은 wlan <number>이 될 것입니다. 예를 들어 구성의 첫 번째 무선 카드는 eth1 대신에 wlan0입니다.
xorinzor

감사합니다. wpa_passphrase 명령이 도움이되었습니다. 허용 된 답변을 시도했지만 파일이 잘못되었습니다. wpa_passphrase가 도움이 된 다음 승인 된 답변에서 두 번째 명령을 전달했습니다 (이미 wlan0이라는 것을 이미 알고 있음) ...
Lilian A. Moraru

정말 고마워요, 어떻게 설정 정적 및 라우팅 테이블을 링크 커버 줄 수
있습니까

1
종합적인 @AlexandreSchmidt +1!
John Strood

@JohnStrood 엄격하게 당신은 거기에서 사본이기 때문에 웹 사이트를 쓴 사람에게 감사해야합니다
icc97

8

데비안과 다른 배포판들은 와이파이 네트워크를 관리하기 위해 기본적으로 wpa_suplicant를 서비스로 실행하고 있습니다. wpa_suplicant는 네트워크 관리자 GUI와 같은 다른 클라이언트 / 프런트 엔드에서 처리 할 수 ​​있습니다. 이것은이 데비안 위키 에서 더 잘 설명됩니다 .

wpa_cli는 wifi 네트워크를 관리하기위한 명령 행 wpa_suplicant 클라이언트입니다.

편집 : nmcli를 사용하는 방법을 설명 하는 이 게시물을 찾았 으며 GUI 네트워크 관리자 및 설정 및 저장된 Wi-Fi 네트워크와 호환되므로 wpa_cli보다 훨씬 좋습니다.

wpa_cli 사용 예 :

Wi-Fi가 활성화 된 네트워크 인터페이스가 있는지 확인하십시오.

# iwconfig
wlan0     IEEE 802.11bgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=22 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

wpa_suplicant 프로세스가 실행 중인지 확인하십시오.

# ps -e | grep wpa
1881 ?        00:00:07 wpa_supplicant

wpa 클라이언트 대화식 모드로 입력하십시오.

# wpa_cli

사용 가능한 액세스 포인트를 나열하십시오.

> scan
> scan_results

... 그리고 당신은 이와 같은 것을 얻습니다 :

bssid / frequency / signal level / flags / ssid
e0:60:66:7c:81:7f       2417    -66     [WPA2-PSK-CCMP][ESS]    vodafone817E
e0:60:66:61:83:4b       2452    -76     [WPA2-PSK-CCMP][WPS][ESS]       vodafone834A
f8:8e:85:c5:65:c2       2462    -76     [WPA-PSK-CCMP+TKIP][WPS][ESS]   MOVISTAR_65C1
a8:d3:f7:46:0c:be       2472    -83     [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS]       Orange-0CBC
...

AP를 추가하십시오.

> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"

현재로 선택하십시오.

> enable_network 0

그것에 연결하십시오 :

> reconnect

상태를 확인하십시오 :

> status

wpa_cli를 종료하십시오.

> quit

셸에서 IP 및 네트워크 설정에 대해 DHCP를 요청하십시오.

# dhclient -r
# dhclient wlan0

왜 얘기 wpa_cli하고 글을 쓰 wpa_client나요? 쿠분투에서 18.10 wpa_client은 명령으로 존재하지 않는 것 같습니다
rtrtrt

당신 말이 맞아요.
David

3

런니 그가 아닌 경우 먼저 카드를 강화하십시오 :

ifconfig wlan0 up

네트워크에 따라 매개 변수를 설정하십시오

iwlist wlan0 scan
iwconfig wlan0 essid NETWORK_ID key WIRELESS_KEY

15
나는 이것이 WEP 전용이라고 생각합니다. 아니 WPA;)
Rinzwind

Rinzwind가 맞습니다. WEP 용입니다. 실수해서 죄송합니다.
LnxSlck

2
문제 없어요. 여기에 남겨두면 누군가 언젠가 귀하의 답변으로부터 혜택을받을 것입니다.)
Rinzwind

개방형 네트워크처럼 키가 없어도 작동합니까?
EvoandroidEvo

1
WEP 특정 답변에서 아무도 혜택을 얻지 않기를 바랍니다. '(
Max Ried

2

checkbox패키지가 설치된 경우 NetworkManager를 사용하여 실제로 수행 할 수있는 방법이 있습니다 .

sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY

(크레딧 : 버그 923836 , 주제에 대한 검색에서 나타났습니다.)


2

wpa_supplicant를 제안하는 모든 대답이 잘못되었습니다. 예, WPA 네트워크에 연결될 수 있지만 장기적으로는 나쁜 해결책입니다. 유지 관리가 매우 어렵고 유선 연결로는 잘 작동하지 않기 때문입니다. 명령 행에서 Network Manager를 사용 하여이 답변을 읽고 보다 쉽게 ​​생활하십시오. wpa_supplicant를 구성하는 데 몇 시간을 낭비한 다음 nmcli를 시도해 보았습니다.


2
'그냥 일하는 것'의 문제점은 그들이 쉽게 '그냥 일할 수 없다'는 것입니다. CLI 사용자의 경우 직접 wpa_supplicant 접근 방식이 모든 부분을 노출하므로 더 좋습니다. NM의 가장 큰 장점은 모든 부분이 숨겨져 있다는 것입니다. 따라서 wpa_supplicant 접근 방식이 잘못되었다고 말하는 것은 잘못입니다. 당신은 '그냥 작동하는 것'을 좋아합니다. 당신의 선호는 당신의 권리이지만, 사람들이 그들의 선호가 당신의 것이 아니기 때문에 그들이 틀렸다고 말하는 것은 무례합니다. 그렇기 때문에 나는 당신의 대답을 꼼짝 못하게했습니다.
Stephen Boston

2

VSWM-매우 간단한 무선 관리자를 사용할 수 있습니다. 알려진 AP를 간단한 cfg 파일 (/etc/vswm.cfg)에 배치하고 실행할 때 vswm사용 가능한 네트워크를 스캔하고 /etc/vswm.cfg에 나타나는 첫 번째 카드와 카드를 연결하십시오.

VSWM은 https://github.com/dmelo/vswm 에서 제공됩니다 . vswm.cfg 구성 파일의 모양은 다음과 같습니다.

[global]

dev = wlan0
dns = ["4.2.2.1","8.8.8.8"]

[wlan0-0]

ssid = Network1
psk = netpassword
protocol = WPA
net = dhcp

[wlan0-1]

ssid = Network2
protocol = WEP
net = static
address = 192.168.0.15/24

기본적으로 iwlist, wpa_supplicant, iwconfig, dhclient와 같은 표준 명령 행 도구를 사용합니다. 작업 만 자동화합니다.


1

wpa_supplicant무선 네트워크에 직접 연결하는 데 문제가있었습니다 . 명령 행 에서 wpa_supplicant.conf파일을 사용할 때 네트워크 ID와 비밀번호가 오류를 생성했습니다 wpa_supplicant. 예 :

sudo wpa_supplicant -iwlan0 -c/etc/wpa_supplicant.conf -B

나는 그것으로 해결할 수있었습니다 wpa_cli. Linux ndiswrapper와 함께 Windows 드라이버를 사용하고 있기 때문에 사용해야하는 명령 순서는 다음과 같습니다.

sudo modprobe ndiswrapper
sudo iwconfig wlan0 essid "<My Network ID>" mode managed
sudo wpa_cli identity "<My Network ID>" password "<My password>"

GUI에서 네트워킹의 무선 섹션에 네트워크를 추가하여 네트워크를 설정 했으므로 유선 또는 무선 네트워크 아이콘을 클릭하고 무선 공급자 (로그인을 완료해야하는 경우가 있음)를 선택할 수있었습니다.


1

nmcli우분투의 기본 네트워크 관리자 응용 프로그램의 명령 줄 버전입니다.

장점은 그래픽 인터페이스에서 이미 구성을 사용하고 루트 액세스가 필요하지 않다는 것입니다.

nmcli사용 가능한 옵션을 표시하기 위해 실행할 수 있습니다.

MYESSID라는 Wi-Fi에 연결하는 예 :

    nmcli c up MYESSID   

1
nmcli, nm-applet, 그리고 네 대답은 최고이지만 아무도 투표하지 않는 이유를 모르겠습니다
Saeid

@Saeid 감사합니다!
desgua
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.