তারযুক্ত / কেবল নেটওয়ার্ক উপলব্ধ থাকলে ডাব্লুএলএন অক্ষম করুন


39

প্রশ্ন সব বলে। আমি কেবল চাই যে যখনই তারযুক্ত সংযোগ উপলব্ধ তখনই আমার ডাব্লু-ল্যান সংযোগটি অক্ষম করা উচিত। উবুন্টু / জ্নোমে এটি করার সহজতম উপায় কী হবে?

সমস্ত গাইডে (উদাহরণস্বরূপ কিছু অনুমান সম্পর্কে) আমি আমার পুরো নেটওয়ার্ক কনফিগারেশন (ডাব্লুপিএ কী, ডিএইচসিপি, ...) কনফিগার করতে পেরেছি, তবে আমি দেখতে পেলাম যে এই জাতীয় ব্যবহারের ক্ষেত্রে কিছুটা জটিল। সংযুক্ত wlan0থাকাকালীন আমি কেবল অক্ষম করতে চাই eth0


এই প্রশ্নের উত্তর কম্পিউটার থেকে কম্পিউটারে পরিবর্তিত হয়। আমি জানি না যে উবুন্টু এটি অনুমতি দেয় কিনা তবে সাধারণত আমি এটি বায়োএস-এ একটি বিকল্প খুঁজে পেয়েছি।
ইসজি

আমার অর্থ completely disableওয়ালান নয়, আমি যদি তারযুক্ত সংযোগ উপলব্ধ থাকে তবে উবুন্টুকে কোনও ওলানের সাথে সংযোগ স্থাপনের চেষ্টা করতে অক্ষম করব। সুতরাং এটি একটি ওএস জিনিস।
ইনগো ফিশার

উত্তর:


55

আপনি এই স্ক্রিপ্টটি এখানে ফেলে দিতে পারেন /etc/NetworkManager/dispatcher.d/99-wlan:

#!/bin/bash
wired_interfaces="en.*|eth.*"
if [[ "$1" =~ $wired_interfaces ]]; then
    case "$2" in
        up)
            nmcli radio wifi off
            ;;
        down)
            nmcli radio wifi on
            ;;
    esac
fi

পরে ভুলে যাবেন না:

chmod +x /etc/NetworkManager/dispatcher.d/99-wlan

এটি উত্তরাধিকারের eth*নাম এবং নতুন কর্নেল "ভবিষ্যদ্বাণীযুক্ত নামযুক্ত ইন্টারফেস" সনাক্ত enকরে যা বাস পথ বা ম্যাক ঠিকানা ব্যবহার করে যাতে প্রতিটি ইন্টারফেসের নাম প্রতিটি বুটে একই থাকে। এটি ইউএসবি-সি (পাসথ্রু) এবং ইউএসবি ইথারনেট অ্যাডাপ্টারের সাথে আমি চেষ্টা করেছিলাম এবং আমি নিশ্চিত যে এটি বিল্ট-ইন অ্যাডাপ্টারগুলির সাথেও কাজ করবে confident


আমার ওয়্যারলেস বারবার সংযোগ দেওয়ার চেষ্টা করছিল এবং এটি সত্যিই বিরক্তিকর হতে শুরু করে। এই স্ক্রিপ্টের জন্য ধন্যবাদ, অবশেষে এটি আমাকে নেটওয়ার্কের পাসওয়ার্ড জিজ্ঞাসা করা বন্ধ করে দিয়েছে। আমি যখন আমার কম্পিউটারটি পুনরায় বুট করব তখন স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে শুরু হবে?
জোয়েল লর্ড

2
@ জোয়েলর্ড: প্রতিবার কোনও নেটওয়ার্ক ইন্টারফেস শুরু বা বন্ধ হয়ে গেলে এই স্ক্রিপ্টটি স্বয়ংক্রিয়ভাবে চালিত হবে। আপনি যখন ইথ0 সংযোগ বিচ্ছিন্ন করেন তখন আপনার ওয়্যারলেস সক্ষম হয়ে যায়। আপনি যখন eth0 সংযুক্ত করেন তখন আপনার ওয়্যারলেস অক্ষম হয়ে যায়।
ফোর্ড

