Articles of tcp

防火墙:入站规则已经存在,是否需要入站?

我开发了一个MVC Web应用程序,它具有Web API并托pipe在Amazon Instance中,一个Windows应用程序用于调用这些API以获取来自该服务器的响应。 Web和Windows应用程序都是使用c#语言在asp.net framework 4.5中开发的。 Windows应用程序安装在more than 200 client's系统中,它们是自我保护的高度安全的服务器,所有入站端口都在防火墙中被阻止。 我正在使用HttpWebRequest和BindIPEndPoint使用configuration的TCP端口范围调用Web API [default 7777-7786] 。 如果有“允许入站和出站”防火墙规则,API调用可以在Windows应用程序中正常工作。 但问题是,客户端不允许我任何入站防火墙规则,他们只允许这些端口范围的出站防火墙规则和Windows应用程序不处理阻止这些端口范围的入站规则。 是否必须打开防火墙中的入站规则,以便调用/从API获取请求/响应的端口范围? 如果不需要入站防火墙规则,那么请解释为什么? 下面是我的Windows应用程序中使用一个静态TCP端口的API调用 : try { string address = RevWatchURL; address = address + "api/GetRevGuardLatestPatch"; HttpWebRequest httpWebRequest = WebRequest.Create(address) as HttpWebRequest; httpWebRequest.ContentType = "text/json"; httpWebRequest.Method = "POST"; httpWebRequest.Timeout = 300000; httpWebRequest.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(CommonValues.BindIPEndPointCallbackRGPatch); string enRevGuardUniqueId = […]

Ubuntu 16.04服务器正在监听,但不接受传入的请求

我最近把我的服务器从Ubuntu 14.04升级到了16.04。 升级似乎成功(所以我不知道是否相关),但在重新启动主机一个星期左右,它现在不会接受远程请求。 我可以连接到terminal使用我的托pipe服务提供商的控制台访问,但我不能远程SSH进入机器。 一旦在机器上,我可以ping myhost.com成功,但我不能从远程位置ping机器。 Request timed out请求从我的开发机器请求。 我之前尝试加载之前的快照从我升级我的操作系统,我可以ping机器成功。 我已经尝试了/var/log/auth.log但是当我尝试远程访问时,日志没有更新。 我不知道下一步要尝试找出为什么我的服务器没有响应。 编辑 运行iptables -nvL导致: modprobe: FATAL: Module ip_tables not found in directory /lib/modules/4.4.0-28-generic iptables v1.6.0: can't initialize iptables table `filter': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded.

平的作品,但TCP没有一点不寻常的拓扑结构

我首先会说我没有从头开始devise这个networking,所以拓扑对我来说也是一个惊喜。 有两个子网(一个是我们的公司,一个是我们的客户端),它们位于同一个物理位置,因此networking被VLAN隔开。 但是,除此之外,我们和我们的客户都有不同的防火墙,所以我们有一个额外的虚拟路由器(VyOS),它充当我们networking之间的桥梁。 VyOS路由器有两个接口(eth0和eth1)。 我能ping通两个networking,但如果我尝试去我们的客户端networking服务器在他们的子网连接失败。 特别有趣的是,当我手动设置我的网关指向192.168.5.34(VyOS),而不是我们的网关在192.168.5.1连接工作,所以一定有东西在防火墙失败,当它必须redirect的stream量从它来自的相同的接口出来。 另外,如果我configuration源NAT,它也可以。 这是关于networking的信息: 我们的子网:192.168.5.0/24防火墙:192.168.5.1 VyOS eth1:192.168.5.34 客户端子网:192.168.1.0/24防火墙:192.168.1.1 VyOS eth0:192.168.1.34 编辑:这是当我尝试通过HTTP连接到Web服务器时,stream量采取的路线 192.168.5.172 – > 192.168.5.1 – > 192.168.5.34 – > 192.168.1.28 | 192.168.1.28 – > 192.168.1.1(似乎这里的连接失败,在我们的Juniper防火墙上)

为什么openssl只能使用内部IP?

我想debugging一个SSL连接,所以我跟着这个问题的答案,并想运行第一个testing: # openssl s_client -connect SERVER_IP:PORT -state -debug 并得到以下输出: socket: Connection refused connect:errno=111 我查了一下,发现它与SSL无关,这意味着服务器没有运行,或者端口被防火墙阻塞。 我login到服务器,并检查,实际上它正在运行,并且端口是开放的监听所有的IP地址: # netstat -plan | grep PORT tcp 0 0 0.0.0.0:PORT 0.0.0.0:* LISTEN PID/java 下面是有趣的部分:当我使用我的服务器的内部IP来运行上面的openssl命令时,我得到了预期的输出。 无论我尝试从客户端还是从服务器本身连接到服务器,行为都是相同的。 我添加了端口到iptables。 以下是他们现在的样子: # iptables -L -v | grep PORT 40 4252 ACCEPT tcp — any any anywhere anywhere tcp dpt:PORT 0 0 ACCEPT tcp — […]

