คำถามติดแท็ก tcp

Transport Control Protocol (TCP) เป็นส่วนต่ำของโปรโตคอลสแต็กที่ใช้โดยอินเทอร์เน็ต มันตั้งอยู่เหนือ IP เลเยอร์โดยตรงและมีหน้าที่รับผิดชอบในการทำให้แน่ใจว่าแพ็กเก็ตที่ถูกทิ้งนั้นส่งใหม่

5
การพิจารณาว่ากระบวนการใดถูกผูกไว้กับพอร์ต
ฉันรู้ว่าใช้คำสั่ง: lsof -i TCP (หรือตัวแปรบางตัวที่มี lsof) ฉันสามารถพิจารณาว่ากระบวนการใดที่ถูกผูกไว้กับพอร์ตเฉพาะ สิ่งนี้มีประโยชน์บอกถ้าฉันพยายามเริ่มต้นสิ่งที่ต้องการผูกกับ 8080 และบางคนกำลังใช้พอร์ตนั้นอยู่แล้ว แต่ฉันไม่รู้ว่าอะไร มีวิธีง่าย ๆ โดยไม่ใช้ lsof หรือไม่ ฉันใช้เวลาในการทำงานกับหลาย ๆ ระบบและมักจะไม่ได้ติดตั้ง
90 networking  process  tcp  lsof 

2
tcp-keepalive ทำงานอย่างไรใน ssh
ฉันพยายามรหัสเชลล์สคริปต์ที่ใช้การเชื่อมต่อ ssh สำหรับทำ "heartbeats" ฉันต้องการยุติฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์ของการเชื่อมต่อหลังจากหมดเวลาที่แน่นอน (หลังจากการเชื่อมต่อลดลง) สิ่งที่ฉันพบ: TCPKeepAliveใช่ / ไม่ใช่สำหรับsshและsshd ClientAliveCountMaxสำหรับsshd ClientAliveIntervalสำหรับsshd ServerAliveCountMaxสำหรับssh ServerAliveIntervalสำหรับssh ในการเปลี่ยน "ClientAliveCountMax" ฉันจะต้องแก้ไข sshd_config บนเครื่องเป้าหมายแต่ละเครื่อง (ตัวเลือกนี้ถูกปิดใช้งานตามค่าเริ่มต้น) ดังนั้นคำถามของฉันคือ - ฉันสามารถใช้ "TCPKeepAlive" เพื่อจุดประสงค์ของฉันได้เช่นกัน (โดยไม่เปลี่ยนแปลงสิ่งอื่นบนเครื่องต้นทาง / ปลายทาง)? ระบบปฏิบัติการเป้าหมายคือ SLES11 SP2 - แต่ฉันไม่คิดว่าจะเกี่ยวข้องกับที่นี่
84 ssh  tcp  sshd  cluster 

8
วิธีง่ายๆในการสร้างอุโมงค์จากพอร์ตท้องถิ่นหนึ่งไปยังอีก?
ฉันมีเซิร์ฟเวอร์การพัฒนาซึ่งสามารถเข้าถึงได้จาก 127.0.0.1:8000 ไม่ใช่ 192.168.1.x: 8000 ในฐานะที่เป็นแฮ็คที่รวดเร็วมีวิธีตั้งค่าบางอย่างให้ฟังบนพอร์ตอื่น (เช่น 8001) เพื่อให้จากเครือข่ายท้องถิ่นฉันสามารถเชื่อมต่อ 192.168.1.x: 8001 และจะสร้างการรับส่งข้อมูลระหว่างไคลเอ็นต์และ 127.0 .0.1: 8000?


3
เป็นไปได้หรือไม่ที่จะเชื่อมต่อกับพอร์ต TCP 0
การฟังพอร์ต TCP 0 จัดสรรหมายเลขพอร์ตฟรีให้ฉันบนระบบ แต่จะเกิดอะไรขึ้นเมื่อฉันพยายามเชื่อมต่อกับพอร์ต TCP 0 คำตอบที่ชัดเจนคือ: "มันไม่ทำงาน": $ nc localhost 0 nc: port number too small: 0 ระบบนี้จัดการกับที่ใดบ้าง? ในสแต็ก TCP ของเคอร์เนลระบบปฏิบัติการ มี Unixes ที่เชื่อมต่อกับพอร์ต TCP 0 จะทำงานได้อย่างไร
59 networking  tcp 