1
সলিড - পুরোপুরি এবং দুর্দান্ত ন্যূনতম স্ক্রিপ্টে কাজ করে।
এয়ার

3
Nmcli সংস্করণ 1.0.2 আমি `তা পরিবর্তন করতে nmcli NM wifi` ছিল nmcli r wifi যেখানে rমানে রেডিও
আলেসান্দ্রো Pezzato

1
উবুন্টু 16.04, বাশ সংস্করণ 4.3.48, এই স্ক্রিপ্টটি কাজ করার জন্য উদ্ধৃতিগুলি সরানো দরকার।
কার্লস সালা

8

নেটওয়ার্ক-ম্যানেজারের v0.9.10 থেকে, প্রথম স্ক্রিপ্টটি পরিবর্তন করতে হবে

#!/bin/bash

if [ "$1" = "eth0" ]; then
    case "$2" in
        up)
            nmcli radio wifi off
            ;;
        down)
            nmcli radio wifi on
           ;;
   esac
fi

আশা করি এটা সাহায্য করবে!


এটি সম্ভবত একক উত্তর হতে পারে। নেটওয়ার্ক ম্যানেজারের এই সংস্করণটি কী পরিবর্তিত হয় তা বলার ক্ষেত্রে এটি ব্যাপকভাবে সহায়তা করবে ।
যাত্রামন গীক

v0.9.10 থেকে মনে হচ্ছে। wiki.gnome.org/ প্রকল্পগুলি
নেট

এই সমাধানটি সঠিক নয়, কারণ এটি কেবল তখনই কাজ করে যদি আপনার ল্যান ইন্টারফেসটিকে "eth0" বলা হয়।
কার্লস সালা

4

জিনোম জিইউআই পদ্ধতির জন্য কেবল বেশ ...

  1. আপনার ঘড়িটি দিয়ে জিনোম প্যানেলে নেটওয়ার্ক সিস্টেম সূচকটিতে ডান ক্লিক করুন। (সূচকটি দুটি আইকনের মধ্যে একটি হবে; হয় উপরে / ডাউন তীরগুলি (ল্যান) অথবা traditionalতিহ্যবাহী ওয়াইফাই ফানেল Note নোট করুন যে ল্যান এবং ওয়াইফাই বা কেবল ল্যান দুটি সংযুক্ত থাকবে এবং ওয়াইফাই ফানেল প্রদর্শিত হবে তখন আপ / ডাউন আইকনটি উপস্থিত হবে কেবলমাত্র ওয়াইফাইয়ের মাধ্যমে সংযুক্ত। (ল্যান সংযোগ বিচ্ছিন্ন) LAN - ল্যান স্বয়ংক্রিয়ভাবে ওয়াইফাইকে ট্রাম্প করে * *]

  2. 'সংযোগগুলি সম্পাদনা করুন ...' নির্বাচন করুন

  3. 'ওয়্যারলেস' ট্যাবটি নির্বাচন করুন।
  4. আপনার তালিকার প্রথম সংযোগটিতে ডাবল ক্লিক করুন এবং 'স্বয়ংক্রিয়ভাবে সংযুক্ত করুন' বাক্সটি আনচেক করুন।
  5. 'প্রয়োগ ...' বোতামটি ক্লিক করুন।
  6. তালিকার প্রতিটি সংযোগের জন্য পুনরাবৃত্তি করুন।

এনএম আপনাকে সারাক্ষণ স্বয়ংক্রিয়ভাবে সংযুক্ত করার চেষ্টা না করেই, নেটওয়ার্ক আইকনে বাম ক্লিক করে ফ্লাইট-অন-ফ্লাই ম্যানুয়াল সংযোগ এবং সংযোগ বিচ্ছিন্ন করার জন্য এটি ওয়্যারলেস নেটওয়ার্কটি চালু রাখবে।

