ตั้งค่าการเชื่อมต่ออัตโนมัติเป็นฮอตสปอตเฉพาะเมื่อเชื่อมต่ออีเธอร์เน็ต


8

ขณะนี้ฉันสลับระหว่างการตั้งค่าสองรายการต่อไปนี้เป็นรายวัน:

1) กำลังเชื่อมต่ออินเทอร์เน็ตผ่านเครือข่าย WiFi

2) ให้แล็ปท็อป (Ubuntu 16.04) ของฉันเชื่อมต่อกับอินเทอร์เน็ตผ่านการเชื่อมต่อแบบมีสายจากนั้นแบ่งปันการเชื่อมต่อนี้กับอุปกรณ์อื่นของฉันผ่านฟังก์ชั่นฮอตสปอตในตัวของ Ubuntu

ในขณะนี้การสลับจาก 1 เป็น 2 ต้องให้ฉันทำตามบทสนทนา "เชื่อมต่อกับเครือข่ายที่ซ่อนอยู่" ด้วยตนเองใน Network Manager; ในทำนองเดียวกันการสลับจาก 2 เป็น 1 ต้องให้ฉันยกเลิกการเชื่อมต่อด้วยตนเองจากฮอตสปอตและเชื่อมต่อกับเครือข่าย WiFi มันไม่ได้ทำงานมากนัก แต่ฉันทำบ่อยพอที่ฉันอยากให้มันเป็นแบบอัตโนมัติ

มันไม่ง่ายอย่างที่เปิดใช้งานการเชื่อมต่ออัตโนมัติสำหรับฮอตสปอตเนื่องจากมันจะแทนที่ฟังก์ชั่นการเชื่อมต่ออัตโนมัติของเครือข่ายอื่นแทนการเชื่อมต่อฉันกับเครือข่าย WiFi เมื่อฉันไม่ได้เชื่อมต่อผ่านการเชื่อมต่อแบบมีสาย ไม่มีอินเทอร์เน็ต ดังนั้นฉันต้องการโซลูชันที่:

  • เชื่อมต่อฉันกับฮอตสปอตเมื่อใดก็ตามที่ฉันเชื่อมต่ออินเทอร์เน็ตผ่านการเชื่อมต่อแบบมีสาย
  • ตัดการเชื่อมต่อฉันจากฮอตสปอตเมื่อไม่มีการเชื่อมต่ออีเธอร์เน็ต
  • autoconnects ให้ฉันเข้ากับหนึ่งในเครือข่ายที่มี autoconnect = true ทุกครั้งที่มีให้บริการและไม่มีการเชื่อมต่ออีเธอร์เน็ต

คำอธิบายแบบเต็มเกี่ยวกับวิธีการทำสิ่งนี้จะดีมาก แต่การอ้างอิงถึงคู่มือที่ดี (ไม่ใช่ผู้เชี่ยวชาญ) สำหรับการตั้งค่ากฎประเภทเหล่านี้ก็จะได้รับการชื่นชมอย่างมากเช่นกัน


1
ฉันไม่แน่ใจ 100% ว่าคุณทำอะไรฉันเดาว่าคุณใช้ตัวจัดการเครือข่าย ดังนั้นจึงเป็นเรื่องยากที่จะให้คู่มือ ฉันจะดูเป็นpost-upของ/etc/network/interfacesบริบทมีภาพรวมที่ดีที่นี่ post-upโดยทั่วไปเพียงแค่เรียกคำสั่งหรือสคริปต์หลังจากอินเทอร์เฟซเกิดขึ้น
Robert Riedl

ดูเหมือนจะเป็นจุดเริ่มต้นที่ดี จะมองเข้าไปในมันขอบคุณ
Bib-สูญหาย

คำตอบ:


2

