理想下载站 手游攻略 新游动态 Linux 《荒岛余生》 (5) 网络

Linux 《荒岛余生》 (5) 网络

时间:2025 12 11 22:02:56 来源: 浏览:72

大家好,今天小编来为大家解答Linux 《荒岛余生》 (5) 网络这个问题,很多人还不知道,现在让我们一起来看看吧!

首先,每个连接都是一个文件句柄,因此需要有文件描述符数量的支持。每个socket内存占用15k-20k之间。这样,仅仅维护对应的socket就需要20G内存;广播1KB的消息需要占用带宽1000M!

查看当前系统连接

如何查看当前系统有多少个连接?可以使用netstat结合awk进行统计。下面的脚本统计各个状态下的tcp连接数

但如果你在有几万个连接的服务器上执行这个命令,你可能会等待很长时间。因此,我们有了第二代网络状态统计工具:netstat=ss(不要与越狱工具混淆)。

# ss -sTotal: 191 (内核220)TCP: 5056 (estab 42, 关闭5000, 孤立3, synrecv 0, timewait 5000/0), 端口3469.

Netstat属于net-tools工具集,而ss属于iproute。对应的命令如下。是时候对网络工具说再见了。

使用

网络工具

ip路由

统计数据

如果配置

SS

地址

网络统计

IP地址

路由

路线

ip路由

邻居

ARP

IP邻居

VPN

网络隧道

IP隧道

虚拟局域网

虚拟配置

ip链接

组播

ip地址

ip地址

SS命令

基本使用

我们根据使用场景来看看ss的用法。

查看系统正在监听的tcp连接

ss -atr ss -atn # 仅ip

查看系统中所有连接

SS-替代

查看监听444端口的进程pid

SS-LTP| grep 444

查看555进程占用了哪些端口

ss-ltp|正则表达式555

显示所有udp连接

SS-u-a

要查看TCP 套接字,请使用-ta 选项查看UDP 套接字,使用-ua 选项查看RAW 套接字,使用-wa 选项查看UNIX 套接字,使用-xa 选项

到某个IP的所有连接

SS 夏令时10.66.224.130ss 夏令时10.66.224.130:https 夏令时10.66.224.130:smtpss 夏令时10.66.224.130:443

显示所有http连接

ssd端口=:http

查看与本机连接最多的前10 个IP 地址

netstat -antp | 网络统计awk '{print $4}' |切-d ':' -f1 |排序| uniq-c|排序-n -k1 -r |头-n 10

Recv-Q 和Send-Q

注意ss的执行结果。让我们解释一下Recv-Q 和Send-Q。

这两个值分别在LISTEN和ESTAB状态下。。不同的含义。一般来说,对于正常应用来说,这两个值都应该为0(backlog除外)。值越大,问题越严重。

收听状态

Recv-Q:。。有多少已建立的连接尚未被接受。例如,Nginx 接受新连接变得非常慢。

Send-Q:表示监听积压值

ESTAB 状态

Recv-Q:内核中有多少字节的数据还没有被应用程序读取,发生了一定程度的阻塞。

Send-Q:表示还有多少字节的数据还在内核中的发送队列中,还没有收到ack。对端的接收和处理能力不强。

查看网络流量

查看路况

有很多工具可以查看网络流量,但sar 是我最喜欢的。 sar是Linux上最全面的监控软件。如图,使用sar -n DEV 1每秒刷新一次网络流量。

观看猫/proc/net/dev

查看流量最多的IP

有时我们发现网络带宽使用率很高,但无法确定流量来自哪里。这时候iftop就可以帮忙了。如图所示,可以轻松查出流量来自哪台主机。

抓包

tcp转储

当我们需要判断是否有流量或者调试一个比较棘手的netty应用问题时,我们可以通过抓包来进行进一步的判断。在Linux上,可以通过tcpdump命令捕获数据,然后使用Wireshark进行分析。

tcpdump -i eth0 -nn -s0 -v 端口80

-i 指定抓包的网卡

-n 与ss相同,表示不解析域名

-nn 两个n表示端口也是数字,否则会解析成服务名

-s 设置抓包长度,0表示不限制

-v 捕获数据包时显示详细输出,-vv 和-vvv 按顺序显示更详细的信息。

1)添加-A选项将打印ascii,-X将打印十六进制代码。

tcpdump -A -s0 端口80

2)捕获特定IP的相关包