TCP:地址已经在使用exception – 客户端端口的可能原因? 无端口耗尽

愚蠢的问题。 我从客户端连接到服务器。 不幸的是,这个设置很复杂,使得debugging变得复杂 – 而且我们没有足够的选项。 环境:*客户机/服务器系统,都运行在同一台机器上。 客户端实际上是一个在特定时间执行一些数据库操作的服务。 * cnonection来自C#通过OleDb到一个EasySoft JDBC驱动程序到一个自定义的书面JDBC服务器,然后承载C ++的逻辑。 是的,但是第三方供应商决定通过JDBC接口为他们的服务器提供扩展机制。 这里可以做的不多;) 症状:在(ir)的定期间隔,我们得到一个JDBC驱动程序告诉的“Address already in use:connect”。 他们似乎来自我们运行的一个特定的服务。 现在,我读了所有关于端口耗尽的东西。 这就是为什么我们现在运行一个小工具,每分钟计算一次端口和状态。 上次发生这种情况的时候,我们有370个端口正在使用,在错误发生之后,端口数量上升到大约900个。 我们已经修改了registry(这是一个Windows机器),以允许超过5000个客户端端口标准,但即使如此,我们还远远没有开始的限制。 这就是为什么我在这里问。 Ayneone和ELSE可能导致这种情况? 它是一个Windows 2003 Server机器,64位。 我唯一能看到的其他东西可能会导致它(但是这种function被认为是禁用的)是安装在服务器上的Symantec Endpoint Protection,并且能够充当防火墙,它可能会拦截networkingstream量。 我不想通过过早地指向赛门铁克来打开一堆蠕虫(如果指向赛门铁克可以被看作是这样的话)。 那么,任何人的想法还有什么可能是原因? 谢谢

地址已经在使用错误

当你启动一个程序来侦听一个TCP套接字,然后杀掉这个程序,有时(但不是总是),当你尝试在接下来的几分钟里再次侦听套接字时,你会得到一个像“地址已经被使用”的错误。 proc用ctrl-c杀死。 我使用Linux。 我认为这与TCP连接被锁在CLOSE_WAIT状态有关,但并非100%确定。 为什么我得到“地址已被使用”错误? 另外,为什么只有时有发生?

确定在Windows XP / 2003中保留的端口以及保留了哪些服务

这个问题总是崛起。 我怎么知道什么端口目前保留在Windows XP / 2003和什么服务保留了他们。 例如,当我想安装Apache,默认端口将是80,但有时服务器将IIS安装在相同的端口。 所以我想知道检查端口的方式,以及哪些服务已经保留了端口,以及是否有办法将这些端口重新分配给不同的服务。 谢谢

Windows上的TCP环回吞吐量较差

我使用iperf测量了计算机上本地绑定的TCP套接字连接(Intel Q9550,64 GB RAM,Windows XP 64位)的吞吐量。 无论我如何调整TCP设置(缓冲区长度,窗口大小,最大段大小,没有延迟),每次都得到不满意的结果(大约1.6Gbit / s)。 当我尝试netperf时,我得到了类似的结果。 现在,我明白(从这些来源)回环连接的平均吞吐量应该在5 Gbit / s左右。 可能是这种糟糕performance的原因是什么?

TCP数据包分析术语混淆

我正在分析我们的networking,并对这些术语有一些困惑:这是从源到目的地的2包输出。 从这些我必须得到一些function描述,请让我清楚… 数据包至less包含一个TCP数据有效负载字节: 看起来tcp.len> 0; 最小的段大小( 混乱是标题包括或不 ) 在连接生命周期中观察到的平均段大小,定义:计算为实际数据字节中报告的值除以报告的实际数据pkts 。 IP数据包中的总字节数应为ip_len值。 (以太网)中的总字节数 发送的字节总数 可能与frame.len和frame.cap_len有关,这两个术语被描述为,也使我清楚这两个术语。 frame.cap_len:存储在捕获文件中的帧长度 frame.len:导线上的框架长度

数百万的SYN_RECV连接,没有DDoS

我们有这样的服务器结构:反向代理(nginx) – > worker(uwsgi) – > postgresql / memcached。 所有服务器位于路由器后面的本地networking中,使用NAT外部IP:端口(http / s 80/443代理服务器,ssh 22服务器)。 问题是,有时代理服务器netstat会报告数百万个SYN_RECV连接。 从相同的IP /相同的端口。 像那样: nginx ~ # netstat -n | grep 83.238.153.195 tcp 0 0 192.168.1.1:80 83.238.153.195:3107 SYN_RECV tcp 0 0 192.168.1.1:80 83.238.153.195:3107 SYN_RECV tcp 0 0 192.168.1.1:80 83.238.153.195:3107 SYN_RECV tcp 0 0 192.168.1.1:80 83.238.153.195:3107 SYN_RECV tcp 0 0 192.168.1.1:80 83.238.153.195:3107 […]