4
วิธีการเชื่อมต่อ ssh 'กับ' พอร์ตที่ระบุ?
ฉันรู้วิธีการเชื่อมต่อ 'กับ' พอร์ตที่แน่นอนเมื่อกำลังทำ ssh user@remotehostip -p XXX แต่มีวิธีการสร้าง ssh 'กับ' พอร์ตที่แน่นอนหรือไม่ ฉันหมายถึงมีวิธีระบุพอร์ตที่คอมพิวเตอร์ในพื้นที่ของฉันจะใช้หรือไม่
56 ssh  tcp  openssh 

1
ทำไม 1024 พอร์ตแรกที่ จำกัด เฉพาะผู้ใช้รูทเท่านั้น?
นี่เป็นความอยากรู้ที่ไม่ได้ใช้งานมากกว่าสิ่งอื่นใด เพื่อนของฉันคนหนึ่งถามฉันว่า 'ช่วงพอร์ตใดที่รูทเดียวที่สามารถใช้งานได้ใน Linux' ฉันบอกเขาว่า 0-1024 ถูก จำกัด จากนั้นเขาก็ถามฉันว่าทำไมมันถึงเป็นเช่นนั้นและ ... ฉันตกอยู่ในความสูญเสีย ไม่มีความคิดใด ๆ มีเหตุผลว่าทำไมพอร์ตเหล่านี้ถูก จำกัด และ 1025-65535 ไม่? บริการเครือข่ายที่สำคัญที่สุด (HTTP, FTP, SSH, Telnet, HTTPS, POP, SMTP, ฯลฯ ) อยู่ในช่วงนี้ดังนั้นคำตอบที่เป็นไปได้ฉันคิดว่า: ผู้ใช้ที่ไม่น่าเชื่อถือสามารถเรียกใช้โปรแกรมที่ฟังพอร์ตเหล่านี้เพื่อดูรายละเอียดการเข้าสู่ระบบ ผู้ใช้ที่ไม่น่าเชื่อถือสามารถเรียกใช้แอปพลิเคชันเซิร์ฟเวอร์ที่ไม่ได้รับอนุญาต ทุกคนสามารถหลั่งน้ำตาแสงที่นี่?

4
TCP สามารถให้มากกว่า 65535 พอร์ตได้หรือไม่
เป็นไปได้ไหมที่จะติดตั้งระบบ Linux เพื่อให้มีพอร์ตมากกว่า 65,535 พอร์ต? เจตนาจะให้ daemons มากกว่า 65k ฟังในระบบที่กำหนด เห็นได้ชัดว่ามีการใช้พอร์ตดังนั้นจึงเป็นไปไม่ได้ด้วยเหตุผลเหล่านี้ดังนั้นให้คิดว่านี่เป็นแบบฝึกหัดเชิงทฤษฎีในการพยายามทำความเข้าใจว่า TCP จะมีข้อ จำกัด ในการทำสิ่งนี้อย่างไร
50 linux  networking  ip  tcp  ipv4 

5
ฆ่าการเชื่อมต่อ tcp ใน linux
ฉันมีการเชื่อมต่อที่ตายแล้วในแอปพลิเคชั่นเดียวซึ่งอยู่ในสภาพแขวนคอถ้าไคลเอ็นต์เครื่องตาย ->192.168.1.214:49029 (ESTABLISHED) มีวิธีการยกเลิกตัวเลือกเหล่านี้จากบรรทัดคำสั่ง linux โดยไม่ต้องรีสตาร์ทเซิร์ฟเวอร์หรือไม่ หลังจากค้นหาฉันพบวิธีแก้ปัญหาที่เรียกว่าเป็น tcpkill แต่มันจะไม่ทำงานสำหรับฉัน เนื่องจากเป็นการบล็อกไอพีอย่างถาวร
49 tcp 

2
ประสิทธิภาพของ unix sockets เทียบกับพอร์ต TCP
ตัวอย่างเช่นใน php-fpm: #listen = 127.0.0.1:9000 listen = /var/run/php-fpm/php-fpm.sock มีความแตกต่างด้านประสิทธิภาพที่สำคัญระหว่างการใช้ unix socket-based Listeners ผ่านพอร์ต TCP หรือไม่? (ไม่ใช่เฉพาะสำหรับ PHP แต่โดยทั่วไปแล้วมันแตกต่างกันไปในแต่ละบริการหรือไม่)