tcpdump -i eth0 主机10.10.1.1tcpdump -i eth0 dst 10.10.1.20

3)-w参数将捕获的数据包写入文件

tcpdump -i eth0 -s0 -w test.pcap

4)tcpdump支持表达式,还有更复杂的例子,比如捕获系统中的get和post请求(非https)

tcpdump -s 0 -v -n -l | tcpdump -s 0 -v -n -l | tcpdump -s 0 -v -n -l | egrep -i 'POST /|GET /|Host:'

有关更多信息,请参阅https://hackertarget.com/tcpdump-examples/

捕获的数据可以使用wireshark查看。

http数据包捕获

抓包工具将自己视为代理,可以捕获您的浏览器与服务器之间的通信,并提供修改、重放和批量执行的功能。它是发现问题、分析协议和攻击站点的强大工具。常用的有以下三种:

Burpsuite(跨平台)

小提琴2(获胜)

查尔斯(麦克)

坏事应该暗中做。

戈尔

TCP重播

TCP复制

连接数过多问题

根据TCP/IP,套接字大约包含10 种连接状态。除了针对SYN的拒绝服务攻击之外,如果我们在日常工作中遇到异常情况,很有可能是TIME_WAIT和CLOSE_WAIT的问题。 TIME_WAIT一般可以通过优化内核参数来解决; CLOSE_WAIT一般是由于编程不合理造成的,应该引起开发者的注意。

TIME_WAIT

TIME_WAIT是主动关闭连接的一方维护的状态。像nginx和爬虫服务器,经常会出现大量处于time_wait状态的连接。 TCP一般在主动关闭连接后等待2MS,然后彻底关闭连接。由于HTTP使用TCP协议,因此这些频繁切换连接的服务器上会积压TIME_WAIT状态连接。

有些系统可以通过dmesg看到以下信息。

__ratelimit: 2170 个回调被抑制TCP: 时间等待桶表溢出TCP: 时间等待桶表溢出TCP: 时间等待桶表溢出TCP: 时间等待桶表溢出

通过ss -s命令查看,可以看到已经有20000个timewaits了。

ss -sTotal: 174(内核199)TCP: 20047(estab 32,关闭20000,孤立4,synrecv 0,timewait 20000/0),端口10785

sysctl命令可以设置这些参数。如果希望重启后生效,请将其添加到/etc/sysctl.conf文件中。

# 修改阈值net.ipv4.tcp_max_tw_buckets=50000 # 表示开启TCP连接中TIME-WAIT套接字的快速回收net.ipv4.tcp_tw_reuse=1 # 启用timewait快速回收。必须打开此功能,默认情况下它是关闭的。 net.ipv4.tcp_tw_recycle=1 # 修改系统默认TIMEOUT时间,默认为60snet.ipv4.tcp_fin_timeout=10

测试参数可以使用sysctl -w net.ipv4.tcp_tw_reuse=1这样的命令,如果是写入文件,则使用sysctl -p才能生效。

CLOSE_WAIT

CLOSE_WAIT一般是由于peer主动关闭而我们没有正确处理造成的。说白了就是程序的编写出现了问题,这是一个比较危害性的问题。

我们以“csdn同名太郎”遇到的典型案例来说明。

该代码是使用HttpClient 的使用片段。在此代码中,通过调用in.close() 来清理连接资源。但不幸的是,代码中有一个判断:非200状态的连接直接返回null。这种情况下,in连赋值的机会都没有,当然也无法关闭,然后就发生了连接泄漏。

因此,关闭HttpClient的正确方法是使用它的api:abort()。

其他常用命令

应用软件

# 继续下载文件wget -c $url# 下载全站wget -r -p -np -k $url# 发送网络连接(常用)curl -XGET $url# 传输文件scpsftp# 数据镜像备份rsync

检测工具

# 连通性检测ping google.com# 路由到对等点检测Tracepath google.com# 域名检测dig google.comnslookup google.com# 网络扫描工具nmap# 压力测试iperf# 综合监控工具(好东西) nmon

配置工具

# 停止某块网卡ifdown# 启动某块网卡ifup# 多功能管理工具ethtool

压力测试

wrkabwebbenchhttp_load

多功能工具

# 远程登录telnetsshnc# 防火墙iptables -L

结束

我们在I/O章节中已经提到过NIO,这里不再详细介绍。当你遇到所谓的拆包和粘帖问题、心跳和限流问题、甚至流量整形问题时,证明你离一个专业的网络编程程序员越来越近了。

