起因是想在Ubuntu上用Synergy,但是发现爱你怎么都连不上。鼓捣了半天发现似乎Ubuntu监听,Windows测试TCP连接总是不成功,反之却能成功,大概问题就在这,尚未解决先记录一下。

基本情况

两台机子,一台运行Ubuntu22.04,一台运行Windows10。机器间用一根网线直连,Ubuntu端手动配192.168.1.1/24地址,另一边配192.168.1.2/24。

  • 两者之间能ping通
  • 可以保证Ubuntu侧防火墙没开,iptables也是空;几乎能确定Windows侧防火墙正常
  • 之前两台机器都运行Windows10时,Synergy可以正常使用,说明原本Windows上24800端口能正常建立tcp连接

Windows服务端 ← Ubuntu客户端

Windows侧Powershell运行脚本等待连接

$listener = [System.Net.Sockets.TcpListener]::new([System.Net.IPAddress]::Any, 24800)
$listener.Start()
Write-Host "Listening on port 24800..."
$client = $listener.AcceptTcpClient()
Write-Host "Connection received!"
$stream = $client.GetStream()
$reader = New-Object System.IO.StreamReader($stream)
while ($client.Connected) {
$data = $reader.ReadLine()
if ($data) {
Write-Host "Received: $data"
}
}
$client.Close()
$listener.Stop()

Ubuntu端用ncat发送请求

nc 192.168.1.2 24800

正常建立连接,终端中传什么windows侧都能输出

Ubuntu服务端 ← Windows客户端

Ubuntu侧用ncat监听端口

nc -l 24800

此时检查nc的运行情况均无异常,检查行为如下:

  • 此时执行 ss -tlnp | grep 24800 检查端口情况,得到反馈LISTEN 0 1 0.0.0.0:24800 0.0.0.0:* users:(("nc",pid=30444,fd=3)),证明nc有在好好监听0.0.0.0的24800端口
  • 此时运行 nc 127.0.0.1 24800 尝试自己连自己,发现确实可以正确连接并传输数据,证明nc可以正确监听并建立连接

然而Windows侧Test-NetConnection或用脚本尝试建立连接却不能成功

Test-NetConnection 192.168.1.1 -Port 24800

尝试此过程中在Ubuntu侧用tcpdump抓包,发现确实有SYN报文传入,应该是Ubuntu侧没有给出回应;大概问题就出在Ubuntu的某些配置上了

sudo tcpdump -i any port 24800 -nn

## 有监听到内容
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
23:13:52.328526 enp38s0 In IP 192.168.1.2.6786 > 192.168.1.1.24800: Flags [S], seq 4189060361, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 1190883235 ecr 0], length 0
23:13:53.338401 enp38s0 In IP 192.168.1.2.6786 > 192.168.1.1.24800: Flags [S], seq 4189060361, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 1190884245 ecr 0], length 0
23:13:55.349621 enp38s0 In IP 192.168.1.2.6786 > 192.168.1.1.24800: Flags [S], seq 4189060361, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 1190886256 ecr 0], length 0
23:13:59.358816 enp38s0 In IP 192.168.1.2.6786 > 192.168.1.1.24800: Flags [S], seq 4189060361, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 1190890265 ecr 0], length 0
23:14:07.373485 enp38s0 In IP 192.168.1.2.6786 > 192.168.1.1.24800: Flags [S], seq 4189060361, win 64240, options [mss 1460,nop,wscale 8,sackOK,TS val 1190898280 ecr 0], length 0
^C
5 packets captured
5 packets received by filter
0 packets dropped by kernel