ฉันเข้าใจว่าเมื่อคุณเสียบสายเคเบิลอีเธอร์เน็ตที่มีจุดเชื่อมต่อ wifi และการเชื่อมต่อ wifi จะลดลงโดยอัตโนมัติ ในทำนองเดียวกันการตัดการเชื่อมต่อสายเคเบิลอีเธอร์เน็ตโดยอัตโนมัติจะเชื่อมต่อกับ wifi ที่คุณต้องการ (หากคุณมีช่องทำเครื่องหมายเพื่อเชื่อมต่อกับเครือข่ายไร้สายนั้นในแท็บทั่วไปของผู้จัดการเครือข่ายโดยอัตโนมัติ

ดังนั้นหากฉันเข้าใจคุณอย่างถูกต้องคุณเพียงต้องการเริ่มบริการฮอตสปอตบนแล็ปท็อปของคุณโดยอัตโนมัติเมื่อเชื่อมต่อสายเคเบิลอีเธอร์เน็ตและปิดใช้งานบริการเมื่อถอดสายอีเธอร์เน็ตออก

นี่ควรจะค่อนข้างง่ายในการใช้สคริปต์ทุบตีและnmcli'nmcli' เป็นเครื่องมือเครือข่ายที่ทรงพลังที่ช่วยให้คุณสามารถนำการเชื่อมต่อขึ้นและลงตามความประสงค์และรับข้อมูลที่เกี่ยวข้องมากมาย

เพื่อค้นหาว่าการเชื่อมต่อใดที่คุณจะใช้สคริปต์เพียงแค่เรียกใช้nmcli -t monitor| grep primaryเมื่อเชื่อมต่อผ่าน wifi และเสียบสายอีเธอร์เน็ต การเชื่อมต่อที่คุณสนใจในการนำขึ้นและลงด้วยnmcliจะได้ผู้ที่ล้อมรอบด้วย's ตัวอย่าง: 'การเชื่อมต่ออินเทอร์เน็ตแบบใช้สาย 1' ตรรกะคือว่าเมื่อ 'เชื่อมต่อ' เชื่อมต่อนำขึ้นฮอตสปอต (คุณอาจพบว่าจำเป็นต้องใช้คำสั่งsleepหรือใช้-wสวิทช์ที่จะทำให้nmcliในรอสคริปต์ของคุณสำหรับจำนวนที่ระบุวินาทีสำหรับคำสั่งให้เสร็จสมบูรณ์ก่อนที่จะออกต่อไป

การนำการเชื่อมต่อลงมานั้นง่ายพอ ๆ กับการnmcli 'connection name' downทำให้การเชื่อมต่อนั้นง่ายขึ้นnmcli 'connection name' up

หมายเหตุ:สำหรับการควบคุมเต็มรูปแบบผ่านสคริปต์คุณอาจต้องปิดการใช้งานตัวเลือกการเชื่อมต่ออัตโนมัติอย่างน้อยที่สุดสำหรับการเชื่อมต่อ wifi ในตัวจัดการเครือข่ายเพราะมันจะพยายามเชื่อมต่ออัตโนมัติทุกครั้งที่มีให้ใช้งานและสามารถแทรกแซงสิ่งที่คุณพยายามทำ ตัดตอนมาจากman nmcli:

There may be multiple connections that apply
       to a device, but only one of them can be active on that device at any
       given time. The additional connections can be used to allow quick
       switching between different networks and configurations.

ดังนั้นเมื่อคุณได้กำหนดว่าอีเธอร์เน็ตของคุณเชื่อมต่อแล้วคุณสามารถออกคำสั่งเพื่อนำการเชื่อมต่อ wifi ลงมาตัวอย่าง: nmcli connection my-wifi downจากนั้นการเชื่อมต่อฮอตสปอตขึ้นตัวอย่าง: nmcli connection my-hotspot up

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียกใช้สคริปต์โดยอัตโนมัติตามการเชื่อมต่อเครือข่ายดูที่นี่ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ 'nmcli' ตรวจสอบหน้าคน และนี่คือข้อมูลเกี่ยวกับวิธีสร้างฮอตสปอต


ขอบคุณสำหรับการอ้างอิงของ wiki ในฐานะที่ไม่ใช่ผู้ใช้พลังงานฉันพบว่าสิ่งเหล่านี้เริ่มต้นได้ง่ายกว่าหน้าคน จะทำให้คุณโพสต์
เสีย Bib

จนถึงตอนนี้ดีมาก แต่ไม่พอใจอย่างสมบูรณ์ในส่วนที่ปิดใช้งานการเชื่อมต่ออัตโนมัติ ฉันกำลังดู man page สำหรับ nmcli แต่จะมีคำสั่ง 'สแกนหาเครือข่ายที่เชื่อมต่อได้อัตโนมัติ' เมื่อถอดสายอีเธอร์เน็ตหรือไม่?
Bib-lost

@ Bib-lost การทดสอบของฉันระบุว่าการปล่อยให้ไร้สายเป็นผลลัพธ์ที่เชื่อมต่ออัตโนมัติในขณะที่ยังคงเชื่อมต่ออยู่เมื่อเสียบสายอีเธอร์เน็ตและเชื่อมต่อใหม่โดยอัตโนมัติหากคุณนำมันลงด้วยตนเอง ผลลัพธ์ของคุณแตกต่างจากของฉันหรือไม่?
เอ็ลเดอ

ฉันยังไม่สามารถทำให้สคริปต์ทำงานโดยเสียบสายเคเบิลอีเธอร์เน็ต (แม้ว่าฉันทำตามขั้นตอนใน Wiki) แต่เพียงแค่ทำการทดสอบในคอนโซลหากฉันสั่งยกเลิกการเชื่อมต่อด้วยตนเอง (แม้ว่าจะเชื่อมต่อได้โดยอัตโนมัติ) ) มันไม่ได้เชื่อมต่อใหม่
Bib-lost

