Chỉ thiết lập tự động kết nối đến điểm nóng khi kết nối ethernet


8

Tôi hiện đang chuyển đổi giữa hai thiết lập sau trên cơ sở hàng ngày:

1) Được kết nối với internet thông qua mạng WiFi.

2) Có máy tính xách tay (Ubuntu 16.04) của tôi được kết nối với internet thông qua kết nối có dây, sau đó chia sẻ kết nối này với các thiết bị khác của tôi thông qua chức năng điểm nóng tích hợp của Ubuntu.

Hiện tại, việc chuyển đổi từ 1 sang 2 yêu cầu tôi phải thực hiện thủ công cuộc đối thoại "kết nối với mạng ẩn" trong Trình quản lý mạng; tương tự chuyển đổi từ 2 sang 1 yêu cầu tôi ngắt kết nối thủ công khỏi điểm phát sóng và kết nối với mạng WiFi. Nó không phải là nhiều công việc, nhưng tôi làm nó thường xuyên đến mức tôi muốn nó được tự động hóa.

Nó không đơn giản như cho phép tự động kết nối cho điểm phát sóng, vì sau đó nó sẽ ghi đè chức năng tự động kết nối của các mạng khác thay vì kết nối tôi với mạng WiFi khi tôi không kết nối qua kết nối có dây và tôi kết thúc bằng một điểm nóng nhưng không có mạng. Vì vậy, tôi cần một giải pháp:

  • kết nối tôi với điểm nóng bất cứ khi nào tôi kết nối với internet thông qua kết nối có dây.
  • ngắt kết nối tôi khỏi điểm nóng khi không có kết nối ethernet.
  • tự động kết nối tôi với một trong các mạng có autoconnect = true bất cứ khi nào chúng có sẵn và không có kết nối ethernet.

Một lời giải thích đầy đủ về cách làm điều này sẽ rất tuyệt, nhưng một tài liệu tham khảo hướng dẫn tốt (không phải chuyên gia) để thiết lập các loại quy tắc này cũng sẽ được đánh giá rất cao.


1
Tôi không chắc chắn 100% những gì bạn làm, tôi đoán bạn sử dụng trình quản lý mạng? Vì vậy, thật khó để cung cấp một hướng dẫn. Tôi sẽ xem xét post-uptrong những /etc/network/interfacesbối cảnh, có một tổng quan tuyệt vời ở đây . post-upvề cơ bản chỉ gọi các lệnh hoặc tập lệnh sau khi giao diện xuất hiện.
Robert Riedl

Trông giống như một nơi tốt để bắt đầu. Sẽ nhìn vào đó, cảm ơn.
Bib-mất

Câu trả lời:


2