Windows和Ubuntu间TCP连接测试的更多相关文章

  1. 【NodeJs】Ctrl+C在Linux平台和Windows平台下的TCP连接中的不同表现

    Linux平台:CentOS release 6.5 (Final) Windows平台:Windows 7 旗舰版 服务器端代码如下: var net = require('net'); var s ...

  2. .NET在单台Windows2008下百万TCP连接测试

    测试客户端: 客户端程序建立TCP连接,发送一条几个字节的数据. 虚拟机8台,PC机8台,服务器1台. 设置MaxUserPort=60000,有一台机没有设置约在1.5万左右.最后因为差一点到100 ...

  3. ubuntu系统TCP连接参数优化-TIME_WAIT过多解决办法

    状态:描述CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正 ...

  4. 计算机网络(11)-----TCP连接的建立和释放

    TCP连接的建立和释放 概述 TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程,运输连接有三个阶段:连接建立,数据传送和连接释放. TCP连接的建立 如图所示,假定A主机是客户端程序, ...

  5. 超出TCP连接端口数限制(MaxUserPort)引起的服务器问题

    昨天2台Windows Server 2012服务器出现奇怪的问题,自己竟然连不上自己的本机80端口,telnet 127.0.0.1 80也连不上,而更奇怪的是其它服务器可以连接到这2台服务器的80 ...

  6. TCP 百万并发 数据连接测试 python+locust

    过程笔记和总结 尝试一.locust 测试百万Tcp并发 另一种方式是使用jmeter 基础环境 服务端 虚拟机:Centos7.2 jdk 1.8 客户端 虚拟机: Centos7.2 python ...

  7. remote desktop connect btw Mac, Windows, Linux(Ubuntu) Mac,Windows,Linux之间的远程桌面连接

    目录 I. 预备 II. Mac连接Windows III. Windows连接Mac IV. Windows连接Ubuntu V. Mac连接Ubuntu VI. Ubuntu连接Mac VII, ...

  8. zabbix监控 linux/windows 主机tcp连接状态

    更新内容:1).增加了对windows主机的tcp连接状态的监控2).修改linux主机的监控配置,使linux与windwos主机能够使用相同的模板tcp的连接状态对于监控服务器,尤其是Web服务器 ...

  9. mongodb在Windows安装配置及遇到的问题、java连接测试

    一.安装 1.访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl- ...

  10. Windows 10下怎么远程连接 Ubuntu 16.0.4(小白级教程)

    前言: 公司因为用Ruby做开发,所有适用了Ubuntu系统,但是自己笔记本是W10,又不想装双系统,搭建开发环境,便想到倒不如自己远程操控公司电脑,这样在家的时候也可以处理一些问题.故此便有了下面的 ...

随机推荐

  1. Qt编写的项目作品33-斗图神器(雨田哥作品)

    一.功能特点 支持HTTP,HTTPS网络表情图片下载,本地缓存. 采用MV模式,支持大量图片表情预览查看. 采用多线程异步下载图片刷新. 图片搜索功能(因网络提供API无信息字段提供,占搜索不了.但 ...

  2. vue3 路由的使用

    添加一个router.js 配置文件 import { createRouter, createWebHistory } from 'vue-router' createRouter:用来创建 路由 ...

  3. CH32V203F6P6-TSSOP20测试之02---点灯成功

    一.问题思考 直接用官方提供的例程,为何下载程序后没有什么响应,难道自己设计的电路有什么不妥? 于是,对于电路进行具体分析,结果发现: 第一.官方的BOOT0采用杜邦线连接,在芯片手册好像找不到关于B ...

  4. nvm的安装与使用,多个node版本同时使用

    nvm的介绍 nvm全英文也叫node.js version management,是一个nodejs的版本管理工具.nvm和npm都是node.js版本管理工具,为了解决node.js各种版本存在不 ...

  5. Solution Set -「NOIP Simu.」20221111

    \(\mathscr{A}\sim\) 遗忘十字路   Cover:「CF 1746D」Paths on the Tree.   Tag:「C.性质/结论」   最原始的思路自然是 DP. 令 \(f ...

  6. spring事务配置的5种方式

    事务配置其实把思路理清,还是很容易的. spring的配置文件中关于事务配置总是由三个部分组成:分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一 ...

  7. RocketMQ -- offset管理

    正文首先来明确一下 Offset 的含义, RocketMQ 中, 一 种类型的消息会放到 一 个 Topic 里,为了能够并行, 一般一个 Topic 会有多个 Message Queue (也可以 ...

  8. 【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算

    学习&转载文章:[隐私计算笔谈]MPC系列专题(十):安全多方计算下的集合运算 集合运算 集合可以通俗地描述为确定的一堆东西.如有一个集合\(\),一个元素\(\)要么属于集合\(\),记做\ ...

  9. docker中创建容器时文件挂载和端口映射命令与首次登录官方mysql的参数

    docker run -itd --name nginx-08 -v /local_data2:/data/nginx/html -p 12000:80  nginx:1.18.0 docker ru ...

  10. uni-app发布体验版本后授权登录很卡

    今天uni-app发布了一个体验版本, 但是我发现扫码登录后: 非常的卡顿在授权登录的时候: 但是在我的模拟器开发的时候, 是非常的流畅的. 没有一点儿的卡顿: 在真机上预览的时候也是非常的流畅的: ...