คำสั่งเทอร์มินัลเทียบเท่ากับตัวเลือก“ ใช้เป็นฮอตสปอตของ NetworkManager”


10

ฉันกำลังสร้างแอปพลิเคชั่น gui ซึ่งจะควบคุมแล็ปท็อปของฉันเพื่อให้มันทำหน้าที่เป็นฮอตสปอตไร้สาย ฉันอาจเปลี่ยนดิสทริบิวชันดังนั้นฉันต้องการค้นหาวิธีแก้ปัญหาที่ใช้งานได้กับทุกดิสทริบิวชัน ฉันกำลังทำสิ่งนี้ใน Fedora 17

การใช้ปุ่ม "ใช้เป็นฮอตสปอต" ของ NetworkManager ทำงานได้ดีมากในการสร้างฮอตสปอตแบบเฉพาะกิจ: ป้อนคำอธิบายรูปภาพที่นี่

ฉันต้องการสร้างฟังก์ชันนี้ใหม่ด้วยคำสั่งเทอร์มินัล

ด้านล่างเป็นสองวิธีที่ฉันพยายามทำสิ่งนี้ แต่ฉันยังไม่พบวิธีแก้ปัญหา


วิธีที่ 1: iwconfig
จากการค้นคว้าจากเว็บฉันลองคำสั่งต่อไปนี้:

# 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

โดยที่saved-hotspot-iptablesเป็นไฟล์ที่ฉันสร้างขึ้นพร้อมiptables-save > saved-hotspot-iptablesกับ iptables ที่กำหนดโดยฟังก์ชั่น "Use as Hotspot"

วิธีที่ 1 ปัญหา
อุปกรณ์สามารถดู SSID แต่ไม่สามารถเชื่อมต่อ การวิ่งip aเผยสิ่งต่อไปนี้เกี่ยวกับ wlan0:

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

มีการแจ้งให้ทราบล่วงหน้า NO-CARRIERและเป็นสถานะDORMANTแทน การวิ่งแสดงต่อไปนี้:UP

ifconfig wlan0

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

ขอให้สังเกตว่าRUNNINGขาดหายไปเป็นหนึ่งในค่าสถานะ


วิธีที่ 2: nmcli
หากกดปุ่ม "Use as Hotspot" ของ NetworkManager อย่างน้อยหนึ่งครั้งบนระบบ/etc/sysconfig/network-scripts/ifcfg-Hotspotจะถูกสร้างขึ้นและฉันสามารถใช้คำสั่งต่อไปนี้เพื่อเริ่มฮอตสปอตที่ใช้งานได้:

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

วิธีที่ 2 ปัญหา
หากผู้ใช้ไม่เคยกด "ใช้เป็นฮอตสปอต" บน NetworkManager มาก่อนnmcli con up id Hotspotจะไม่ทำงาน ฉันดูแล้วnm-connection-editor --createแต่ไม่พบข้อมูลมากนัก ฉันได้ดูด้วยตนเองในการสร้าง/etc/sysconfig/network-scripts/ifcfg-Hotspotแต่วิธีนี้ดูเหมือนจะไม่หรูหราหรือขยายได้สำหรับการกระจายอื่น ๆ


กรุณาอย่าขวางทาง
mgorven

1
ลองwicd มันคล้ายกับ NetworkManager แต่มีอินเตอร์เฟซโหมดข้อความ ฉันไม่รู้ว่ามีคุณสมบัติฮอตสปอตหรือไม่
Gilles 'SO- หยุดความชั่วร้าย'

ขอบคุณสำหรับเคล็ดลับ Gilles ฉันจะลองทันที
แดเนียล

@Gilles ฉันพยายาม wicd แต่ดูเหมือนว่าจะมีฟังก์ชั่นน้อยลงแล้ว nmcli
Daniel

คำตอบ:


1

ดูคำตอบของฉันที่"สร้างจุดเชื่อมต่อไร้สายและแบ่งปันการเชื่อมต่ออินเทอร์เน็ตด้วยnmcli"

ฉันสร้างฮอตสปอตด้วย GNOME Network-Manager ปัญหาคือว่าฉันไม่สามารถกำหนดค่า SSID และรหัสผ่านใน GUI ถ้าคุณสร้าง Hotspot ที่มีเครือข่ายผู้จัดการ GUI /etc/NetworkManager/system-connections/Hotspotมันจะสร้างไฟล์ ในไฟล์นั้นเป็นไปได้ที่จะแก้ไข SSID และรหัสผ่าน

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

เนื้อหาของไฟล์มีลักษณะดังนี้:

[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

ฉันเปลี่ยนssidและpskคุณสมบัติตามความต้องการของฉันเท่านั้น จากนั้นฉันรีสตาร์ทคอมพิวเตอร์เพราะคำสั่ง: sudo systemctl restart NetworkManagerสำหรับการรีสตาร์ทเครือข่ายดูเหมือนจะทำงานไม่ถูกต้องเพราะใน Network-Manager GUI ฉันไม่มีการตั้งค่าเครือข่ายไร้สายอีกต่อไปและคำสั่งต่อไปนี้ไม่ทำงานก่อนที่จะรีสตาร์ท หลังจากรีสตาร์ทคุณสามารถใช้nmcliคำสั่งเพื่อเริ่มจุดเข้าใช้งาน

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACEiwconfigคุณจะพบว่ามีคำสั่ง


1

มีตัวเลือกเฉพาะในnmcli:

nmcli device wifi hotspot ifname wlan0 ssid toto password toto

ข้อมูลเพิ่มเติมจากคู่มือ :

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

0

จำเป็นต้องใช้เซิร์ฟเวอร์ DHCP เพื่อกำหนดที่อยู่ IP ให้กับการเชื่อมต่อ wifi ฉันใช้dnsmasqเซิร์ฟเวอร์ DNS และ DHCP

ต่อไปนี้เป็นคำสั่งเพื่อเริ่มฮอตสปอตแบบ ad-hoc wifi:

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