Perintah terminal setara dengan opsi "Gunakan sebagai Hotspot" dari NetworkManager

10

Saya membuat aplikasi gui yang akan mengontrol laptop saya untuk menjadikannya bertindak sebagai hotspot wifi. Saya dapat mengubah distribusi jadi saya ingin mencari solusi yang akan bekerja secara umum untuk semua distribusi. Saya sedang melakukan ini di Fedora 17.

Menggunakan tombol "Gunakan sebagai Hotspot" NetworkManager berfungsi sangat baik untuk membuat hotspot ad-hoc: masukkan deskripsi gambar di sini

Saya ingin membuat ulang fungsi ini dengan perintah terminal.

Di bawah ini adalah dua metode yang saya coba lakukan ini tetapi saya belum menemukan solusi.


Metode 1: iwconfig
Menggunakan penelitian dari seluruh web, saya mencoba perintah berikut:

# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dhclient wlan0

di mana saved-hotspot-iptablesfile yang saya hasilkan dengan iptables-save > saved-hotspot-iptablesiptables diatur oleh fungsi "Use as Hotspot".

Metode 1 Masalah
Perangkat dapat melihat SSID tetapi tidak dapat terhubung. Menjalankan ip amengungkapkan hal berikut tentang wlan0:

...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...

Pemberitahuan NO-CARRIERhadir, dan negara DORMANTbukan UP.

Menjalankan ifconfig wlan0menunjukkan hal berikut:

...
wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
...

Perhatikan bahwa RUNNINGhilang sebagai salah satu bendera.


Metode 2: nmcli
Jika tombol "Gunakan sebagai Hotspot" NetworkManager ditekan setidaknya sekali pada sistem, /etc/sysconfig/network-scripts/ifcfg-Hotspotdibuat dan saya dapat menggunakan perintah berikut untuk memulai hotspot yang berfungsi:

# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789

Metode 2 Masalah
Jika pengguna tidak pernah menekan "Gunakan sebagai Hotspot" di NetworkManager sebelumnya, nmcli con up id Hotspottidak akan berfungsi. Saya telah melihat nm-connection-editor --createtetapi tidak dapat menemukan banyak informasi. Saya juga telah melihat cara membuat secara manual /etc/sysconfig/network-scripts/ifcfg-Hotspottetapi metode ini tidak terlihat elegan atau dapat diperluas ke distribusi lain.

Daniel
sumber
Tolong jangan lintas pos .
mgorven
1
Coba aja . Ini mirip dengan NetworkManager tetapi memiliki antarmuka mode teks. Saya tidak tahu apakah ia memiliki fitur hotspot.
Gilles 'SANGAT berhenti menjadi jahat'
Terima kasih atas tipnya Gilles, saya akan mencobanya segera.
Daniel
@Gilles Saya mencoba wicd tetapi tampaknya memiliki fungsionalitas lebih sedikit daripada nmcli.
Daniel

Jawaban:

1

Lihat jawaban saya ke "Buat titik akses nirkabel dan bagikan koneksi internet dengan nmcli"

Saya membuat Hotspot dengan Manajer Jaringan GNOME. Masalahnya adalah, bahwa saya tidak dapat mengkonfigurasi SSID dan kata sandi di GUI. Jika Anda membuat Hotspot dengan GUI Network-Manager, itu membuat file /etc/NetworkManager/system-connections/Hotspot. Dalam file itu dimungkinkan untuk mengedit SSID dan kata sandi.

sudo vim /etc/NetworkManager/system-connections/Hotspot

Konten file terlihat seperti ini:

[connection]
id=Hotspot
uuid=0bf627gd-8e34-48c6-865a-06f898b4y1hb
type=wifi
autoconnect=false
permissions=
secondaries=

[wifi]
hidden=false
mac-address=YOUR_WIFI_INTERFACE_MAC_ADDRESS
mac-address-blacklist=
mode=ap
seen-bssids=
ssid=SSID_NAME

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
proto=rsn;
psk=YOUR_WIFI_AP_PASSWORD

[ipv4]
dns-search=
method=shared

[ipv6]
dns-search=
method=auto

Saya hanya mengubah ssiddan pskproperti untuk kebutuhan saya. Kemudian saya sudo systemctl restart NetworkManagerme-restart komputer saya karena perintah: untuk restart jaringan tampaknya tidak berfungsi dengan benar, karena di Network-Manager GUI saya tidak memiliki pengaturan jaringan nirkabel lagi dan juga perintah berikut bekerja tidak sebelum restart. Setelah restart Anda dapat menggunakan nmcliperintah untuk memulai jalur akses.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEAnda bisa mengetahuinya dengan perintah iwconfig.

BuZZ-dEE
sumber
1

Ada opsi khusus di nmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

Info lebih lanjut dari Manual :

wifi hotspot [ifname ifname] [con-name name] [ssid SSID] [ band { a | bg } ] [channel channel] [password password] 
ysdx
sumber
0

Server DHCP diperlukan untuk menetapkan alamat IP ke koneksi wifi. Saya menggunakan dnsmasq, server DNS dan DHCP.

Berikut ini adalah perintah untuk memulai hotspot wifi ad-hoc:

# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dnsmasq -C /dev/null >/dev/null 2>&1 --bind-interfaces --listen-address=10.42.0.1 --dhcp-range=10.42.0.10,10.42.0.200,12h
Daniel
sumber