@ Bib-lost Interesting .. ฉันจะต้องทำการทดสอบเพิ่มเติม คุณกำลังบอกว่าถ้า WiFi ถูกตั้งค่าให้เชื่อมต่ออัตโนมัติในตัวจัดการเครือข่ายและคุณนำมันลงมาด้วยnmcli connection my-wifi downมันไม่เคยเชื่อมต่ออีกครั้ง?
เอ็ลเดอ

1

โซลูชันที่ทำเพื่อฉัน (พบได้ด้วยความช่วยเหลือของ Elder Geek)

ผมเก็บไว้ AutoConnect บนสำหรับเครือข่ายทั้งหมดที่ฉันต้องการเชื่อมต่อโดยอัตโนมัติ แต่ปิดสำหรับจุดร้อน จากนั้นฉันวางสคริปต์ต่อไปนี้ (ด้วยสิทธิ์ที่ถูกต้องตามที่อธิบายไว้ในหน้า Wiki นี้ ) ในโฟลเดอร์/etc/NetworkManager/dispatcher.d

!/bin/bash

interf=$1
state=$2

if [ $interf = "my-ethernet-device" -a $state = "up" ]; then
    nmcli connection up 'my-hotspot'
fi

if [ $interf = "my-ethernet-device" -a $state = "down" ]; then
    nmcli connection down 'my-hotspot'
fi

มันใช้งานได้ดีมากจนถึงตอนนี้; การเชื่อมต่ออัตโนมัติไปยังฮอตสปอตเมื่อใดก็ตามที่มีการเชื่อมต่อสายเคเบิลอีเธอร์เน็ตหรือแม้กระทั่งในขณะที่คอมพิวเตอร์บู๊ตหรือตื่นด้วยการเสียบสายอีเธอร์เน็ตการถอดการเชื่อมต่ออัตโนมัติจากฮอตสปอต


ฉันดีใจที่คุณได้รับการจัดเรียงและพบว่าคำตอบของฉันมีประโยชน์! ไชโย! ในฐานะสมาชิกใหม่คุณอาจไม่ได้ตระหนักถึงสิ่งนี้
เอ็ลเดอ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.