Windows和Ubuntu间TCP连接测试
起因是想在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连接测试的更多相关文章
- 【NodeJs】Ctrl+C在Linux平台和Windows平台下的TCP连接中的不同表现
Linux平台:CentOS release 6.5 (Final) Windows平台:Windows 7 旗舰版 服务器端代码如下: var net = require('net'); var s ...
- .NET在单台Windows2008下百万TCP连接测试
测试客户端: 客户端程序建立TCP连接,发送一条几个字节的数据. 虚拟机8台,PC机8台,服务器1台. 设置MaxUserPort=60000,有一台机没有设置约在1.5万左右.最后因为差一点到100 ...
- ubuntu系统TCP连接参数优化-TIME_WAIT过多解决办法
状态:描述CLOSED:无连接是活动的或正在进行LISTEN:服务器在等待进入呼叫SYN_RECV:一个连接请求已经到达,等待确认SYN_SENT:应用已经开始,打开一个连接ESTABLISHED:正 ...
- 计算机网络(11)-----TCP连接的建立和释放
TCP连接的建立和释放 概述 TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程,运输连接有三个阶段:连接建立,数据传送和连接释放. TCP连接的建立 如图所示,假定A主机是客户端程序, ...
- 超出TCP连接端口数限制(MaxUserPort)引起的服务器问题
昨天2台Windows Server 2012服务器出现奇怪的问题,自己竟然连不上自己的本机80端口,telnet 127.0.0.1 80也连不上,而更奇怪的是其它服务器可以连接到这2台服务器的80 ...
- TCP 百万并发 数据连接测试 python+locust
过程笔记和总结 尝试一.locust 测试百万Tcp并发 另一种方式是使用jmeter 基础环境 服务端 虚拟机:Centos7.2 jdk 1.8 客户端 虚拟机: Centos7.2 python ...
- 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, ...
- zabbix监控 linux/windows 主机tcp连接状态
更新内容:1).增加了对windows主机的tcp连接状态的监控2).修改linux主机的监控配置,使linux与windwos主机能够使用相同的模板tcp的连接状态对于监控服务器,尤其是Web服务器 ...
- mongodb在Windows安装配置及遇到的问题、java连接测试
一.安装 1.访问mongodb的官网http://www.mongodb.org/downloads下载64bit的包,我下载的是mongodb-win32-x86_64-2008plus-ssl- ...
- Windows 10下怎么远程连接 Ubuntu 16.0.4(小白级教程)
前言: 公司因为用Ruby做开发,所有适用了Ubuntu系统,但是自己笔记本是W10,又不想装双系统,搭建开发环境,便想到倒不如自己远程操控公司电脑,这样在家的时候也可以处理一些问题.故此便有了下面的 ...
随机推荐
- server.error.include-message
使用的thymeleaf模板引擎,默认前端无法获取message和exception 想要在前端获取到message和exception,配置一下配置 server.error.include-exc ...
- Qt/C++音视频开发81-采集本地麦克风/本地摄像头带麦克风/桌面采集和麦克风/本地设备和桌面推流
一.前言 随着直播的兴起,采集本地摄像头和麦克风进行直播推流,也是一个刚需,最简单的做法是直接用ffmpeg命令行采集并推流,这种方式简单粗暴,但是不能实时预览画面,而且不方便加上一些特殊要求.之前就 ...
- Qt编写地图综合应用51-离线瓦片地图下载
一.前言 写这个离线地图下载器的初衷,就是为了方便自己的几个需要离线地图的程序,客户需求,既然地图程序已经可以支持离线地图,那如何获取到这些离线瓦片地图文件是个关键,而且这是这个功能的关键,拿到这些一 ...
- Qt开源作品16-通用无边框拖动拉伸
一.前言 相信各位CS结构开发的程序员,多多少少都遇到过需要美化界面的事情,一般都不会采用系统的标题栏,这样就需要无边框标题栏窗体,默认的话无边框的标题栏都不支持拉伸和拖动的,毕竟去掉了标题栏则意味着 ...
- Qt音视频开发2-vlc回调处理
一.前言 用句柄来显示视频,方便是很方便,但是有个缺点就是不能拿到实时视频的每张图片的数据,这个就比较讨厌,大部分的监控行业的应用,除了截图以外,很可能需要拿到图片自己做一些处理的,而且拿到图片自己绘 ...
- Angular(一) - Typescript&Angular入门熟悉
1. Typescript 1.1 安装typescript 1.2 typescript的小例子 1.2.1 新建一个index.ts 1.2.2 编译ts成js 1.2.3 查看生成的index. ...
- 痛苦调优10小时,我把 Spark 脚本运行时间从15小时缩短到12分钟!
周一我就有个困惑,还写成文章了:如何从 Spark 的 DataFrame 中取出具体某一行,里面提了自己猜想的几种解决方案. 没想到这么快就要面对这个问题了,我用小孩子都听得懂的例子描述一下我在干什 ...
- Apollo功能及原理详解
前言 公司里面使用的配置中心是携程开源的Apollo,之前我只使用过Nacos,遂记录一下学习过程. Apollo工作原理 模块介绍 上图就是Apollo的总体设计,从下往上挨个分析: ConfigD ...
- 修改Maven仓库到国内
修改Maven仓库到国内 Maven home directory:选择已安装的Maven目录. User settings file:根据安装Maven自动显示的配置文件settings.xml路径 ...
- Chrony:让你的服务器时间精准到微秒级的神器!
在现代计算机系统中,时间同步是至关重要的.无论是分布式系统.数据库集群,还是日志记录,时间不一致都可能导致严重的问题.而 Chrony,作为一款高性能的时间同步工具,正在成为越来越多系统管理员的首选. ...