আমি কীভাবে ইন্টারফেসটি ইন্টারনেটের সাথে সংযোগের জন্য ব্যবহার করছি তা কীভাবে খুঁজে বের করবেন?


47

Iconconfig অনুযায়ী Eth0 এবং wlan0 আছে এবং আমি পারি ping google.com। কীভাবে ইন্টারফেসটি সক্রিয় রয়েছে (সাধারণ ব্যবহারকারীর সাথে, মূলের সাথে নয়) কীভাবে পিংটি (বা যাই হোক না কেন, পিং বাধ্যতামূলক নয় ) কোন ইন্টারফেস ব্যবহার করেছে তা আমি কীভাবে জানতে পারি ?

দ্রষ্টব্য: উবুন্টু 11.04 বা ফেডোরা 14 ব্যবহার করে


2
নীচের সমাধানগুলি মনে হচ্ছে আপনি নিজেরাই অনুমান করতে চান যা সঠিক বলে মনে হচ্ছে না। (এবং প্রত্যেকের রাউটিং টেবিলগুলি অবিশ্বাস্যভাবে সরল দেখায়!) আমি উইন্ডোজ সমতুল্য খুঁজছি, দেখা যাচ্ছে যে "আইপি রুটটি <ip- অ্যাড্রেস>" আপনাকে বলবে যে আপনি যদি কোনও সংযোগের চেষ্টা করতে চান তবে কোন ইন্টারফেসটি ব্যবহৃত হবে প্রদত্ত আইপি ঠিকানা
mordm

সার্ভার ফল্ট সম্পর্কিত: নির্দিষ্ট হোস্টের রুটের জন্য ইন্টারফেস খুঁজুন (আমি এখানে ক্ষতবিক্ষত করার সময় আমি যা খুঁজছিলাম)।
ওয়াইল্ডকার্ড

উত্তর:


48

আপনি routeআপনার ডিফল্ট রুটটি খুঁজে পেতে ব্যবহার করতে পারেন :

$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     1      0        0 eth0
link-local      *               255.255.0.0     U     1000   0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0

Ifaceগন্তব্য সঙ্গে সঙ্গতিপূর্ণ কলাম defaultআপনি বলে যা ইন্টারফেস ব্যবহার করা হয়।


1
@ জোব যদি আমাদের একটি আইপি ঠিকানা থাকে তবে এটি কী ইন্টারফেসটি ব্যবহার করে তা আমরা কীভাবে খুঁজে পেতে পারি।
Bionix1441

1
এটি গ্রহণযোগ্য উত্তর হওয়া উচিত নয়। আইপ্রাউটটি যদি কাস্টম রাউটিং বিধিগুলি সংজ্ঞায়িত routeকরতে ব্যবহৃত হয় তবে ব্যবহার করা যাবে না। @ টোগিরের কাছে উত্তর রয়েছে।
জোসেফ গ্যারোন

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

1
@ জোব এমনকি গুগল.কম. এর সাথেও, যদি আপনার আলাদা ইন্টারফেসে দুটি করে রুট থাকে তবে লম্বা মুখোশের সাথে ম্যাচটি বাছাই করা হবে (অগত্যা ডিফল্ট নয়)।
ডিফল্টর

1
আমি একটি লাইন "ডিফল্ট ... eth0" এবং একটি লাইন "ডিফল্ট ... wlan0" পাই। তাহলে কোনটি আসল ডিফল্ট?
অ্যাস্ট্রোফ্লয়েড

25

আমার সংস্করণ মূলত উপর ভিত্তি করে তৈরি এই এবং এই :

route | grep '^default' | grep -o '[^ ]*$'

এবং এটি, পরীক্ষামূলকভাবে ম্যাকোসের জন্য:

route -n get default | grep 'interface:' | grep -o '[^ ]*$'

1
ওএসএক্সের জন্য এটি অনুবাদ করার কোনও উপায় আছে কি?
জন এলার্ড

