sockets

有没有办法在关机或启动期间关闭服务使用的端口?
sockets

有没有办法在关机或启动期间关闭服务使用的端口?

我有一些服务listen.service,可以让机器充当其他客户端可以连接的 TCP 服务器。问题是,一旦服务启动,它实际上在大约 5 分钟内不会执行任何操作,因为该端口之前已被使用。如果我只是从命令行运行该程序,我可以终止进程 ID,但是我没有/找不到进程 ID。我假设服务没有我可以终止的 PID。我用它来netstat -ap | grep :<portNumber>定位服务使用的开放端口,但没有给出可用的 PID。 因此,需要澄清的是,我的服务是某个程序文件,它将 IP 和端口设置为套接字并充当监听服务器。如果我重新启动计算机,服务将重新启...

Admin

通过 unix 套接字建立 ssh 隧道并使用 ssh 连接它
sockets

通过 unix 套接字建立 ssh 隧道并使用 ssh 连接它

好的,标题可能有点令人困惑,所以这就是我想要实现的目标。 我有多台 A 类型的机器可以连接到服务器 B。所有 A 类型的机器都会有某种 GUID。 我想要实现的是,机器 A 启动到服务器 B 的 SSH 隧道,然后某人可以从他的个人计算机通过服务器 B 连接到 A 类型的机器。 我可以像这样转发端口: ssh -R 3000:localhost:22 server_host -p 58122 但这不太方便,因为我不得不猜测一个未使用的端口。 我宁愿有这样的东西: ssh -R /tmp/nodes/${guid}.sock:localhost...

Admin

仅在输出链上路由?
sockets

仅在输出链上路由?

我有两台机器 A 和 B。我想将 iperf 流量从 A 发送到 B,但首先让它通过 A 上的用户空间程序进行路由。我使用隧道设备完成了此操作:因此,我使用了命令ip route add *B address* dev tun77。 但是,此命令阻止了从 B 到 A 的连接:例如,我无法从 SSH B 到 A。这给我的项目带来了问题,尤其是 TCP 流量。 我以为这ip route只会影响离开机器 A 的数据包。但是,它似乎影响了从 B 到 A 的连接。这是因为传入的数据包正在被路由,还是从 A 到 B 的响应阻止了连接发生(如 SYNACK 消息)?您...

Admin

为什么 listen() (在调用 accept() 之前)足以让应用程序完成三次握手?
sockets

为什么 listen() (在调用 accept() 之前)足以让应用程序完成三次握手?

我正在 Linux 上用 C 调试一个非常基本的 tcp 服务器。我在调用 accept() 的那一行之前停止了执行。令我惊讶的是,当客户端发送 SYN 时,tcpdump 显示服务器以 SYN-ACK 响应(客户端会立即用最终 ACK 回复)。 ss命令确实表明应用程序已经在监听绑定的端口。 我知道我已经调用了 listen(),因此应用程序将监听绑定的端口。但是,按照相同的语义,应该在服务器接受连接之前调用 accept()。 在 listen() 手册页中,它写道(斜体是我的): listen() 将 ...

Admin

HTTP Keepalive 如何处理来自同一来源的多个请求以及 EOF?
sockets

HTTP Keepalive 如何处理来自同一来源的多个请求以及 EOF?

说客户端有多个文件要通过 HTTP Post 方法发布到服务器,将会有两个 api 调用。因为我不想创建两个 TCP 连接,而且我想重用 TCP 连接,所以我对第一个请求使用了 Http keep-alive 标头,现在我只需要在第一个请求时建立一个 TCP 连接来发送多个文件 但是服务器如何区分这两个文件呢?当我们不使用keep alive时,客户端的操作系统会发送EOF标志(文件结束)来指示服务器文件已完成传输 以下是我的假设,不确定是否正确: 现在我们使用 keep-alive,因此服务器上的 EOF 不会关闭连接,因此可以通过同一连接发送第二个文件并...

Admin

为什么在没有 root 权限的情况下使用“lsof”时,我自己的 virtualbox 进程的 TCP 连接会被排除?
sockets

为什么在没有 root 权限的情况下使用“lsof”时,我自己的 virtualbox 进程的 TCP 连接会被排除?

鉴于 virtualboxvm 是我的用户拥有的一个进程,如果我使用,我希望显示 virtualbox 进程的 TCP 连接lsof。 考虑以下示例 - 假设我的用户名是 eddy: $sudo lsof -n -a -i -ueddy` COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ... VirtualBo 25679 eddy 95u IPv4 315623 0t0 TCP 192.168.` ... etc. ... lsof -n -a -i -ueddy...

Admin

主板针脚看起来有点偏离 - 它们坏了吗?
sockets

主板针脚看起来有点偏离 - 它们坏了吗?