স্বাভাবিকভাবেই আপনি নেটওয়ার্ক আইকনে ডান ক্লিক করে এবং তারপরে "ওয়্যারলেস সক্ষম করুন" বাছাই করতে বাম ক্লিক করে কার্যকরভাবে ওয়্যারলেস ইন্টারফেসটিকে নীচে বা উপরে আনতে পারেন যা চেক চিহ্নের উপস্থিতি বা অনুপস্থিতির দ্বারা চিহ্নিত করা হয়েছে।

  • ল্যান স্বয়ংক্রিয়ভাবে ওয়াইফাই ট্রাম্প করে, ওয়াইফাই অক্ষম করার দরকার নেই। কেবলমাত্র আপনার ইথারনেট কেবলটি আনপ্লাগিংটি অবিচ্ছিন্নভাবে সংযোগটি ওয়াইফাইতে স্থানান্তরিত করবে এবং আপনি বাছাই করতে এবং কোনও গোলমাল ছাড়াই চলতে পারবেন। একইভাবে, ল্যান পুনরায় সংযোগের সাথে।
  • ল্যান ট্রাম্প ওয়াইফাই করার সময় এনএম (নেটওয়ার্ক ম্যানেজার) আপনি যা খুঁজছেন তা একই সাথে বিভিন্ন নেটওয়ার্কে থাকা উচিত এবং অনলাইনে (ওয়াইফাই) এবং স্থানীয় হোস্ট (ল্যান) বা ভি / ভি উভয়ের সাথে কাজ করার জন্য খুঁজে পাবেন।

2

কেবল অনুমান তবে আমি অনুমান করি ifplugd সাহায্য করতে পারে। আপনি কেবল যখন ওয়াইফাইটি বন্ধ করতে পারেন তখন তার ব্যবহার করা হবে।


ধন্যবাদ, আমি ইতিমধ্যে এটি সম্পর্কে পড়েছি। Ifplugd সম্পর্কে আমি যা পছন্দ করি না তা হ'ল আমাকে আমার সমস্ত নেটওয়ার্ক সেটিংস এতে রেখে দিতে হবে /etc/network/interfaces। আমি নেটওয়ার্কিং স্টাফগুলিতে খুব ভাল নই, তাই আমি অবাক হয়ে বলি যে আমি আমার বিদ্যমান সংযোগগুলি থেকে প্রয়োজনীয় সমস্ত মানগুলি কোথায় পাব? তবুও আশা করি এর একটি সহজ সমাধান আছে।
ইনগো ফিশার

1

দুটি সাধারণ 'স্ক্রিপ্ট' তৈরি করুন, স্ক্রিপ্টটির নামটি গুরুত্বপূর্ণ নয় (আমি কেবল ওয়ালান ব্যবহার করি) এবং আমি ধরে নিই সেখানে কেবল একটি কেবল নেটওয়ার্ক ইন্টারফেস রয়েছে, এবং তাকে 'এথ0' বলা হয় ... আপনি যদি 'আইফোনফিগ' দিয়ে পরীক্ষা করেন তবে নিশ্চিত নই মনে রাখবেন যে কেবলমাত্র wlan0 নয়, পুরোপুরি এই অক্ষম বেতার। (আপনার যদি একাধিক ওলান ইন্টারফেস থাকে এবং কেবলমাত্র নির্দিষ্ট নির্দিষ্টকরণগুলি অক্ষম করতে চান তবেই একটি সমস্যা)

এই স্ক্রিপ্টগুলি সহজেই রূপান্তরিত করা যায় - বুলিয়ান যুক্তি দ্বারা - এমন একটি পরিস্থিতিতে আপনার কাছে দুটি বা ততোধিক সক্ষম নেটওয়ার্ক ইন্টারফেস রয়েছে।

নিশ্চিত করুন যে এই স্ক্রিপ্টগুলি 'chmod + x' দিয়ে কার্যকর করা যায়

/etc/network/ip-up.d/wlan

#!/bin/sh
# If eth0 goes up, disable wireless
if [ "$IFACE" = "eth0" ]; then
  dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:false
fi

/etc/network/if-down.d/wlan

#!/bin/sh
# If eth0 goes down, enable wireless
if [ "$IFACE" = "eth0" ]; then
  dbus-send --system --type=method_call --dest=org.freedesktop.NetworkManager /org/freedesktop/NetworkManager org.freedesktop.DBus.Properties.Set string:org.freedesktop.NetworkManager string:WirelessEnabled variant:boolean:true
fi

এটি নেটওয়ার্কম্যানেজারে ওয়্যারলেস সক্ষম / অক্ষম করে যা সাধারণত জিনোম প্যানেলে সিস্টেম সূচক হিসাবে পাওয়া যায়।

