标签: socket

是否可以使用 shell 命令关闭套接字?

是否可以使用某种 shell 命令/程序来关闭套接字?我已经看到很多使用 C 和其他语言操作套接字的例子,但一直找不到专门用于它的程序。

这主要是出于好奇,而不是任何真正的需要。尽管它可能对我的应用程序进行压力测试或关闭我不想打开的 tcp 套接字很有用。

我主要对 Linux/Unix 感兴趣,但在 Windows 上执行此操作的方法也不错。

networking linux-networking socket

6
推荐指数
1
解决办法
1万
查看次数

拥有负载平衡器是否允许您重用套接字连接?

我有一项服务,服务器将 20kb xml 文件上传到我的服务器。

没有会话,它是单个 POST 请求,仅此而已。每个单独的请求都根据 xml 文件的内容进行身份验证。

由于在负载测试期间服务器耗尽了其套接字池 (32K),因此我必须进行与套接字相关的调整。

无论如何,我想知道当我将负载平衡器带入将在 2 个以上 Web 服务器之间循环请求的等式时,可能会发生什么变化。

负载平衡器可以重用套接字吗?

再次声明,客户端服务器正在将文件发布到我的服务器,一旦文件被 http 发布,它们就 100% 完成。任何后续的 http 帖子都将被视为新的“交易”。

ubuntu load-balancing socket

6
推荐指数
1
解决办法
2129
查看次数

支持 websockets 的 Linux 网络服务器?

我目前在尝试使用socket.io需要来自服务器的 websockets 支持(反向代理)时遇到很多困难。

我想知道,是否还有其他支持 websockets 的 Web 服务器?

我在使用 nginx 时遇到的错误:

2012/05/22 02:19:34 [error] 28159#0: *5 connect() failed (111: Connection refused) while connecting to upstream, 
client: my.ip.ad.dr,
server: localhost,
request: "GET /socket.io/1/?t=1337653158192 HTTP/1.1", 
upstream: "http://127.0.0.1:3000/socket.io/1/?t=1337653158192", 
host: "lifestore.brainpad.org", referrer: "http://mywebad.dr/"
Run Code Online (Sandbox Code Playgroud)

nginx web-server socket

6
推荐指数
1
解决办法
6684
查看次数

我无法以普通用户身份运行 uwsgi

我想以www用户身份运行 uwsgi 服务器,但如果我写:

uwsgi --socket $SOCKET --chmod-socket 666 --pidfile $PIDFILE --daemonize $LOGFILE --chdir $CHDIR --pp $PYTHONPATH --module main --post-buffering 8192 --workers 1 --threads 10 --uid www --gid www
Run Code Online (Sandbox Code Playgroud)

发生套接字创建错误:

日志:

  1 *** Starting uWSGI 1.4.1 (64bit) on [Mon Dec 10 22:15:23 2012] ***
  2 compiled with version: 4.4.5 on 17 November 2012 23:31:14
  3 os: Linux-2.6.32-5-amd64 #1 SMP Sun Sep 23 10:07:46 UTC 2012
  4 nodename: autoblog
  5 machine: x86_64
  6 clock source: unix
  7 pcre jit disabled …
Run Code Online (Sandbox Code Playgroud)

permissions socket uwsgi

6
推荐指数
1
解决办法
9469
查看次数

如何在不停机的情况下部署 WebSocket 应用程序?

在不停机的情况下部署 HTTP 应用程序并不难:HTTP 是无状态的,因此在 2 个 HTTP 应用程序前面使用负载平衡器可以解决这个问题。如果两个应用程序都使用一个公共后端来处理会话,那么一切都会很好。

但是,WebSocket 是一种有状态协议。这意味着如果您关闭应用程序,链接将被切断。

WebSocket 是否无缝处理重新连接,在这种情况下,负载均衡器是否像处理 HTTP 应用程序一样处理这种情况?部署 WebSocket 应用程序时怎么可能不停机?

deployment socket

6
推荐指数
0
解决办法
1512
查看次数

在 Ubuntu 服务器上重新启动后,PHP 5 FPM 套接字文件的目录被删除

我创建了一个目录,用于存储PHP 5 FPM套接字文件:sudo mkdir /var/run/php-fpm。它由root:root核心 PHP FPM 流程拥有。

当 PHP FPM 启动时,它会为此目录中的每个池创建套接字文件,nginx 使用它们进行通信。

但是,当我重新启动我的机器 ( sudo reboot) 时,该目录在重新启动后消失了,并且 PHP FPM 无法启动,因为它无法在丢失的目录中创建套接字文件。

可能是什么问题?我该如何调试?

我正在使用最新的 Ubuntu Server 14.04。

ubuntu php nginx php-fpm socket

6
推荐指数
1
解决办法
4517
查看次数

无法以非 root 用户身份远程重启 systemctl 服务