Theo hiểu biết của tôi, khi bạn cắm cáp Ethernet ngắt kết nối wifi và kết nối wifi sẽ tự động giảm. Theo cách tương tự, ngắt kết nối cáp Ethernet tự động kết nối với wifi ưa thích của bạn (tất nhiên là bạn đã chọn hộp kiểm để tự động kết nối với mạng Wifi đó trên tab chung của trình quản lý mạng. Đã thử nghiệm trên bản cài đặt mặc định của Ubuntu 16.04.3

Vì vậy, nếu tôi hiểu chính xác bạn, bạn chỉ muốn tự động khởi động dịch vụ hotspot trên máy tính xách tay của mình khi cáp Ethernet được kết nối và vô hiệu hóa dịch vụ khi cáp Ethernet bị ngắt kết nối.

Điều này khá đơn giản để thực hiện với tập lệnh bash và nmcli'nmcli' là một công cụ mạng mạnh mẽ cho phép bạn đưa các kết nối lên xuống theo ý muốn và thu được hàng tấn thông tin liên quan.

Để tìm hiểu những kết nối nào bạn sẽ viết kịch bản chỉ cần chạy nmcli -t monitor| grep primarykhi được kết nối qua wifi và cắm cáp Ethernet. Các kết nối bạn quan tâm để đưa lên và xuống nmclisẽ là các kết nối được bao quanh bởi 's Ví dụ: 'Kết nối có dây 1' logic là khi 'Kết nối' được kết nối sẽ tạo ra điểm nóng (bạn có thể thấy cần phải sử dụng lệnh sleephoặc sử dụng công -wtắc để tạo nmclitrong tập lệnh của bạn chờ một số giây xác định để lệnh hoàn thành trước khi ban hành lệnh tiếp theo.

Đưa một kết nối xuống đơn giản như nmcli 'connection name' downvà đưa một kết nối lên lànmcli 'connection name' up

Lưu ý: Để kiểm soát hoàn toàn thông qua tập lệnh, bạn có thể thực sự cần phải tắt tùy chọn kết nối tự động ít nhất là đối với kết nối wifi của bạn trong Trình quản lý mạng vì nó sẽ cố gắng tự động kết nối bất cứ khi nào có sẵn và có thể can thiệp vào những gì bạn đang cố gắng thực hiện. Trích từ 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.

Vì vậy, khi bạn đã xác định rằng Ethernet của mình được kết nối, bạn có thể đưa ra các lệnh để đưa kết nối wifi xuống Ví dụ: nmcli connection my-wifi down và sau đó kết nối hotspot lên Ví dụ: nmcli connection my-hotspot up

Để biết thêm về cách tự động chạy các tập lệnh dựa trên kết nối mạng, hãy xem điều này. Để biết thêm chi tiết về 'nmcli', hãy kiểm tra trang người đàn ông. Và đây là thông tin về cách tạo một điểm nóng.


Cảm ơn bạn đã tham khảo wiki, với tư cách là một người không sử dụng năng lượng, tôi thấy những thứ này dễ bắt đầu hơn các trang man. Sẽ giữ cho bạn được đăng
Bib-mất

Cho đến nay là tốt, nhưng không hoàn toàn hài lòng với phần vô hiệu hóa tự động kết nối. Tôi đang xem qua các trang hướng dẫn về nmcli, nhưng liệu sẽ có lệnh 'quét các mạng có thể kết nối tự động' khi rút cáp ethernet?
Bib-mất

@ Bib-Mất Các thử nghiệm của tôi cho thấy rằng việc để kết nối không dây dưới dạng tự động có thể kết nối khi kết nối được kết nối khi cáp Ethernet được cắm và tự động kết nối lại nếu bạn đặt nó xuống một cách thủ công. Kết quả của bạn có khác với tôi không?
Anh Cả Geek

Tôi chưa thể tạo tập lệnh chạy bằng cách cắm cáp Ethernet (mặc dù tôi đã làm theo các bước trong Wiki) nhưng chỉ bằng cách kiểm tra trong bảng điều khiển, nếu tôi tự đặt hàng để ngắt kết nối khỏi kết nối (ngay cả khi đó có thể tự động kết nối ) nó không kết nối lại.
Bib-mất

@ Bib-mất Thú vị .. Tôi sẽ phải thử nghiệm thêm. Bạn đang nói rằng nếu wifi được đặt thành tự động nmcli connection my-wifi downkết nối trong Trình quản lý mạng và bạn đưa nó xuống với nó thì không bao giờ kết nối lại?
Anh Cả Geek

1

Giải pháp đã làm điều đó cho tôi (được tìm thấy với sự giúp đỡ của Anh Cả Geek).

Tôi giữ Autoconnect trên cho tất cả các mạng tôi muốn tự động kết nối, nhưng tắt cho nóng tại chỗ. Sau đó tôi đặt đoạn script sau (với quyền phù hợp như được mô tả trên trang Wiki này ) trong thư mục/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

Điều này hoạt động rất tốt cho đến nay; tự động kết nối với điểm phát sóng bất cứ khi nào cáp ethernet được cắm hoặc ngay cả khi máy tính khởi động hoặc thức dậy với cáp ethernet được cắm. Tự động kết nối từ điểm nóng bất cứ khi nào rút cáp ethernet, sau đó là kết nối tự động với mạng WiFi có sẵn.


Tôi rất vui vì bạn đã sắp xếp nó và thấy câu trả lời của tôi hữu ích! Chúc mừng! Là một thành viên mới, bạn có thể không nhận thức được điều này.
Anh Cả Geek
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.