解决云服务器TCP Server开启后客户端无法连接的方法
最编程
2024-08-12 17:53:35
...
一、问题描述
华为云服务器运行TCPServer后,等待客户端连接,客户端一直无法连接到服务器。经过测试,客户端可以ping通服务器的地址。 客户端网络防火墙已经完全放开。
二、解决办法
1、查看云服务器端的安全组,是否放开该端口。经过查看,已经打开了该端口。
2、查看云服务器的防火墙ufw是否有放开该端口,ubuntu系统自带了ufw防火墙,查看是否有打开防火墙。
查看ufw运行状态 : ufw status
增加ufw 端口 : ufw allow port_x
禁用ufw 端口 : ufw deny port_x
删除ufw 端口 : ufw delete allow port_x
经查看,没有放行该端口:
增加该端口3845:可见已经路由表已经增加了该端口。
上一篇: 学习笔记:Python TCP客户端和服务端开发指南
下一篇: 如何解决SSL握手失败的问题
推荐阅读
-
解决云服务器TCP Server开启后客户端无法连接的方法
-
解决TCP程序客户端无法连接服务器的方法
-
Microsoft 365 新功能 Flash:离线时使用 OneDrive Web 应用程序-作为管理员,您可以使用概述的组策略控制离线模式的各个方面。 为组织中的用户启用此功能后,当用户访问 OneDrive for Web 时,将首次设置离线模式。OneDrive for Web 的用户文件元数据副本会安全地本地存储在用户的设备上。用户设备上的这些数据只能由该用户使用和访问。如果其他人在您的设备上登录,他们将无法使用设备上的本地数据。 用户设备上的安全本地网络服务器将处理用户在 OneDrive for Web 中对其文件执行的操作,如查看、排序、重命名、移动和复制,这些操作传统上需要由 OneDrive 云服务处理。通过消除网络在加载和使用 OneDrive for Web 时的瓶颈,可以快速、流畅地与用户文件进行交互,如加载文件和文件夹、排序、重命名、移动和重命名。即使用户离线、失去互联网连接或服务中断,所有这些操作也将继续运行。 - OneDrive 离线模式允许您在离线状态下通过浏览器、OneDrive PWA(渐进式 Web 应用程序)和 Microsoft Teams 在 OneDrive 上工作,从而提高在各种网络上的性能,并帮助减轻与处理大型文件集相关的限制。 - 目前,安装了 OneDrive Sync 应用程序的 Windows 设备(Windows 10 或更高版本)和 macOS 设备(macOS 12 Monterey 或更高版本)以及基于 Chromium 的浏览器(Microsoft Edge、Google Chrome)都支持 OneDrive 离线模式。 - 默认情况下,OneDrive 将为网络上的用户提供离线模式,用户和管理员都可以选择禁用 OneDrive 的离线模式。 - 脱机模式是针对每台设备的设置(为用户在网络*问 OneDrive 所使用的每台设备单独配置)。 - 数据会安全地存储在用户配置文件目录下的本地数据库中,并通过安全的本地主机 HTTP 服务器处理请求。离线模式由一个单独的后台进程(Microsoft.SharePoint.exe)支持。 - 开启离线模式后,用户将在网络上的 OneDrive 顶部导航栏看到一个新图标。 这将如何影响您的组织
-
[2021亲测有效]彻底解决谷歌地球、谷歌地球启动后无法连接登录服务器、启动后黑屏、无法查看历史影像地图的方法。
-
PC 服务器带外管理批量自动配置-BMC 批量配置的原理如下: A.前提条件:所有服务器的BMC地址在到达时出厂默认设置为DHCP(目前到达服务器的BMC地址均为静态地址,如BMC默认为192.168.2.100。) B、网络物理拓扑图:一台DHCP服务器(只有在执行脚本期间才会开启DHCP服务,平时不会开启,以最大限度控制风险)---- 已连接到待配置BMC服务器的网络(以下简称客户端); C、用户需要操作:提前为服务器BMC规划地址,分配静态IP(手动分配给服务器BMC的静态IP与我们目前的做法保持一致,一方面便于管理,一方面可以有效降低DHCP带来的不可控风险),并将服务SN的序列号与实际分配的静态IP做一个对应,形成ip.txt配置文件并上传到DHCP服务器; D.实现原理(简要步骤):在现有的BMC管理网区新增一台DHCP服务器,并为其预先划分一个IP地址池(初始定位50个),待配置BMC的服务器接入网络后,首先通过DHCP获取IP地址池中的一个临时IP,从而与DHCP服务器建立临时通信,然后DHCP服务器检测到该客户端,DHCP服务器检测到该客户端有静态IP地址后,形成ip.txt 配置文件并上传到 DHCP 服务器。DHCP 服务器检测到客户端后,会主动获取其序列号 SN,并根据该 SN 在用户上传的配置文件(ip.txt)中获取其对应的静态 IP,然后 DHCP 服务器将该静态 IP 配置给客户端(红鱼协议),客户端获取静态 IP 后关闭 DHCP-客户端。客户端获得静态 IP 后,关闭 DHCP 客户端服务,所有客户端配置完成后,DHCP 服务器关闭 DHCP 服务器服务。 这种方法的优点是 最终登陆服务器 BMC 的是一个静态 IP,由用户手动分配,台账易于管理。 只有在执行脚本时,DHCP 服务器才会开启 DHCP 服务,平时则关闭,最大限度地降低了风险。 几种特殊情况及相应的处理逻辑:
-
ssh工作流程及原理-SSH(Secure Shell Protocol,安全的壳程序协议),它可以通过数据包加密技术将等待传输的数据包加密后再传输到网络上。ssh协议本身提供两个服务器功能:一个是类似telnet的远程连接使用shell的服务器;另一个就是类似ftp服务的sftp-server,提供更安全的ftp服务。 连接加密技术简介 目前常见的网络数据包加密技术通常是通过“非对称密钥系统”来处理的。主要通过两把不一样的公钥与私钥来进行加密与解密的过程。 公钥(public key):提供给远程主机进行数据加密的行为,所有人都可获得你的公钥来将数据加密。 私钥(private key):远程主机使用你的公钥加密的数据,在本地端就能够使用私钥来进行解密。私钥只有自己拥有。 SSH工作过程:在整个通讯过程中,为实现SSH的安全连接,服务端与客户端要经历如下五个阶段: 版本号协商阶段 SSH目前包括SSH1和SSH2两个版本,双方通过版本协商确定使用的版本 密钥和算法协商阶段 SSH支持多种加密算法,双方根据本端和对端支持的算法,协商出最终使用的算法 认证阶段 SSH客户端向服务器端发起认证请求,服务器端对客户端进行认证 会话请求阶段 认证通过后,客户端向服务器端发送会话请求 交互会话阶段 会话请求通过后,服务器端和客户端进行信息的交互 一、版本协商阶段 服务器端打开端口22,等待客户端连接; 客户端向服务器端发起TCP初始连接请求,TCP连接建立后,服务器向客户端发送第一个报文,包括版本标志字符串,格式为“SSH-<主协议版本号>.<次协议版本号>.<软件版本号>”,协议版本号由主版本号和次版本号组成,软件版本号主要是为调试使用。 客户端收到报文后,解析该数据包,如果服务器的协议版本号比自己的低,且客户端能支持服务器端的低版本,就使用服务器端的低版本协议号,否则使用自己的协议版本号。 客户端回应服务器一个报文,包含了客户端决定使用的协议版本号。服务器比较客户端发来的版本号,决定是否能同客户端一起工作。如果协商成功,则进入密钥和算法协商阶段,否则服务器断开TCP连接。 说明:上述报文都是采用明文方式传输。 二、密钥和算法协商阶段 服务器端和客户端分别发送算法协商报文给对端,报文中包含自己支持的公钥算法列表、加密算法列表、MAC(Message Authentication Code,消息验证码)算法列表、压缩算法列表等等。 服务器端和客户端根据对端和本端支持的算法列表得出最终使用的算法。 服务器端和客户端利用DH交换(Diffie-Hellman Exchange)算法、主机密钥对等参数,生成会话密钥和会话ID。 由此,服务器端和客户端就取得了相同的会话密钥和会话ID。对于后续传输的数据,两端都会使用会话密钥进行加密和解密,保证了数据传送的安全。在认证阶段,两端会使用会话用于认证过程。 会话密钥的生成: 客户端需要使用适当的客户端程序来请求连接服务器,服务器将服务器的公钥发送给客户端。(服务器的公钥产生过程:服务器每次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host*文件,若系统刚装完,由于没有这些公钥文件,因此sshd会主动去计算出这些需要的公钥文件,同时也会计算出服务器自己所需要的私钥文件。) 服务器生成会话ID,并将会话ID发给客户端。 若客户端第一次连接到此服务器,则会将服务器的公钥数据记录到客户端的用户主目录内的~/.ssh/known_hosts。若是已经记录过该服务器的公钥数据,则客户端会去比对此次接收到的与之前的记录是否有差异。客户端生成会话密钥,并用服务器的公钥加密后,发送给服务器。 ****服务器用自己的私钥将收到的数据解密,获得会话密钥。 服务器和客户端都知道了会话密钥,以后的传输都将被会话密钥加密。 三、认证阶段 SSH提供两种认证方法: 基于口令的认证(password认证):客户端向服务器发出password认证请求,将用户名和密码加密后发送给服务器,服务器将该信息解密后得到用户名和密码的明文,与设备上保存的用户名和密码进行比较,并返回认证成功或失败消息。 基于密钥的认证(publickey认证):客户端产生一对公共密钥,将公钥保存到将要登录的服务器上的那个账号的家目录的.ssh/authorized_keys文件中。认证阶段:客户端首先将公钥传给服务器端。服务器端收到公钥后会与本地该账号家目录下的authorized_keys中的公钥进行对比,如果不相同,则认证失败;否则服务端生成一段随机字符串,并先后用客户端公钥和会话密钥对其加密,发送给客户端。客户端收到后将解密后的随机字符串用会话密钥发送给服务器。如果发回的字符串与服务器端之前生成的一样,则认证通过,否则,认证失败。 注:服务器端对客户端进行认证,如果认证失败,则向客户端发送认证失败消息,其中包含可以再次认证的方法列表。客户端从认证方法列表中选取一种认证方法再次进行认证,该过程反复进行。直到认证成功或者认证次数达到上限,服务器关闭连接为止。实例
-
通过OpenVPN无法建立TCP连接,但可以ping通服务器的问题的解决方法