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

ซ็อกเก็ตเป็นโครงสร้างเครือข่ายนามธรรมที่มีด้านการส่งและรับ ในระบบปฏิบัติการที่ทันสมัยที่สุด (OS) มีการแสดงอุปกรณ์และเครื่องมือการเขียนโปรแกรมเพื่อแก้ไขซ็อกเก็ต


7
จะบังคับให้ปิดซ็อกเก็ตได้อย่างไรใน TIME_WAIT
ฉันรันโปรแกรมเฉพาะบน linux ซึ่งบางครั้งก็ขัดข้อง ถ้าคุณเปิดมันอย่างรวดเร็วหลังจากนั้นมันจะฟังบนซ็อกเก็ต 49201 แทนที่จะเป็น 49200 เหมือนครั้งแรกที่มันทำ netstat เปิดเผยว่า 49200 อยู่ในสถานะ TIME_WAIT มีโปรแกรมที่คุณสามารถเรียกใช้เพื่อบังคับให้ซ็อกเก็ตนั้นย้ายออกจากสถานะ TIME_WAIT ทันทีหรือไม่
113 linux  networking  unix  tcp  socket 

7
วิธีการบังคับให้ MySQL เชื่อมต่อโดย TCP แทน Unix socket?
ฉันต้องการวิเคราะห์mysqlปริมาณการใช้งาน ตอนนี้คำขอ mysql ทั้งหมดจะถูกส่งไปยังซ็อกเก็ต MySQL unix: unix 2 [ ACC ] STREAM LISTENING 3734388 15304/mysqld /var/run/mysqld/mysqld.sock ฉันกำลังพยายามปิดใช้งานซ็อกเก็ตนั้นเพื่อบังคับให้ MySQL ใช้ซ็อกเก็ตเครือข่ายแทนบนลูปแบ็ค ฉันพยายามแสดงความคิดเห็นsocketคำสั่งทั้งหมดในmy.cnfและdebian.cnfไฟล์และเริ่ม MySQL ใหม่ แต่ก็ไม่ได้ทำให้แตกต่าง ฉันจะปิดการใช้งานซ็อกเก็ต MySQL ยูนิกซ์เพื่อบังคับให้ MySQL ผ่านเครือข่ายได้อย่างไร ข้อมูลเพิ่มเติม: ผมทำงานเกี่ยวกับMySQL 5.1ubuntu 10.04 ความแม่นยำของคำถาม เนื่องจากมีผู้คนจำนวนมากแนะนำให้เปิดใช้งานซ็อกเก็ตเครือข่ายฉันต้องการชี้แจงคำถามของฉันโดยชี้ให้เห็นว่าที่อยู่ผูกถูกเปิดใช้งานแล้วbind-address = 127.0.0.1และมีการเชื่อมต่อการฟังที่มีอยู่: tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 15601/mysqld ถึงกระนั้นฉันก็ยังไม่เห็นการเชื่อมต่อพยายามที่จะ127.0.0.1:3306มาจาก webapp ของฉัน (เว็บไซต์ Drupal) อัปเดตพร้อมคำตอบ ดูเหมือนว่าปัญหานั้นมาจากmysqliตัวเชื่อมต่อที่ …

6
วิธีค้นหาการเชื่อมต่อซ็อกเก็ตปลายอีกด้าน
ฉันมีกระบวนการ (dbus-daemon) ซึ่งมีการเชื่อมต่อแบบเปิดมากมายผ่านซ็อกเก็ต UNIX หนึ่งในการเชื่อมต่อเหล่านี้คือ fd # 36: =$ ps uw -p 23284 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND depesz 23284 0.0 0.0 24680 1772 ? Ss 15:25 0:00 /bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session =$ ls -l /proc/23284/fd/36 lrwx------ 1 depesz depesz 64 …
44 linux  unix  netstat  socket  dbus 