我是 PC 新手,了解不多。我知道主板针脚很容易弯曲,但我不知道这些针脚是否弯曲。它们似乎指向正确的方向,但看起来很奇怪。如果我按照现在的插槽方式启动 PC,会发生什么? 主板采用LGA1700插槽。 特写: ...

Admin

为什么FileZilla要启动自己的ssh-agent进程?
sockets

为什么FileZilla要启动自己的ssh-agent进程?

FileZilla 为何会启动自己的 ssh-agent 进程?当我打开终端时,会创建一个带有套接字位置 的 ssh-agent /var/folders/sm/4bt9kz951dg4s5kq1jwy57tc0000gn/T//ssh-nWola5Puaw6o/agent.2855。 当我尝试使用 FileZilla 连接到服务器时,它会在 启动另一个 ssh-agent 实例/private/tmp/com.apple.launchd.YiC62e7kHT/Listeners。 这是正常的吗?看来 FileZilla 无法读取 ssh-agent 中加载...

Admin

BitTorrent 中如何上传?
sockets

BitTorrent 中如何上传?

我正在按照以下方法用 C++ 构建一个 BitTorrent 客户端https://wiki.theory.org/BitTorrentSpecification。 我能够成功从同伴处下载片段。我有几个关于上传的问题。 我知道当我们第一次向跟踪器发出公告时,客户端就会成为跟踪器对等列表的一部分,但是其他对等体如何知道在连接到我的客户端时要连接到哪个端口? 连接到对等点后,我是否必须继续监听对等点?以防它想要请求一些数据或发送其他消息。 我还应该监听与其他想要从我的客户端下载数据的对等点的连接,我的假设正确吗?...

Admin

Windows:如何查找正在监听 Unix 文件套接字的进程?
sockets

Windows:如何查找正在监听 Unix 文件套接字的进程?

我有一个跨平台的 Golang 应用程序,它监听 Unix 文件套接字,如下所示: listener, err := net.Listen("unix", socketFilePath) if err != nil { return err } 当此代码在 Windows(特别是 Win10 22H2)中运行时,有时会失败,因为另一个进程已在监听该套接字: listen unix [my socket path]: bind: Only one usage of each socket address (proto...

Admin

路由表行为与绑定套接字相结合——意外行为
sockets

路由表行为与绑定套接字相结合——意外行为

问题 我遇到了一些相当奇怪的行为,一个看似不相关的默认网关路由产生了意想不到的副作用。我设法用一个最小的示例复制了这个问题。这里的目的主要是教育,我在尝试更复杂的场景时偶然发现了这一点。简而言之,我设法连接到192.168.0.3但我认为我不应该这么做。 我的笔记本电脑使用 WiFi 连接到家庭网络(192.168.0.0/24网络)。路由表如下: kevin@kevin-UX305LA:~$ ip route default via 192.168.0.1 dev wlp2s0 proto dhcp metric 600 169.254.0.0/16 d...

Admin

无法再在 Vagrant box 中运行最新版本的 Node.js
sockets

无法再在 Vagrant box 中运行最新版本的 Node.js

我喜欢在 Vagrant 虚拟机中进行开发工作以保持干净的环境。 最近将 Node.js 更新到 v18.18.0 后,我突然无法npm在客户机中运行命令不再: npm start: npm ERR! code ENOTSUP npm ERR! syscall read npm ERR! errno -95 npm ERR! Could not read package.json: Error: ENOTSUP: operation not supported on socket, read npm ERR! A complete log of this ...

Admin

将 PulseAudio 接收器数据重定向到另一个(python)进程的最佳方法是什么
sockets

将 PulseAudio 接收器数据重定向到另一个(python)进程的最佳方法是什么

我的目标是将某个应用程序和麦克风的实时音频数据发送到另一个进程 (python) 进行处理 (DSP、实时转录等)。我能够使用 PulseAudio CLI 创建 PulseAudio 接收器,当 bash 脚本终止时,它会合并流并将音频数据写入文件。 现在,我想实时将音频数据传送到 Python 处理代码。使用 PulseAudio CLI 可以实现吗?我想使用现成的线程机制和现有套接字进行数据传输。我考虑将 PulseAdudio 接收器数据重定向到 Unix 域套接字,并在另一端使用 Python 监听它。 非常感谢对我的想法和其他可能的实现想法/代码...

Admin

根用户的 SSH 远程转发失败
sockets

根用户的 SSH 远程转发失败

rmate我在我的(本地)文件中使用以下配置为 Sublime () 进行远程转发.ssh/config: Host host User user Hostname hostname RemoteForward /home/user/.rmate.socket localhost:52698 这对于非 root 用户也能成功运行: debug1: Remote connections from /home/user/.rmate.socket:-2 forwarded to local address localhost:52698 ... debug1:...

Admin