标签: linux-networking

有免费的网络实验室吗?

我想学网络。但我无法访问示例网络(路由器、DNS、IP4、IP6 windows linux 混合异构系统)。你知道任何在线学习网络(尽可能免费)。是否可以使用虚拟机在单台 PC 上模拟网络拓扑。如果是这样,你能指导我吗?

networking virtualization linux-networking

9
推荐指数
2
解决办法
805
查看次数

在 Linux 上终止 CLOSE_WAIT 套接字而不终止父进程

Tomcat 给我留下了 CLOSE_WAIT 套接字,最终使最大连接数饱和。

我在我的客户端和服务器代码中尝试了很多方法来摆脱这些都无济于事,包括关闭连接、调用 System.gc() 等。

现在我试图找到一种方法来简单地在操作系统中快速超时。我有 conntrack 工作,但不知道如何使用它来终止这些连接。我还将 /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_close_wait 设置为 1,这当然太低了,但连接仍然存在。

有没有办法杀死这些僵尸套接字?

运行 Ubuntu。

linux-networking socket

9
推荐指数
1
解决办法
2万
查看次数

使用 iptables 阻止来自一个 NIC 的所有传出流量?

我一定不擅长谷歌搜索,因为这似乎是一个非常基本的问题,但我似乎无法在任何地方找到答案……而且man iptables阅读时间很长!

我有两个 NIC - eth0 和 eth1 - 在一个 linux 机器上,我想阻止来自其中一个 NIC 的所有出站流量(所有端口上的 TCP 和 UDP),以便没有流量返回到路由器。

这是什么命令?我只看到了带有特定端口的示例。

提前致谢。

linux router iptables linux-networking

9
推荐指数
1
解决办法
3万
查看次数

是否可以在 Linux 网桥上启用端口隔离?

在大多数托管交换机上,您可以启用第 2 层端口隔离。实施和术语因供应商而异,但一般而言,您将一个或多个端口保持在默认的混杂 (Cisco) 或上行链路 (HP) 状态,并将其他端口配置为隔离 (Cisco) 或专用 (HP)。之后,孤立的端口只能与混杂的端口通信,而不能相互通信。

有什么方法可以通过 Linux 桥来实现这一点。将虚拟机彼此隔离?也许通过ebtables?

linux-networking

9
推荐指数
2
解决办法
7368
查看次数

较高的 rmem_max 值导致更多的丢包

rmem_maxLinux的设置限定了接收UDP数据包缓冲区的大小。
当流量变得太忙时,数据包丢失开始发生。

我制作了一个图表,显示数据包丢失如何根据传入带宽增加。
(我使用IPerf在两个 VM 实例之间生成 UDP 流量)
不同的颜色代表不同的rmem_max值:

在此处输入图片说明

如您所见,设置rmem_max26214400(深蓝色)会导致丢包比较小的值更早。Linux 的默认值是131071(深绿色)看起来很合理。

在这些情况下,为什么JBoss 文档建议设置rmem_max26214400
是因为 UDP 流量预计高于 350 MB/秒吗?无论如何,我认为任何东西都不会超过 1% 的丢包率...

我错过了什么?

详细信息:我sysctl -w net.core.rmem_max=131071(例如)在两个节点上都使用过,并在作为 serveriperf -s -u -P 0 -i 1 -p 5001 -f M和另一个作为 client 使用iperf -c 172.29.157.3 -u -P 1 -i 1 -p 5001 -f M -b 300M -t 5 -d -L 5001 -T …

linux udp linux-networking packetloss sysctl

9
推荐指数
1
解决办法
3万
查看次数

在 Ubuntu 中诊断数据包丢失/高延迟

我们有一个运行 Nginx (1.5.2) 的 Linux 机器 (Ubuntu 12.04),它充当一些 Tornado 和 Apache 主机的反向代理/负载平衡器。上游服务器在物理上和逻辑上是接近的(同一个 DC,有时同一个机架)并且它们之间的延迟是亚毫秒级的:

 PING appserver (10.xx.xx.112) 56(84) bytes of data.
 64 bytes from appserver (10.xx.xx.112): icmp_req=1 ttl=64 time=0.180 ms
 64 bytes from appserver (10.xx.xx.112): icmp_req=2 ttl=64 time=0.165 ms
 64 bytes from appserver (10.xx.xx.112): icmp_req=3 ttl=64 time=0.153 ms
