কীভাবে লিনাক্সে আইপিভি 6 আইপি ঠিকানা পাবেন


35

আমার একটি লিনাক্স সার্ভার রয়েছে এবং আমি একটি আইপিভি 6 ঠিকানা একটি একক কমান্ড লাইনের মাধ্যমে সন্ধান করতে চাই।

এখন পর্যন্ত আমার আদেশ:

$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'

কোন প্রদর্শনী:

2001:410:0:39:221:28ff:fe46:eef4
fe80::221:28ff:fe46:eef4

তবে আমি কেবল একটি ঘটনা চাই , যাতে আউটপুটটি পড়ে:

2001:410:0:39:221:28ff:fe46:eef4

একটি শেল স্ক্রিপ্ট লিখুন এবং সেখানে এই কমান্ডগুলি রাখুন: ভয়েলা, আপনি এখন একটি "একক" কমান্ড তৈরি করেছেন।
আকির

4
আইপিভি 6 এর সাথে ডিল করার সময় কোনও একক ঠিকানার মধ্যে সীমাবদ্ধ রাখার প্রস্তাব দেওয়া হয় না। একাধিক গ্লোবাল ঠিকানা, একাধিক লিঙ্ক-স্থানীয় ঠিকানা, একাধিক সাইট-স্থানীয় ঠিকানা থাকতে পারে ...
মাধ্যাকর্ষণ

উত্তর:


31
ip -6 addr

আপনার আইপিভি 6 ঠিকানাগুলি প্রদর্শন করবে।


% ip -6 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever... এখনও গ্রিপবেবল
আকিরা