我有一个systemd.socket名为gunicorn.socket,我想在远程服务器上更新一些代码后重新启动。

我已按照允许非 root 用户重新启动服务中详述的步骤操作systemctl不断询问我的用户密码。这是我尝试systemctl restart gunicorn.socket与 user一起运行时所做的john

# added an appadmin group to allow the restart command to john
addgroup appadmin
usermod -a -G appadmin john
visudo
Run Code Online (Sandbox Code Playgroud)

sudoers

Cmnd_Alias MYAPP_CMNDS = /bin/systemctl start gunicorn.socket, /bin/systemctl stop gunicorn.socket, /bin/systemctl restart gunicorn.socket
%appadmin ALL=(ALL) NOPASSWD: MYAPP_CMNDS
Run Code Online (Sandbox Code Playgroud)

然后sudo systemctl restart gunicorn.socket在服务器上工作正常,但是当我远程尝试时,我得到:

ssh example.com "sudo systemctl restart gunicorn.socket"
Failed to restart gunicorn.socket: Interactive authentication required.
See …
Run Code Online (Sandbox Code Playgroud)

sudo socket gunicorn systemd systemctl

6
推荐指数
1
解决办法
2万
查看次数

如何关闭没有附加进程的端口?

这个问题类似于网络端口打开,但没有附加过程?netstat显示没有 pid 的侦听端口,但 lsof 没有

我尝试了我能做的一切(作为 root:netstat、lsof、ls -al /proc/*/fd 等),但我找不到 pid。

不管怎样,我必须关闭或释放没有 pid 的端口,因为我的进程想要监听它。无论如何都要这样做吗?

我不想重新启动服务器。因为我的系统中有一个进程,它会更新我所有服务器中的bin文件,然后自动部署所有服务器。当监听7123或其他端口时,部署会失败。

谢谢。

更多细节

这种情况有三台服务器,它们都是 Rackspace 的服务器,所有“坏端口”都是 udp 端口​​ 7123。

重新启动可以解决这个问题,我已经在这三台服务器之一上尝试过。但我不想重新启动服务器。

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
udp   213120      0 134.213.205.214:7123        0.0.0.0:*                           -
Run Code Online (Sandbox Code Playgroud)

nmap的结果显示该端口没有关闭。(@Enzo)

root@auto:~# nmap 134.213.205.214 -p 7123 -sU

Starting Nmap 6.40 ( http://nmap.org ) at 2018-04-16 12:01 UTC
Nmap scan report for auto (134.213.205.214)
Host is up.
PORT     STATE         SERVICE
7123/udp open|filtered unknown

Nmap done: 1 IP address …
Run Code Online (Sandbox Code Playgroud)

linux linux-networking socket

6
推荐指数
1
解决办法
1万
查看次数

如何在不使用堆栈跟踪器的情况下检查进程在 linux 中是否非阻塞?

多 CPU 服务器正在运行多个进程。一个进程有一个线程应该始终处于旋转状态,使用它分配的 CPU 的 100%。我当前的方法(除了询问开发人员...)正在strace等待信息到达其打开的文件描述符的进程上使用recvfrom(2)erno并使用where设置为连续检查它,EAGAIN并且方法在没有数据包时返回 -1从网络套接字。

我不习惯堆栈跟踪生产设置,这是一种确定这些信息的笨拙方法。我正在proc(5)探索并认为标志字段的值/proc/[pid]/fdinfo可能有助于检查该进程是否正在使用open(2)以该O_NONBLOCK模式调用的套接字。

我目前正在努力对这个值进行逆向工程。我知道它代表文件状态和文件模式的按位或。所以我想我可以检查源头文件中常量open(2)在那个特定内核上使用的值,然后按位或它们,直到我找到一个与fdinfo. 这看起来很笨拙,如果有人可以验证上述方法(我还不能)或提供更优雅的解决方案,我将非常感激。

我也知道fnctl(2)可以将文件描述符设置为非阻塞状态,但我暂时将其视为打开

linux kernel blocking socket

5
推荐指数
1
解决办法
2863
查看次数

dnsmasq:无法为端口 53 创建侦听套接字:地址已在使用中

完成设置 dnsmasq 时出现此错误。

ashokkrishna@krishna:~$ sudo dnsmasq

dnsmasq: failed to create listening socket for port 53: Address already in use


ashokkrishna@krishna:~$ netstat -lpn | grep :53
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      -               
tcp6       0      0 :::53                   :::*                    LISTEN      -               
tcp6       0      0 :::53755                :::*                    LISTEN      -               
udp        0      0 0.0.0.0:53              0.0.0.0:*                           -               
udp        0      0 0.0.0.0:5353            0.0.0.0:* …
Run Code Online (Sandbox Code Playgroud)

internal-dns socket dnsmasq

5
推荐指数
1
解决办法
3万
查看次数