Run Code Online (Sandbox Code Playgroud)

我们每秒收到大约500 个请求的持续负载,并且目前看到来自 Internet 的常规数据包丢失/延迟峰值,甚至来自基本 ping:

sam@AM-KEEN ~> ping -c 1000 loadbalancer
PING 50.xx.xx.16 (50.xx.xx.16): 56 data bytes
64 bytes from loadbalancer: icmp_seq=0 ttl=56 time=11.624 ms
64 bytes from loadbalancer: …
Run Code Online (Sandbox Code Playgroud)

networking tcpip nginx linux-networking ubuntu-12.04

9
推荐指数
1
解决办法
4万
查看次数

当 sysctl tcp_retries1 设置为 3 时,TCP 数据包被重传 7 次 - 为什么?

Ubuntu 12.04

我试图更好地了解 TCP 在未收到目的地收到的确认时将尝试重新传输数据包的次数。阅读tcp 手册页后,似乎很明显这是由 sysctl tcp_retries1 控制的:

tcp_retries1 (integer; default: 3)
           The number of times TCP will attempt to retransmit a  packet  on
           an  established connection normally, without the extra effort of
           getting the network layers involved.  Once we exceed this number
           of retransmits, we first have the network layer update the route
           if possible before each new retransmit.  The default is the  RFC
           specified minimum of 3.
Run Code Online (Sandbox Code Playgroud)

我的系统设置为默认值 3:

# cat /proc/sys/net/ipv4/tcp_retries1 
3
Run Code Online (Sandbox Code Playgroud)

为了对此进行测试,我通过 ssh …

kernel tcp linux-networking sysctl ubuntu-12.04

9
推荐指数
1
解决办法
4400
查看次数

模拟两台ubuntu服务器机器之间的慢速连接

我想模拟以下场景:假设我有 4 台 ubuntu 服务器机器 A、B、C 和 D。我想将机器 A 和机器 C 之间的网络带宽减少 20%,将 A 和 B 之间的网络带宽减少 10%。如何使用网络模拟/节流工具来做到这一点吗?

networking ubuntu bandwidth tcp linux-networking

9
推荐指数
1
解决办法
2337
查看次数

如何将捕获的数据包发送到不同的目的地?

我在 pcap 文件中使用 tcpdump 捕获了一些数据包。现在我想将这些数据包发送到另一个目的地。我怎么能做到这一点?

wireshark tcpdump linux-networking tshark

9
推荐指数
2
解决办法
2万
查看次数

通过网络(scp)复制大文件的性能缓慢

我有一个用作文件服务器的 Linux 机器。我有一个每月的 cron 作业,它对数据驱动器的内容进行压缩,然后通过 scp 将其复制到另一台机器以安全保存。生成的 tarball 大小约为 300GB,完成复制通常需要大约一天半的时间(通过 802.11g Wi-Fi 连接)。

今天我注意到我的备份工作还没有完成,它已经运行了 3 天。检查目标机器,我可以看到到目前为止只有大约三分之一的数据被复制,而且它似乎以 < 300KB/秒的速度增长。

iperf在两台机器之间使用,我可以看到我的网络吞吐量约为 20Mbits/sec,这与我对 802.11g 连接的期望值差不多。

dd if=srcfile of=/dev/null在源计算机上使用时,我可以从源驱动器(外部 USB 驱动器)读取大约 45MB/秒的数据。

使用dd if=/dev/zero of=/destdrive/tmp.dat在目标计算机上,我可以写30MB /秒到目标驱动器(内部SATA驱动器)。对于 SATA 驱动器来说,似乎有点慢,但也不算慢(当然也不是 300KB/秒慢)。

所以我似乎已经排除了网络吞吐量和两端的驱动吞吐量,那么我还能在哪里寻找瓶颈的来源?

linux performance linux-networking

9
推荐指数
1
解决办法
4万
查看次数