আপনি dbus-send লাইনের পরিবর্তে 'ifconfig wlan0 ডাউন' বা 'ifconfig wlan0 up' ব্যবহার করতে পারেন তবে এটি আরও ব্যবহারকারী-বান্ধব হওয়া উচিত এবং উবুন্টুর সিস্টেম ইউটিলিটিগুলিতে কম হস্তক্ষেপ করা উচিত।

উবুন্টু ডেস্কটপ ১০.১০ এর সাথে পরীক্ষিত, এবং নেটওয়ার্কম্যানেজার এবং ডিবিএস ব্যবহার করে পূর্ববর্তী সংস্করণ বা অন্যান্য বিতরণগুলির সাথে কাজ করা উচিত।


এটি সম্ভবত কার্যত গৃহীত nmcli radio wifi offউত্তরের সমতুল্য তবে আমি কৌতূহল বোধ করব যে সংযোগগুলি বন্ধ করার সময় সিস্টেমটি কী লগ রিপোর্ট করে তা যদি উভয়ভাবে আরও "গ্রেফিউল" হয় কিনা তা দেখার জন্য।
ড্রাগন 788


1

এটি সিরিল ফেসেলের আগের উত্তরের একটি উন্নতি। ফেডোরা জন্য ভাল হিসাবে, যেখানে নেটওয়ার্ক ইন্টারফেসের এখন এর মতো নামগুলি থাকতে পারে (আমি মন্তব্যের খ্যাতি হবে না।) এই এক কাজ wlan0, wlp6s0, em1এবং enp0s20u2u1)। এই প্রকরণটি ইন্টারফেসের নামের সাথে মিলের চেষ্টা করে না, বরং /sys/class/netডিভাইসে তথ্য অনুসন্ধান করে। আমার ফেডোরা 21 ল্যাপটপে (কার্নেল 3.18) কাজ করে এবং আমি বিশ্বাস করি এটি ডিবিয়ান> = 7 এও কাজ করবে।

#! / বিন / SH

[$ # -ge 2] || প্রস্থান 1

ডিবাগ = মিথ্যা
STATEDIR = প্রথমেই / var / রান / NM-ওয়্যার্ড
mkdir -p $ STATEDIR

Iface = $ 1
পদক্ষেপ = $ 2

myname = $ (বেসনাম "$ 0") || প্রস্থান 1
লগ () {লগার-পি ইউজারআইআনফো -t "$ {মাইনেম} [$$]" "$ আইএফএসিই / $ অ্যাকশন: $ *"; }

যদি $ DEBUG; তারপর
    যদি [-e "/ sys / শ্রেণী / নেট / $ IFACE / ডিভাইস"]; তারপর
        লগ "/ সিস / শ্রেণি / নেট / $ আইএফএসিই / ডিভাইস বিদ্যমান"
    আর
        লগ "/ sys / শ্রেণী / নেট / F IFACE / ডিভাইস বিদ্যমান নেই"
    ফাই

    যদি [-e "/ sys / শ্রেণী / নেট / $ IFACE / ওয়্যারলেস"]; তারপর
        লগ "/ সিস / শ্রেণি / নেট / F আইএফএসিই / ওয়্যারলেস বিদ্যমান"
    আর
        লগ "/ সিস / শ্রেণি / নেট / F আইএফএসিই / ওয়্যারলেস বিদ্যমান নেই"
    ফাই
ফাই

কেস {CTION অ্যাকশন} ইন
    পর্যন্ত)
        rm -rf AT STATEDIR / $ IFACE

        # এটি কোনও দৈহিক ডিভাইস না হলে কিছু করবেন না।
        যদি [! -e "/ sys / শ্রেণী / নেট / $ IFACE / ডিভাইস"]; তারপর
            লগ "ignoring IFACE একটি দৈহিক ডিভাইস নয় - উপেক্ষা"
            প্রস্থান 0
        ফাই

        # এটি একটি ওয়্যারলেস ডিভাইস হলে কিছু করবেন না।
        যদি [-d "/ sys / শ্রেণী / নেট / $ IFACE / ওয়্যারলেস"]; তারপর
            লগ "$ IFACE তারযুক্ত ডিভাইস নয় - উপেক্ষা"
            প্রস্থান 0
        ফাই

        # তারযুক্ত ডিভাইসগুলির ট্র্যাক রাখুন। তারা নীচে যান, যখন
        # ডিভাইস নোড পাশাপাশি যেতে পারে (যেমন ইউএসবি ইথারনেট ডংল),
        # সুতরাং ডিভাইসটি কী ধরণের তা আমাদের বলার উপায় ছিল না।
        স্পর্শ করুন AT STATEDIR / $ IFACE

        # এখন ওয়াইফাই বন্ধ করুন।
        লগ "ওয়াইফাই বন্ধ করা"
        nmcli r wifi বন্ধ
        ;;
    নিচে)
        # পরীক্ষা করুন যে আমরা পূর্বে previously IFACE কে হিসাবে স্বীকৃত করেছি
        # শারীরিক, তারযুক্ত ডিভাইস।
        যদি [! -e $ স্ট্যাটিডির / $ আইএফএসিই]; তারপর
            লগ "$ IFACE তারযুক্ত ডিভাইস নয় - উপেক্ষা"
            প্রস্থান 0
        ফাই

        rm -rf AT STATEDIR / $ IFACE

        # একটি একক ফাইল যাচাই করার পরিবর্তে আমরা পরীক্ষা করতে পারতাম
        # স্ট্যাটায়ডির এখনও ফাইল আছে কিনা। যদি তাই হয়, আমরা
        # এখনও তারযুক্ত ডিভাইস সক্ষম করেছে ...
        লগ "WiFi সক্ষম করা"
        nmcli r wifi চালু আছে
        ;;