1
@ জোহানআলার্ড: আমার আপডেটটি এখন ম্যাকোসের জন্য সঠিক উত্তর দেয় কিনা তা আমাকে জানতে দিন।
ইব্রাহিম বায়াগোভি

আপনার একাধিক পাইপ লাগবে না, কেবল ব্যবহার করুনroute |awk '/^default/{print $NF}'
পি ....

আমি দুটি লাইন পেয়েছি: "eth0" এবং "wlan0", সুতরাং এখনও আমি জানি না কোনটি সক্রিয় ...
অ্যাস্ট্রোফ্লয়েড

9

জিএনইউ / লিনাক্স সিস্টেমে:

#!/bin/sh

# host we want to "reach"
host=google.com

# get the ip of that host (works with dns and /etc/hosts. In case we get  
# multiple IP addresses, we just want one of them
host_ip=$(getent ahosts "$host" | awk '{print $1; exit}')

# only list the interface used to reach a specific host/IP. We only want the part
# between dev and src (use grep for that)
ip route get "$host_ip" | grep -Po '(?<=(dev )).*(?= src| proto)'

1
এই আদেশগুলি কী করছে দয়া করে তা ব্যাখ্যা করুন। এছাড়াও, আপনি সম্ভবত এখানে বেশ নিরাপদ, কারণ আপনি জানেন যে আপনার মানগুলি কী, তবে সাধারণত, আপনার শেল ভেরিয়েবলের রেফারেন্সগুলি উদ্ধৃত করা উচিত (যদি না আপনার কোনও ভাল কারণ না থাকে এবং আপনি অবশ্যই জানেন যে আপনি কী করছেন )।
জি-ম্যান

1
হয়েছে, কিছুটা হলেও। কেবল এটি পোস্ট করেছে কারণ আমি ঠিক এমনটি করে যা কিছু আবিষ্কার করতে পারি নি। একটি পুতুলের ম্যানিফেস্টে এটি কাস্টম ফ্যাক্ট হিসাবে ব্যবহার করছি ...
টুরগির

আপনার উত্তরটি আরও সঠিক যদি hostস্ক্রিপ্টের কোনও ইনপুট আর্গুমেন্ট হয়। রুট হিসাবে (এবং তাই ইন্টারফেস) বিভিন্ন আইপিএসের জন্য আলাদা হতে পারে।
কেদেহাইরি

6

দৌড়ানো ifconfigআপনার প্রয়োজনীয় তথ্য দেবে give

সক্রিয় ইন্টারফেসের inet addrএকটি হ'ল এবং এর মতো সংক্রমণিত ডেটার রেকর্ড প্রদর্শন করবে:

RX bytes:1930741 (1.8 Mb)  TX bytes:204768 (199.9 Kb)

এছাড়াও আপনি ব্যবহার করতে পারেন ip addrকমান্ড এবং কোন নিষ্ক্রিয় ইন্টারফেসগুলি থাকার হিসাবে মনোনীত হবে: NO-CARRIER


যেহেতু ওপি রুট হতে চায় না, তাই সম্ভবত আপনার মৃত্যুদন্ড কার্যকর করার পুরো পথ দেওয়া উচিত?
tshepang

কমান্ডের ক্ষেত্রেও উন্নত সুবিধার দরকার নেই।
জেসনওয়ারিয়ান

1
উবুন্টু এবং আর্চ: উভয়ই সাধারণ সুযোগ
সুবিধায় চলে

1
@ শাদুর আমার উবুন্টু ১০.১০-এর ইনস্টল-এ নেই এবং হেল্পবুন্টু / কম্যুনিটি / এনভায়রনমেন্ট ভেরিয়েবল অনুসারে ডিফল্ট $ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
পাথ