用户评论

迁心

终于等到了LINUX版的《荒岛余生》,这个开放世界生存游戏我还是挺喜欢的,之前玩PC版本太久,想在Linux下体验一下全新感。

    有20位网友表示赞同!

青瓷清茶倾城歌

网络版的游戏体验肯定要比单机版本更有意思,可以和朋友一起去探险、建造、甚至互相坑害。哈哈哈

    有19位网友表示赞同!

留我一人

这游戏的难度还是蛮高的,需要你时刻保持警惕,才能在这个荒岛上生存下去。尤其是在网络版里,危险系数又更高了。

    有16位网友表示赞同!

残留の笑颜

画风不错,环境还原性强,感觉真的回到了原始社会一样,有挑战也有乐趣。

    有5位网友表示赞同!

微信名字

虽然是Linux版本,但操作流畅度很高,帧数也保持稳定,玩起来很舒服。

    有5位网友表示赞同!

孤者何惧

这款游戏的生存系统太牛了,从寻找食物、水源到建造庇护所,每一步都充满了真实感。要时刻留意时间和天气变化啊!

    有20位网友表示赞同!

■孤独像过不去的桥≈

我很喜欢游戏里的生物多样性,各种动物都有自己的行为模式,有些甚至还有威胁性。遇上大型野兽的时候真的压力山大!

    有10位网友表示赞同!

麝香味

网络版的协作元素非常强大,可以组队建造大型建筑,一起对抗敌人,感觉很像是真实的合作项目。

    有19位网友表示赞同!

伪心

我觉得这个游戏很有教育意义,它能让你了解到生存的艰辛,以及如何在恶劣环境下保持理智和冷静。

    有5位网友表示赞同!

青衫故人

虽然是Linux平台上的游戏,但它的硬件要求并不高,适合我的配置运行起来很流畅。

    有19位网友表示赞同!

见朕骑妓的时刻

这次网络版的联机体验比我想象的要好很多!玩家之间互动丰富有趣,感觉像是在共同经历一段冒险故事一样。

    有12位网友表示赞同!

愁杀

希望开发者能继续更新内容,添加更多样化的游戏模式和玩法,让这个游戏能够持续保持新鲜感。

    有20位网友表示赞同!

打个酱油卖个萌

这款游戏的剧情发展很棒,充满了悬疑感和代入感,让人欲罢不能!

    有5位网友表示赞同!

哭着哭着就萌了°

我建议新手玩家可以先从单人模式开始玩,熟悉游戏规则、掌握生存技能后再来尝试网络版的游戏挑战。

    有7位网友表示赞同!

陌然淺笑

游戏里的音乐很好听,能很好的烘托出荒岛的氛围,让人感觉身临其境。

    有6位网友表示赞同!

断秋风

这个Linux版的《荒岛余生》绝对值得推荐给所有喜欢生存游戏的玩家!

    有5位网友表示赞同!

墨城烟柳

游戏的画面表现细腻逼真,特别是夜晚的光影效果,给人一种很强烈的视觉冲击力。

    有14位网友表示赞同!

一样剩余

我觉得这款游戏很有潜力的,期待后续开发者能加入更多创意和内容,让它成为一款真正优秀的生存游戏巅峰之作!

    有15位网友表示赞同!

标题:Linux 《荒岛余生》 (5) 网络
链接:https://www.ltthb.com/news/xydt/130178.html
版权:文章转载自网络,如有侵权,请联系删除!
资讯推荐
更多
三角洲行动11月19日密码是什么

三角洲行动每个地图里的密码门每天都会按时更新密码。你要收集各种线索串联起来再去密码门输入正确的密码才

2025-11-19
心动小镇11月19日溜溜橡木和无暇荧石采集位置在哪

心动小镇溜溜橡木和无暇荧石可是每日必采的稀有资源,不过要是想收集它们的话,得先完成【寻找星灵】主线任务解

2025-11-19
星际战甲伤害值查看方法攻略-伤害值在哪看

星际战甲里打出伤害后有很多小伙伴都还找不到查看具体数值的地方,不过毕竟要了解自己的输出数据,才能更好规划

2025-11-19
荒原曙光战宠图文详情介绍

荒原曙光一份实力实用又强力的战宠名单给大家,输出辅助等等系别的战宠全都有,轻轻松松帮你根据不同的战斗场景

2025-11-19
[!--temp. The end of the content page--]