esac

1

আপনি যদি ইতিমধ্যে বিদ্যুৎ পরিচালনার জন্য tlp ব্যবহার করে থাকেন তবে এটি করার একটি বৈশিষ্ট্য রয়েছে।

আপনাকে আপনার কনফিড ফাইলটি (/ etc / default / tlp) সংশোধন করতে হবে

# Radio devices to enable/disable when docked.
#DEVICES_TO_ENABLE_ON_DOCK=""
DEVICES_TO_DISABLE_ON_DOCK="wifi wwan"

# Radio devices to enable/disable when undocked.
DEVICES_TO_ENABLE_ON_UNDOCK="wifi"
#DEVICES_TO_DISABLE_ON_UNDOCK=""

"ডকড" এর অর্থ কি পাওয়ারে প্লাগ ইন করা বা আক্ষরিক ডকিং স্টেশন / পোর্ট প্রতিরূপকারী বা প্লাগ ইন করা বা ল্যান সংযোগ সরবরাহকারী কোনও কিছুতে কেবল প্লাগ ইন করা?
ড্রাগন 788

0

যে কারণেই হোক না কেন, ডারহোকের বর্তমান শীর্ষ উত্তর আমার পক্ষে কাজ করে না, যদিও এটি হওয়া উচিত। অন্যান্য পরামর্শগুলির মধ্যে কিছু কাজ করে তবে আমি খুব সাধারণ কিছু চাইছিলাম। সুতরাং, আমি নীচের স্ক্রিপ্টটি ব্যবহার করছি (যা আমি /etc/NetworkManager/dispatcher.d/ওয়াইফাইটি চালু করার জন্য রেখেছি eth0এর স্ট্যাটাসের উপর নির্ভর করে ।

#! /bin/bash
# Enable/disable wlan0 depending on eth0 and wlan0 current state

eth0_status=$(cat /sys/class/net/eth0/operstate)
wlan0_status=$(cat /sys/class/net/wlan0/operstate)

if [[ "$eth0_status" = "up" ]];
    then
        nmcli nm wifi off
elif [[ "$wlan0_status" = "down" ]] && [[ "$eth0_status" = "down" ]];
    then
        nmcli nm wifi on
else 
    nmcli nm eth0 on
    nmcli nm wlan0 off

fi

elseবিবৃতি সম্ভবত অপ্রয়োজনীয়, এবং এমনকি কিছু অবস্থার অধীনে একটি বিষয় হতে পারে, কিন্তু আমি এটা সেখানে বাম ধরো যদি (যে বিবৃতি ছাড়া, যদি eth0ডাউন, এটি আসে আপ)।


এটি করার পদ্ধতিগত উপায় কী?
Xofo
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.