3
Unix socket เทียบกับโฮสต์ TCP / IP: พอร์ต
มีคนช่วยอธิบายข้อดีข้อเสียของการใช้ไฟล์ซ็อกเก็ต Unix ให้กับฉันได้อย่างไร tcp / ip localhost: พอร์ตเมื่อตั้งค่าบริการบนเซิร์ฟเวอร์ (Ubuntu, FWIW) ในกรณีพิเศษนี้ใช้สำหรับเซิร์ฟเวอร์ Python WSGI (uWSGI) แต่ฉันสนใจโดยทั่วไป (เช่นฉันรู้ว่าคุณสามารถตั้งค่า MySQL ได้ทั้งสองวิธี) ฉันรู้ว่าการใช้ tcp / ip หมายความว่าบริการสามารถสัมผัสกับเครื่องอื่น ๆ ได้ แต่ฉันแค่สนใจว่ามีการแลกเปลี่ยนประสิทธิภาพหรือไม่เมื่อเข้าถึงบริการในพื้นที่ ไชโย
42 linux  unix  tcpip  socket 


5
ต้องการเพิ่มปริมาณงาน nginx ให้กับซ็อกเก็ตยูนิกซ์อัปสตรีม - การปรับแต่งเคอร์เนลลินุกซ์หรือไม่?
ฉันกำลังเรียกใช้เซิร์ฟเวอร์ nginx ที่ทำหน้าที่เป็นพร็อกซีไปยังซ็อกเก็ตอัพสตรีมยูนิกซ์เช่นนี้ upstream app_server { server unix:/tmp/app.sock fail_timeout=0; } server { listen ###.###.###.###; server_name whatever.server; root /web/root; try_files $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } } เซิร์ฟเวอร์แอปบางตัวจะดึงคำขอออก/tmp/app.sockเมื่อพร้อมใช้งาน เซิร์ฟเวอร์แอปที่ใช้งานเฉพาะที่นี่คือยูนิคอร์น แต่ฉันไม่คิดว่าเกี่ยวข้องกับคำถามนี้ ปัญหาคือดูเหมือนว่าผ่านการโหลดจำนวนหนึ่ง nginx ไม่สามารถรับการร้องขอผ่านซ็อกเก็ตในอัตราที่เร็วพอ ไม่ว่าฉันจะติดตั้งแอปเซิร์ฟเวอร์จำนวนเท่าใด ฉันได้รับข้อความเหล่านี้จำนวนมากในบันทึกข้อผิดพลาด nginx: connect() to …

7
ส่งต่อพอร์ตโลคัลหรือไฟล์ซ็อกเก็ตไปยังไฟล์ซ็อกเก็ตระยะไกล
คำถามอย่างรวดเร็ว - ฉันใช้งานกล่องลินุกซ์สองช่องตัวหนึ่งซึ่งเป็นเดสก์ท็อปของฉันและอีก VPS เพื่อเหตุผลด้านความปลอดภัยในส่วน VPS ฉันเลือกใช้การเชื่อมต่อซ็อกเก็ตกับ MySQL ( /var/run/mysqld/mysql.sock) ฉันรู้ว่าฉันสามารถขุดอุโมงค์แบบนี้ได้: ssh -L 3307:127.0.0.1:3306 user@site.comถ้าฉันตั้งค่าเซิร์ฟเวอร์ sql ระยะไกลเพื่อฟังบนพอร์ตบางตัว แต่สิ่งที่ฉันอยากรู้คือฉันสามารถทำอะไรได้บ้าง: ssh -L /path/to/myremotesqlserver.sock:/var/run/mysqld/mysql.sockดังนั้นการขุดอุโมงค์สองซ็อกเก็ตซึ่งต่างจากสองพอร์ต โซลูชันที่ได้รับการยอมรับอย่างสมบูรณ์ก็คือการส่งต่อพอร์ตโลคัลไปยังไฟล์ซ็อกเก็ตระยะไกล แต่ถ้าเป็นไปได้ฉันพยายามไม่ให้เซิร์ฟเวอร์ tcp ทำงานบนกล่องระยะไกล (และใช่ฉันรู้ว่า TCP จะง่ายขึ้น)

4
วิธีการรีสตาร์ทบริการโดยอัตโนมัติเมื่อล้มเหลวใน Linux
บน Windows คุณสามารถกำหนดสิ่งที่ควรเกิดขึ้นหาก / เมื่อบริการล้มเหลว มีวิธีมาตรฐานในการบรรลุสิ่งเดียวกันบน Linux (โดยเฉพาะอย่างยิ่ง CentOS)? ส่วนใหญ่ของคำถามของฉันคือคุณจะจัดการกับซ็อกเก็ตที่เปิดทิ้งไว้ได้อย่างไรตัวอย่างเช่นใน TIME_WAIT, FIN_WAIT1 และอื่น ๆ ในขณะนี้หากบริการที่ฉันกำลังเกิดปัญหาฉันต้องรอซ็อกเก็ตเพื่อล้างหรือเปลี่ยนพอร์ตฟังก่อนที่ฉันจะสามารถรีสตาร์ทด้วยตนเอง ขอบคุณสำหรับความช่วยเหลือของคุณ.
23 linux  service  socket 

6
mysqld.sock ควรประกอบด้วยอะไรทำไมฉันไม่มีมัน
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Server Fault อพยพ 8 ปีที่ผ่านมา ไม่มีใครรู้ว่าทำไม/var/run/mysqld/mysqld.sockไฟล์ซ็อกเก็ตของฉันจะไม่อยู่ในคอมพิวเตอร์ของฉันเมื่อฉันติดตั้ง (หรือติดตั้งใหม่) MySQL 5.1? ตอนนี้เมื่อฉันพยายามเริ่มต้นเซิร์ฟเวอร์ด้วย mysqld ฉันได้รับข้อผิดพลาดเช่นCan't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connectแต่การสร้างไฟล์ว่างเปล่าด้วยชื่อนั้น (ตามที่แนะนำบนฟอรัม Ubuntu) ไม่สำเร็จ ฉันมีทั้ง mysql และ postgres ที่ให้บริการได้ดีจนกระทั่งฉันอัพเกรดเป็น natty เมื่อไม่นานมานี้; ฉันใช้เวลาหลายชั่วโมงในการเดินผ่านฐานข้อมูลทั้งสองพยายามหาว่าเกิดอะไรขึ้น ฉันสามารถละทิ้ง postgres ได้ แต่ฉันไม่สามารถทำงานได้หากไม่มีสำเนา mysql ที่ใช้งานได้ ส่วนที่แปลกที่สุด: ฉันใช้ Kubuntu และความเข้าใจของฉันคือ …

6
ข้อผิดพลาดของเครือข่าย: ไม่มีพื้นที่บัฟเฟอร์
หลังจากใช้งานได้ตามปกติเครื่อง Windows XP SP3 เครื่องหนึ่งของเราจะไม่เปิดการเชื่อมต่อ TCP / IP ใหม่ (!) อีกต่อไป Putty กล่าวว่าNetwork Error: no buffer space availableIE จะไม่เปิดการเชื่อมต่อใหม่ใด ๆ แต่เช่นการแมปไดรฟ์เครือข่ายยังคงทำงานแม้จะสามารถสร้างการเชื่อมต่อใหม่ได้ netstat ไม่แสดงการเชื่อมต่อแบบเปิดที่ปกติปิงและการค้นหา DNS ทำงานได้ดี คำใบ้ใด ๆ

3
ซ็อกเก็ตที่พบโดย lsof แต่ไม่ใช่โดย netstat
ฉันมีแอปพลิเคชั่นที่ไม่มีตัวให้คำอธิบายไฟล์ปรากฏอยู่โดยเปิดซ็อกเก็ต แต่ฉันไม่สามารถหาได้ว่าซ็อกเก็ตเหล่านี้ทำอะไร เหล่านี้ปรากฏในผลลัพธ์ lsof เป็น java 9689 appuser 1010u sock 0,5 263746675 can't identify protocol java 9689 appuser 1011u sock 0,5 263746676 can't identify protocol java 9689 appuser 1012u sock 0,5 263746677 can't identify protocol java 9689 appuser 1014u sock 0,5 263746678 can't identify protocol java 9689 appuser 1015u sock …
19 linux  networking  tcp  udp  socket 

1
เมื่อใดที่จะใช้ซ็อกเก็ต MySQL และเมื่อใดจะใช้โฮสต์: พอร์ต?
แอพพลิเคชั่นหลายตัวอนุญาตให้ฉันเชื่อมต่อกับ Mysql โดยใช้ชื่อผู้ใช้โฮสต์รหัสผ่านและพอร์ต host:portบางคนให้ฉันไปกำหนดค่าซ็อกเก็ตแทน มีประโยชน์อย่างใดอย่างหนึ่งที่ชัดเจนกว่าหนึ่งอื่น ๆ ? ฉันสามารถจินตนาการได้ว่าซ็อกเก็ตใช้งานได้ก็ต่อเมื่อ MySQL อยู่ในเครื่องเดียวกัน เป็นอย่างนั้นเหรอ? และถ้าเป็นเช่นนั้นจะมีประโยชน์มากกว่าการใช้ซ็อกเก็ตที่แทนที่จะเชื่อมต่อกับlocalhost:3306? ฉันไม่คุ้นเคยกับเครือข่ายและซ็อกเก็ตมากเกินไปดังนั้นบางทีฉันอาจพลาดข้อมูลสำคัญบางอย่างไปและคำถามของฉันก็แค่งี่เง่าเท่านั้น ถ้าเป็นเช่นนั้นคุณช่วยอธิบายสิ่งที่ฉันหายไปได้ไหม

3
การแบ่งปันซ็อกเก็ตยูนิกซ์ผ่านทางนักเทียบท่าปริมาณ - สิทธิ์ถูกปฏิเสธ
ฉันพยายามแชร์php5-fpmซ็อกเก็ตของฉันผ่านไดรฟ์ข้อมูลกับnginxเว็บเซิร์ฟเวอร์ของฉัน Fpm และ nginx กำลังทำงานในคอนเทนเนอร์ที่แตกต่างกันและฉันต้องการให้พวกเขาทำงานผ่านไดรฟ์ข้อมูลที่ใช้ร่วมกันที่ฉันวางไฟล์ซ็อกเก็ตจาก fpm 2014/04/13 10:53:35 [crit] 33#0: *1 connect() to unix:/container/fpm/run/php5-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.8.2, server: docker.dev, request: "GET /test.php HTTP/1.1", upstream: "fastcgi://unix:/container/fpm/run/php5-fpm.sock:", host: "docker.dev" ฉันพยายามแล้วตั้งค่าสิทธิ์ 777 และการเปลี่ยนแปลงของกลุ่มที่จะphp5-fpm.socketwww-data Dockerfile ของคอนเทนเนอร์ fpm FROM ubuntu:13.10 RUN apt-get update RUN apt-get upgrade -y RUN …
18 nginx  socket  docker 

4
ฉันจะกำหนดค่าเซิร์ฟเวอร์ HTTP Nginx proxy_pass Node.js ผ่านซ็อกเก็ต UNIX ได้อย่างไร
ฉันกำลังพยายามกำหนดค่าเซิร์ฟเวอร์ Nginx เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Node.js HTTP ผ่านซ็อกเก็ตโดเมน UNIX ไฟล์การกำหนดค่า Nginx: server { listen 80; location / { proxy_pass http://unix:/tmp/app.socket:/; } } (ตามhttp://wiki.nginx.org/HttpProxyModule#proxy_pass ) สคริปต์ Node.js: var http = require('http'); http.createServer(function(req, res) { console.log('received request'); req.end('received request\n'); }).listen('/tmp/app.socket'); ตอนนี้เมื่อฉันพยายามโทร curl http://localhost/ ฉันได้รับหน้าข้อผิดพลาด 502 Bad Gateway เป็นแบบม้วนเท่านั้นและไม่มีสิ่งใดในกระบวนการ Node.js ฉันกำลังทำอะไรผิดหรือเปล่า? แก้ไข: หลังจากลองวิธีแก้ปัญหาของ quanta ความผิดพลาดจะต้องเกี่ยวข้องกับการกำหนดค่า …

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