বহির্গামী সংযোগের জন্য লিনাক্সে কাজ না করে রাখুন-লাইভ বিকল্পগুলি


8

কেউ কি জানেন যে লিনাক্স বহির্গামী সংযোগে কিপ-লাইভ সকেট বিকল্পগুলি সমর্থন করে?

আমি বেঁচে থাকার বিকল্পগুলির সাথে বহির্গামী সংযোগ তৈরি করেছি কিন্তু নেটস্যাট - টায়ার্স বন্ধ রয়েছে (আমি ধরে নিচ্ছি টাইমার বন্ধ রয়েছে):

tcp 0 0 localhost.localdomain:44307 172.16.0.15:2717 ESTABLISHED off (0.00/0/0)

একই সকেট বিকল্পগুলির সাথে আগত সংযোগগুলি প্রয়োগের শো:

tcp 0 0 172.16.0.3:8585 localhost.localdomain:21527 ESTABLISHED keepalive (29.26/0/0)

আমি আশা করি আমি সকেটের বিকল্পগুলি দেখতে পেতাম তবে এস এস বা এলএসফ উভয়ই সেগুলি আমাকে দেখায় না।

উত্তর:


7

প্রথমে আপনাকে নিশ্চিত করতে হবে যে আপনার সিস্টেমে টিসিপি রক্ষণশীলকে সক্ষম করা আছে। আপনি এটির মতো ডিফল্ট সেটিংস চেক করতে পারেন:

# sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_probes net.ipv4.tcp_keepalive_intvl
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_intvl = 75

তারপরে নিশ্চিত হয়ে নিন যে আপনি এটি আপনার কোডে সঠিকভাবে সেট করছেন। এটি দেখতে কিছু দেখতে হবে:

int optval = 1;
if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, &optval, sizeof(optval)) < 0) {
    perror("setsockopt()");
    close(s);
    exit(EXIT_FAILURE);
}

আমার সিস্টেমে যখন আমি উভয় পক্ষের SO_KEEPALIVE সেট করতে উপরের কোডটি ব্যবহার করি:

tcp        0      0 127.0.0.1:48591         127.0.0.1:5555          ESTABLISHED keepalive (6958.37/0/0)
tcp        0      0 127.0.0.1:5555          127.0.0.1:48591         ESTABLISHED keepalive (6958.37/0/0)

এবং তারপরে আমি ওয়্যারশার্ক দিয়ে যাচাই করেছিলাম যে কিপালাইভ NOPপাঠানো হচ্ছে।

টিসিপি কিপালাইভ হাওটোতে আরও বিশদ পাওয়া যাবে ।


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

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

@ অ্যাকলিচ ঠিক আছে, আপনি যদি সিস্টেমে কিপালিভ সেট করেন তবে এটি আপনার অ্যাপ্লিকেশন যা এটি সঠিকভাবে ব্যবহার করে না। আমি অ্যাকুলিচের পরামর্শ অনুসারে টিসিপি কেপালাইভ হাওটো পড়তে বা অ্যাপ্লিকেশনটির উত্স কোড পোস্ট করার জন্য বা হয় কি হবে তা দেখার জন্য একটি
এলএসফ

0

ক্লায়েন্ট-sysctl-করুন:

sudo /sbin/sysctl -a|grep keep
net.ipv4.tcp_keepalive_time = 20
net.ipv4.tcp_keepalive_probes = 1
net.ipv4.tcp_keepalive_intvl = 1

ক্লায়েন্ট tcpdump রাখুন :

sudo /usr/sbin/tcpdump  -nn -vv -i bond0 tcp and host 10.201.126.72 and port 8001
tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 65535 bytes

তবে কোনও প্যাকেজ ক্যাপচার নয় means যার অর্থ tcp_keepalive_time কাজ করে না

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