起因是想在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. docker.sock: connect: permission denied 解决

    问题描述xjun@DESKTOP-L2R4GKN:~$ docker run -it hello-worlddocker: Got permission denied while trying to ...

  2. Knife4j文档请求异常 app.23f8b31d.js:1 SyntaxError: Unexpected token I in JSON at position 6820

    发现代码里example包含了特殊字符[] 去掉[]即可 @ApiModelProperty(value = "状态", example = "INIT, RUNNING ...

  3. Qt编写地图综合应用42-离线轮廓图

    一.前言 离线轮廓图使用起来,就没有在线轮廓图方便了,在线的可以直接传入名称拿到,离线的只能自己绘制了,一般需要用区域轮廓图下载器将你需要的区域下载好对应的js文件,其实就是一堆坐标点集合数组,这些数 ...

  4. Qt开源作品27-鼠标定位十字线

    一.前言 上次有个群友在咨询这个问题,如何用Qt绘制一个鼠标定位的十字线,花了两分钟整了个,最没有含金量的一个demo,就是用drawline绘制了两条线,这个效果在经典的CAD软件中很常用,还有一些 ...

  5. Linux查找JDK的 实际位置

    检查JDK是否安装 java -version 查找java命令的位置 which java 查找列出该链接所指向的原始文件或目录 ls -l /usr/bin/java 查找目录 ls -l /et ...

  6. 手写 PromiseA+ 实现,轻松通过 872 条用例

    手写 Promise/A+ 实现,轻松通过 872 条用例 规范参考:Promise/A+ 规范 - 中文版本 测试工具:https://github.com/promises-aplus/promi ...

  7. 揭秘百度IM消息中台的全量用户消息推送技术改造实践

    本文内容由百度技术团队分享,原题"基于公共信箱的全量消息实现",为了帮助理解,有较多修订.内容重组和重新排版. 1.引言 百度的IM消息中台为百度APP以及厂内百度系产品提供即时通 ...

  8. TagHelper中获取当前Url

    在自定义TagHelper时,我们无法通过TagHelperContext 和 TagHelperOutput 获取到当前路由的信息,我们需要添加注入ViewContext [HtmlAttribut ...

  9. 前端学习openLayers配合vue3(加载矢量图标)

    今天我们来进行矢量图标的加载 关键代码 有一个比较注意的点就是,图片路径必须引入不能直接写路径,我找半天也没发现问题所在 let anchorLayer=new VectorLayer({ sourc ...

  10. 单点登录-CAS原理

    1.首先了解几个概念 1).TGC:Ticket-granting cookie,存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用.2).TGT:ticket grant ...