มากกว่า 65536 การเชื่อมต่อ TCP บน Linux


11

ฉันพยายามติดตั้งการเชื่อมต่อ TCP ขาออกมากกว่า 65536 กล่องจาก Linux (RedHat5)

ฉันได้กำหนดค่าทั้งขาออกและกล่องยอมรับเพื่อให้ตัวอธิบายไฟล์มีเพียงพอ

ฉันไม่เชื่อว่ามีปัญหาในด้านการยอมรับ - ฉันมีกล่องเป้าหมายหลายกล่องแต่ละที่มีที่อยู่ IP หลายแห่งและฉันใช้หลายพอร์ต

ในด้านขาออกฉันไม่เชื่อว่ามีขีด จำกัด ต่อที่อยู่ IP ฉันกำลังใช้ที่อยู่ IP และพอร์ตหลายแห่ง (ฉันกำลังเปิดการเชื่อมต่อจากพอร์ต 30,000 - 60,000 สำหรับที่อยู่ IP แต่ละแห่ง)

มีพารามิเตอร์ที่สามารถปรับแต่งเคอร์เนล Linux ได้หรือไม่ หรือขีด จำกัด พื้นฐานบางอย่างใน TCP

ความล้มเหลวคือแอพของฉันสำหรับการเปิดการเชื่อมต่อกำลังถูกระงับในการเชื่อมต่อ () โทร

ขอบคุณสำหรับความช่วยเหลือ NickB


คุณโดนขีด จำกัด อะไร? อะไรคือข้อผิดพลาดเมื่อคุณถึงขีด จำกัด นั้น
nos

เชื่อมต่อ () แฮงค์
NickB

1
มีอะไรอยู่ระหว่าง IP ต้นทางและปลายทางของคุณ คุณอาจเติมตาราง NAT ของอุปกรณ์หรือไม่

คำตอบ:


10

นี่คือบล็อกที่มีผู้ได้รับมากกว่า 1,000,000 รายการจากกล่อง

ในส่วนที่ 1 เราตั้งค่าช่วงเป็น "1024 65535" - หมายถึงมี 65535-1024 = 64511 พอร์ตที่ไม่มีสิทธิใช้งาน กระบวนการบางอย่างจะถูกใช้โดยกระบวนการอื่น แต่เราจะไม่ได้รับการเชื่อมต่อกับลูกค้ามากกว่า 64511 ครั้งเพราะเราจะใช้พอร์ตไม่เพียงพอ

...

ดังนั้นเราจึงสร้างที่อยู่ IP ใหม่ 17 แห่งโดยมีจุดประสงค์เพื่อสร้างการเชื่อมต่อ 62,000 ครั้งต่อจาก - ทำให้เรามีจำนวนทั้งหมด 1,054,000 การเชื่อมต่อ


ขอบคุณ! ที่เหมาะกับฉัน โดยเฉพาะการตั้งค่า sysctl จาก metabrew.com/article/… ทำให้ฉันสามารถตั้งค่าการเชื่อมต่อ TCP ได้มากกว่า 65,536 รายการ
NickB

1

โปรโตคอล TCP ใช้เพียง 16 บิตสำหรับทั้งปลายทางและพอร์ตต้นทาง จะไม่มีวิธีใดที่จะมีพอร์ตมากกว่า 65536 พอร์ตเปิดในคราวเดียว - แม้แต่กับ Linux


3
นี่เป็นจริงสำหรับที่อยู่ IP เดียวเท่านั้น หากคุณใช้มากกว่าหนึ่งที่อยู่ IP แต่ละแห่งควรมีพอร์ตเปิด 65536 พอร์ต
งาน

1
ถูกต้องจำเป็นต้องมีพอร์ตในตัวเครื่องสำหรับการเชื่อมต่อขาออกแต่ละครั้ง IIRC พอร์ตใด ๆ ที่ใช้งานอยู่ไม่สามารถใช้สำหรับการเชื่อมต่อเหล่านี้ได้ ตัวอย่างเช่นหากคุณกำลังใช้งาน telnet / ftp / http พอร์ตที่มีหมายเลข 21/23/80 จะไม่สามารถใช้งานได้เช่นพอร์ตท้องถิ่น
KevinDTimm

1
นอกจากนี้คุณยังสามารถเชื่อมต่อกับพอร์ตเดียวกันได้หลายครั้ง
gtrak

@Job - ใช่เนื่องจาก TCP ถูกวางซ้อนบน IP - ฉันพูดถึงที่อยู่ IP เดียวเท่านั้น

4
การเชื่อมต่อแต่ละครั้งจะถูกระบุโดย tuple ประกอบด้วยที่อยู่ระยะไกลและพอร์ตและที่อยู่ในท้องถิ่นและพอร์ต ดังนั้นการเชื่อมต่อขาเข้า> 65536 จากโฮสต์ระยะไกลที่แตกต่างกันจึงเป็นไปได้ > 65536 การเชื่อมต่อขาออกจากอินเทอร์เฟซเดียวบนโฮสต์เป็นไปไม่ได้และคุณจะถูก จำกัด ให้ค่อนข้างน้อยกว่านั้นเพราะจะมีพอร์ตที่ใช้งานอยู่เสมอ
Len Holgate

0

ในบริบทนี้ "อินเทอร์เฟซเดียว" หมายถึงการดูแลเครือข่ายเดียวที่มีที่อยู่ IP เดียวที่กำหนดให้ การเชื่อมต่อ TCP ขาออกแต่ละครั้งถูกผูกไว้กับพอร์ตที่แยกต่างหากดังนั้นตัวอย่างของคุณจึงเป็นไปไม่ได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.