1
এটি বর্ণিত প্রশ্নের সমাধান করে না। ওপি একটি আইপিভি (পুনরুদ্ধার করতে একটি একক কমান্ড লাইন চায় (যার অর্থ সম্ভবত প্রাথমিক জনসাধারণ)। সুতরাং হয় ip -6 addr show dev eth0 | sed -n 's|^.*inet6 \([^ ]*/64\).*$|\1|p'বা ip -6 addr show dev eth0 | awk '/inet6/{print $2}'বেস হিসাবে ব্যবহার করা যেতে পারে এবং ওপি তার নির্দিষ্ট ব্যবহারের ক্ষেত্রে এগুলি প্রসারিত / সম্পাদনা করতে পারে।
rwenz3l

6

/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80

এর আউটপুটটি /sbin/ip -6 addr | grep inet6দেখতে এরকম কিছু দেখাচ্ছে:

inet6 ::1/128 scope host 
inet6 2001:123:456:55f::1/64 scope global 
inet6 fe80::62eb:69ff:fed2:d2a6/64 scope link 

awk -F '[ \t]+|/' '{print $3}'প্রতিটি লাইন সেটিং ডিলিমিটারকে এক বা একাধিক সাদা স্পেস বা একটি ফরোয়ার্ড স্ল্যাশ হতে বিভক্ত করে। আমাদের যে অংশটি প্রয়োজন তা হ'ল $ 3।

grep -v ^::1 | grep -v ^fe80::1বা এর সাথে শুরু হওয়া কোনও লাইন বাদ দিতে fe80


গ্রেপের পাইপ পাইয়ে দেওয়ার উপায় আছে, এটি একটি একক awk `awk -F '[\ t] + | /' '$ 3 ==" :: 1 "{পরের;} $ 3 ~ / ^ fe80 এ সংহত হতে পারে ::/ { পরবর্তী ; in / inet6 / {প্রিন্ট করুন $ 3} '`
আর্চেমার

3
$ /sbin/ifconfig | grep inet6
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link
      inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
      inet6 addr: ::1/128 Scope:Host

আপনি যদি একটি আইপিভি 6 ঠিকানার র্যান্ডম নির্বাচন চান

$ /sbin/ifconfig | grep inet6 | head -n 1
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link

আপনি যদি প্রথম ইথারনেট অ্যাডাপ্টারের জন্য সর্বাধিক প্রচলিত নামের আইপিভি 6 ঠিকানা চান want

$ /sbin/ifconfig eth0 | grep inet6
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link

আপনি যদি শুধু ঠিকানা চান

$ /sbin/ifconfig eth0 |  awk '/inet6/{print $3}'
fe80::2ff:19ff:fe60:1a00/64

2

লিনাক্সে আপনার আইপি ঠিকানা দেখতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ifconfig

সাধারণত, আইপিভি 6 ঠিকানার মতো দেখতে 2001:5c0:9168::/48। আপনি যদি আপনার আইপি-তে কোনও বিরোধের মুখোমুখি হন তবে আবার আইপি ঠিকানা সেট করতে নীচের পদক্ষেপগুলি অনুসরণ করুন:

  1. আইপিভি 6 আইপিগুলি নির্ধারণের জন্য, আপনার আইপ্রেট 2 সরঞ্জাম ইনস্টল করা আছে তা নিশ্চিত করুন।
  2. সেগুলি ব্যবহার করে, আসুন আপনার আইপিগুলি দেওয়া শুরু করুন।
  3. আইপিভি 6 মডিউল ইনস্টল হয়েছে কিনা তা নিশ্চিত হয়ে নিন।

তারপরে, নতুন আইপি যুক্ত করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:

ip -f inet6 addr add 2001:5c0:9168::2/64 dev eth0

এরপরে ডিফল্ট আইপি যুক্ত করুন

ip -f inet6 ro add default via 2001:5c0:9168::1 dev eth0

আপনার ইনস্টলেশন সমাপ্তির পরে, কেবল আপনার আইপিভি 6 সক্ষম পরিষেবাদিগুলি যেমন অ্যাপাচি, এসএসএইচ ইত্যাদি পুনরায় কনফিগার করুন / পুনঃসূচনা করুন


ifconfigলিনাক্সে অচল এবং এটি আর ব্যবহার করা উচিত নয়। আধুনিক লিনাক্স ডিগ্রোস এমনকি এটি ডিফল্টরূপে আর ইনস্টল করে না (যদি না কিছু প্রাচীন প্যাকেজের প্রয়োজন হয়)।
মাইকেল হ্যাম্পটন

1

কয়েকটি ছোট টুইটগুলি সহ, আপনার আসল প্রয়াসটি কাজ করবে:

ip -o -6 addr show eth0 | sed -e 's/^.*inet6 \([^ ]\+\).*/\1/'

সেখানে বড় পরিবর্তন হ'ল -oপতাকাটি যুক্ত হওয়াতে এন্ট্রিগুলি মুদ্রিত হয়ে যায়, প্রতি লাইনে একটি করে যা তাদের উপর দিয়ে চালানো সহজ করে তোলে।


0

প্রথমত, আপনার মনে রাখতে হবে যে আইপিভি 6 দিয়ে যে কোনও মেশিনের বেশ কয়েকটি আইপিভি 6 ঠিকানা থাকতে পারে এবং সেগুলি পৃথক নেটওয়ার্কে থাকতে পারে এবং আপনি যে কোনও জায়গায় পৌঁছাতে চান তার উপর নির্ভর করে সেগুলির যে কোনওটি ব্যবহার করা যেতে পারে।

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

আপনি যদি এটি "ইন্টারনেটে" প্রেরণ করছেন তবে কেবল এলোমেলোভাবে একটি গ্লোবাল আইপিভি 6 ঠিকানা চয়ন করুন, যেমন গুগলের পাবলিক ডিএনএস ঠিকানা।

ip r get to 2001:4860:4860::8888 | perl -ne '/src ([\w:]+)/ && print "$1\n"'
2001:db8:f387:c818:5:2:0:1000

এটি লিনাক্সকে that গন্তব্যের পথে জিজ্ঞাসা করে। পার্ল ফলাফলটি অনুসন্ধান করে srcএবং পরের ক্ষেত্রটি মুদ্রণ করে।

একটি আলাদা গন্তব্য সরবরাহ করে, আপনি একটি ভিন্ন উত্স ঠিকানা পেতে পারেন:

ip r get to ::1 | perl -ne '/src ([\w:]+)/ && print "$1\n"'
::1

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