1
การเชื่อมต่อกับ IP 0.0.0.0 สำเร็จ อย่างไร? ทำไม?
เราให้บริการพอร์ตบนโลคัลโฮสต์และต้องการเช็คอินกระบวนการอื่นหากพอร์ตพร้อมใช้งาน เนื่องจากข้อผิดพลาดในรหัสของเราเป็นจริงพยายามเชื่อมต่อกับ IP 0.0.0.0:<port>และด้วยเหตุผลบางอย่างมันประสบความสำเร็จ - เป็น strace พิสูจน์: [...] connect(3, {sa_family=AF_INET, sin_port=htons(10002), sin_addr=inet_addr("0.0.0.0")}, 16) = 0 [...] มันหมายความว่าอะไร? ทำไมมันทำงาน
41 networking  tcp  strace 

2
วิธีตรวจสอบ rx ring, max_backlog และขนาด max_syn_backlog
บ่อยครั้งในการแก้ไขปัญหาและปรับแต่งสิ่งที่ฉันคิดว่าตัวเองคิดเกี่ยวกับการตั้งค่าเคอร์เนล Linux ต่อไปนี้: net.core.netdev_max_backlog net.ipv4.tcp_max_syn_backlog net.core.somaxconn อื่น ๆ กว่าfs.file-max, net.ipv4.ip_local_port_range, net.core.rmem_max, net.core.wmem_max, net.ipv4.tcp_rmemและnet.ipv4.tcp_wmemพวกเขาน่าจะเป็นลูกบิดสิ่งสำคัญที่จะยุ่งกับเมื่อคุณได้รับการปรับจูนกล่องสำหรับระดับสูงของการเห็นพ้อง คำถามของฉัน: ฉันจะตรวจสอบเพื่อดูว่ามีรายการกี่รายการในแต่ละคิวเหล่านั้นได้อย่างไร โดยทั่วไปแล้วคนมักจะตั้งค่าให้พวกเขาสูง แต่ฉันต้องการที่จะเข้าสู่ระบบขนาดคิวเหล่านั้นเพื่อช่วยทำนายความล้มเหลวในอนาคตและจับปัญหาก่อนที่พวกเขาจะปรากฏในทางที่ผู้ใช้เห็นได้ชัด
41 linux  kernel  networking  tcp 

5
จะสร้างฟัง TCP ได้อย่างไร?
เกริ่นนำ:ฉันได้สร้างฟังก์ชั่นทุบตีที่สามารถตรวจสอบได้ว่าพอร์ตนั้นสามารถใช้งานได้หรือไม่และเพิ่มขึ้นทีละ 1 ถ้าเป็นเท็จจนกว่าจะถึงหมายเลขพอร์ตสูงสุดที่แน่นอน เช่นถ้าพอร์ต 500 ใช้งานไม่ได้จะมีการตรวจสอบความพร้อมของ 501 จนถึง 550 จุดมุ่งหมาย:เพื่อทดสอบฟังก์ชั่นทุบตีนี้ฉันจำเป็นต้องสร้างช่วงของพอร์ตที่อยู่ในสถานะ LISTEN ความพยายาม:ใน Windows สามารถสร้างพอร์ต LISTEN โดยใช้คำสั่ง PowerShell เหล่านี้ : PS C:\Users\u> netstat -nat | grep 1234 PS C:\Users\u> $listener = [System.Net.Sockets.TcpListener]1234 PS C:\Users\u> $listener.Start(); PS C:\Users\u> netstat -nat | grep 1234 TCP 0.0.0.0:1234 0.0.0.0:0 LISTENING InHost PS C:\Users\u> $listener.Stop(); PS …
40 shell  networking  tcp 

5
จะปิดพอร์ตใน Linux ได้อย่างไร
ฉันมีคำถามบางอย่างในการปิดพอร์ตฉันคิดว่าฉันได้สิ่งแปลก ๆ เมื่อฉันใช้รัน nmap --top-ports 10 192.168.1.1 แสดงว่าพอร์ต 23 / TCP เปิดอยู่ แต่เมื่อฉันรัน nmap --top-ports 10 localhost มันแสดงให้เห็นว่าพอร์ต 23 / tcp ถูกปิด ข้อใดต่อไปนี้เป็นจริง ฉันต้องการปิดพอร์ตนี้ในทั้งระบบของฉันฉันจะทำอย่างไร
38 tcp  nmap 

1
มันจะดีกว่าถ้าตั้งค่า -j REJECT หรือ -j DROP ใน iptables?
มีตัวอย่างของกฎ iptables ใน archlinux wiki: # Generated by iptables-save v1.4.18 on Sun Mar 17 14:21:12 2013 *filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT ACCEPT [0:0] :TCP - [0:0] :UDP - [0:0] -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack …
33 iptables  ip  firewall  tcp  udp 

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