ฉันกำลังสร้างแอปพลิเคชั่น 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
แต่วิธีนี้ดูเหมือนจะไม่หรูหราหรือขยายได้สำหรับการกระจายอื่น ๆ