2
পোস্টারটি ইঙ্গিত করার কারণে এটি একাধিক ইন্টারফেস সহ একটি সিস্টেমে অগত্যা সহায়তা করবে না। আরও ভাল উত্তর হ'ল routeকমান্ডটি ব্যবহার করা হচ্ছে যদিও তা রাউটিংয়ের কারণে অগত্যা বোকা হয়ে উঠবে না। ডিফল্ট রুটটি ইন্টারনেটে উঠতে হবে না যদিও এটি প্রায়ই হয়।
ব্যবহারকারী1801810

6

এক রৈখিক:

ip route get 8.8.8.8 | sed -n 's/.*dev \([^\ ]*\) table.*/\1/p'


সেখানে একটি ঝোলা উক্তি আছে। ঠিক তেমন কাজ করে না
ক্রাইজ

@ ক্রিজে লেখক তার উত্তর আপডেট করেছেন
ভাদিম

5

সাধারণত ডিএমজেড, প্রাইভেট নেটওয়ার্ক, ভিএম হোস্ট ইত্যাদির বিপরীতে "অবশিষ্ট" ইন্টারনেটের পথে যেতে সাধারণত ব্যবহৃত ডিফল্ট নেটওয়ার্ক ইন্টারফেস পান যা সাধারণত স্পষ্টভাবে রাউটে থাকে।

$ ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)'
eth0

এটি সর্বদা ডিফল্ট রুট নয় যা আপনাকে যেখানে চাই সেখানে পৌঁছে দেয়। যদিও ওপিতে সম্ভবত ইন্টারনেটে যাওয়ার জন্য ডিফল্ট রুটটি ব্যবহার করা হচ্ছে, এটি একটি সাধারণীকরণ এবং এটি সর্বদা সত্য নাও থাকতে পারে। সাবধানতার একটি শব্দ
মেলবারসালান

অবশ্যই, এটি কেবলমাত্র ডিফল্ট নেটওয়ার্ক ইন্টারফেস। যদি একাধিক সংযোগ থাকে তবে সত্যই "ইন্টারনেটের সাথে সংযোগ স্থাপন" সম্পর্কে কথা বলা উচিত নয়, বরং সঠিক গন্তব্যে যাওয়ার জন্য ব্যবহৃত নেটওয়ার্ক ইন্টারফেস সম্পর্কে।
ইউজেনিপি

আপনাকে একাধিক পাইপ / গ্রেপ ব্যবহার করার দরকার নেই,ip -4 route ls |awk '/^default/{print $5}'
পি ....

2

কমান্ডটি ip route lsসক্রিয় রুট এবং তাদের উত্সগুলির একটি তালিকা দেবে:

caleburn: ~/ >ip route ls
192.168.10.0/24 dev eth0  proto kernel  scope link  src 192.168.10.7 
default via 192.168.10.254 dev eth0 

1

কমান্ড ব্যবহার করুন:

[root@linux1 network-scripts]# route|grep default | awk '{print $8}'
enp0s3

[রুট @ লিনাক্স 1 নেটওয়ার্ক-স্ক্রিপ্ট] # রুট | গ্রেপ ডিফল্ট | awk '{মুদ্রণ $ 8}' enp0s3 [মূল @ লিনাক্স 1 নেটওয়ার্ক-স্ক্রিপ্ট] #
ল্যারি ক্যাট


0

আপনার মেশিনে যদি একাধিক ইন্টারফেস থাকে (যা আমি ধরে নিই), এমন কোনও ইন্টারফেস নেই যা ইন্টারনেটে সংযোগ করার জন্য ব্যবহৃত হবে।

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

এটি বলেছিল, দয়া করে @ টারজিয়ারের উত্তরটি দেখুন কারণ এটি ঠিক তেমন করে:

  1. একটি ডোমেন দেওয়া হয়েছে (google.com হিসাবে হার্ডকডড, যা উত্তরের একমাত্র খারাপ পয়েন্ট)
  2. এর আইপি সমাধান করে
  3. রুটটি ব্যবহারের জন্য আইপি টেবিলটি বিবেচনা করে (এবং তাই ইন্টারফেস)।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.