首页
留言
导航
统计
Search
1
追番推荐!免费看动漫的网站 - 支持在线观看和磁力下载
2,510 阅读
2
推荐31个docker应用,每一个都很实用
1,311 阅读
3
PVE自动启动 虚拟机 | 容器 顺序设置及参数说明
931 阅读
4
一条命令,永久激活!Office 2024!
618 阅读
5
优选 Cloudflare 官方 / 中转 IP
490 阅读
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
登录
Search
标签搜索
Java
小程序
Redis
SpringBoot
docker
Typecho
Cloudflare
docker部署
虚拟机
WordPress
群晖
uni-app
CentOS
Vue
Java类库
Linux命令
防火墙配置
Mysql
脚本
Nginx
微醺
累计撰写
264
篇文章
累计收到
11
条评论
首页
栏目
默认分类
服务器
宝塔
VPS
Docker
OpenWRT
Nginx
群晖
前端编程
Vue
React
Angular
NodeJS
uni-app
后端编程
Java
Python
SpringBoot
SpringCloud
流程引擎
检索引擎
Linux
CentOS
Ubuntu
Debian
数据库
Redis
MySQL
Oracle
虚拟机
VMware
VirtualBox
PVE
Hyper-V
计算机
网络技术
网站源码
主题模板
页面
留言
导航
统计
搜索到
3
篇与
的结果
2025-07-05
用虚拟IP扩容服务器端口池
最近遇到一个棘手的问题:服务器的 WebSocket 服务在高并发场景下,客户端连接数达到一万多时,服务器的端口资源被耗尽了。导致后面的任何请求都没响应。通过 netstat 查看连接情况,发现所有连接的本地端口都是从 32768 开始的,即使我已经将系统的端口范围设置为 1024-65535[root@server ~]# cat /proc/sys/net/ipv4/ip_local_port_range 1024 65535但实际分配的端口还是从32768开始,导致高位端口很快被耗尽,新连接无法建立。问题分析经过一番调研,发现这个问题在 Linux 系统中很常见。虽然设置了 ip_local_port_range 为 1024-65535,但实际上如下:glibc的默认行为:很多Linux发行版的glibc硬编码了临时端口分配的起始值为32768内核版本限制:老版本内核(如3.10)没有 ip_unprivileged_port_start 参数历史遗留问题:这是Linux系统的"正常"行为,不是配置错误我的服务器环境: 内核:3.10.0-1127.19.1.el7.x86_64glibc:2.17系统:CentOS 7.6解决方案探索方案一:升级系统(不推荐)升级glibc和内核到新版本可以支持更灵活的端口分配,但在生产环境中风险极高,容易导致系统崩溃。方案二:虚拟IP扩容(推荐)通过在同一台服务器上添加多个虚拟IP,每个IP都拥有独立的端口池,从而成倍扩容端口资源。虚拟IP方案实施第一步:查看网络环境首先确认服务器的网卡和IP配置:[root@server ~]# ip addr show eth0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:16:3e:1f:ee:09 brd ff:ff:ff:ff:ff:ff inet 1.2.3.17/20 brd 11.22.33.255 scope global dynamic eth0可以看到主IP是 1.2.3.17/20 ,子网掩码是 /20。第二步:添加虚拟IP根据主IP的网段,添加几个虚拟IP:ip addr add 1.2.3.100/20 dev eth0 ip addr add 1.2.3.101/20 dev eth0 ip addr add 1.2.3.102/20 dev eth0这里的ip后三位可以随便写。ip个数最好是100个以内,多了会影响性能。验证添加成功:ip addr show eth0显示出刚才添加的ip就是没问题的第三步:配置Nginx负载均衡修改Nginx配置,将流量分发到不同的虚拟IP:upstream websocket_backend { server 1.2.3.100:38088; server 1.2.3.101:38088; server 1.2.3.102:38088; } server { listen 80; server_name xx.com; location /请求上下文 { proxy_pass http://websocket_backend/请求上下文; proxy_redirect default; proxy_pass_header Server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Scheme $scheme; } }第四步:重启服务重启 WebSocket服务端 和 Nginx ,让配置生效:nginx -t nginx -s reload效果验证查看连接分布使用 ss 命令查看连接是否被正确分发到不同虚拟IP:ss -tnp | grep 38088输出显示连接确实被分发到了不同IP:CLOSE-WAIT 1 0 1.2.3.100:38088 169.24.13.2:36294 CLOSE-WAIT 1 0 1.2.3.101:38088 169.24.13.2:57430 CLOSE-WAIT 1 0 1.2.3.102:38088 169.24.13.2:37558这里的169.24.13.2不用管,这是我的nginx用的docker镜像的原因端口资源扩容效果之前:所有连接都占用 1.2.3.17 的端口池(32768~65535)现在:连接分散到3个虚拟IP,每个IP都有独立的端口池效果:端口资源扩容3倍,极大缓解端口耗尽问题注意事项1. 子网掩码的确定添加虚拟IP时,子网掩码必须和主IP一致。查看方法很简单:ip addr show eth0看输出中的 inet 1.2.3.17/20,直接使用 /20 即可。2. 虚拟IP的持久化临时添加的虚拟IP重启后会失效,需要写入启动脚本:# 编辑 /etc/rc.local ip addr add 1.2.3.100/20 dev eth0 ip addr add 1.2.3.101/20 dev eth0 ip addr add 1.2.3.102/20 dev eth0 # 赋予执行权限 chmod +x /etc/rc.d/rc.local3. 网络架构要求Nginx 和 WebSocket服务端 必须在同一台服务器虚拟IP必须在同一网段内,不能和其他机器冲突如果是云服务器,可能需要先在控制台申请辅助私网IP总结通过 虚拟IP + Nginx 负载均衡的方案,成功将端口资源扩容了 3倍,有效解决了高并发 WebSocket 场景下的端口耗尽问题。这个方案的优势:实施简单:只需添加虚拟IP和配置Nginx风险较低:不需要升级系统内核效果显著:端口资源成倍扩容扩展性好:可以根据需要继续添加虚拟IP对于高并发WebSocket、短连接等场景,这是一个非常实用的解决方案。
2025年07月05日
32 阅读
0 评论
0 点赞
2025-03-11
CentOS 7 ens33获取不到ip地址和启动网卡报错的解决方法
当我们启动虚拟机输入 ifconfig 查看 IP 地址时出现下图这样的情况,发现没有 ens33 移动到 /etc/sysconfig/network-scripts 编辑 ifcfg-ens33cd /etc/sysconfig/network-scripts vim ifcfg-ens33将 ONBOOT=NO 改成 ONBOOT=yes 输入 i 进行编辑;将最后 ONBOOT=no 改为 yes 即可;单击 esc 键,然后输入 :wq 保存退出。这样就开启了 ens33 ;接着重启网络服务就可以看到 ip 地址。重启网络服务service network restart 出现下图表示已经重启成功输入 ifconfig ens33 有了 ip 地址。出现 异常# 关闭NetworkManager服务 systemctl stop NetworkManager systemctl restart network.service service network restart # 问题解决
2025年03月11日
63 阅读
0 评论
0 点赞
2023-03-08
计算机网络期末复习提纲(全知识点总结)
计算机网络期末复习提纲全知识点总结第一章 概述1.基本概念- 链路,结点,协议和服务,实体和对等实体,各层PDU- C/S模式,B/S模式,P2P模式- LAN,WAN,MAN,PAN的划分- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率2.互联网的组成(边缘部分与核心部分的作用)3.电路交换与分组交换,数据报交换和虚电路交换的特点4.TCP/IP体系结构,数据的封装与解封装第二章 物理层1.信号编码:不归零编码,曼切斯特编码2.影响信号失真程度的因素3.传输介质:双绞线,同轴电缆,光纤(单模和多模),无线介质4.几种复用技术的特点:频分复用,时分复用,统计时分复用,波分复用,码分复用5.宽带接入技术:ADSL,HFC,FTTX第三章 数据链路层1.理解数据链路层的地位与作用,三个基本问题2.使用点对点信道的链路层:信道特点,PPP帧格式,零比特填充法和字节填充法,差错检测(CRC)3.使用广播信道的链路层:信道特点,CSMA/CD协议,MAC帧格式,最小帧长和最大帧长4.网卡的功能和MAC地址,帧的类型(单播帧,广播帧,多播帧)5.比较集线器与交换机,交换机的自学习功能及转发帧的过程6.广播域和碰撞域,VLAN,生成树协议STP第四章 网络层1.网络连接设备:中继器,集线器,交换机,路由器的工作层次2.IP地址:分类IP地址;互联网中的IP地址,特殊IP地址(网络地址,广播地址)3.IP地址与硬件地址的关系,ARP协议(ARP原理,ARP缓存,同一局域网使用ARP,跨网使用ARP)4.IP数据报格式:首部长度和总长度,IP分片与重组(标识,标志,片偏移),生存时间TTL,协议,首部检验和5.划分子网:子网划分,子网掩码,根据IP地址和子网掩码计算该IP地址所在网络的网络地址,广播地址,子网数和子网中的主机数6.CIDR(给定一个CIDR地址快,计算最小IP地址,最大IP地址,掩码和地址总数)和路由聚合(给定几个IP地址,计算聚合后的地址)7.ICMP协议:ICMP协议的作用,ICMP差错报文何时产生,由谁产生.PING命令和Tracert命令的工作原理8.路由器:给定拓扑写出路由器(直连路由,静态路由和动态路由,默认路由),路由器根据路由器转发IP数据报的过程9.RIP:距离,距离向量算法,工作过程,特点10.OSPF:链路状态,OSPF的工作过程,OSPF区域11.外部网关协议BGP:寻找可达性的路由,策略路由12.IPv6:ipv6数据报格式,IPv6相比IPv4的变化,IPv6地址的表示,从IPv4相比IPv6的过渡技术13.IP多播:比较(单播,广播,多播,任播),IP多播数据报的封装,多播IP地址与多播MAC地址,IGMP协议的作用14.VPN:私有IP,VPN路由器封装IP数据报的过程,三种VPN类型的判断,NAT路由器封装IP数据报的过程15.MPLS:与传输路由技术的比较,负载均衡与FEC第五章 运输层1.运输层的作用2.UDP和TCP的特点,及使用它们的应用程序,熟知端口号3.UDP:首部格式,检验和4.TCP的首部格式(端口号,序号,确认号,窗口,首部长度,检验和,6个标志位)5.TCP的可靠传输:超时重传机制,TCP流量控制(序号,确认号,确认标志位,窗口,死锁问题与持续计时器),发送缓存和接受缓存的作用,捎带确认与累积确认6.TCP的拥塞控制:网络拥塞的判断,传输轮次与拥塞窗口大小的关系(慢开始与拥塞避免,门限ssthresh,重传计时器超时与三个重复ACK)7.TCP连接:TCP的套接字,三次握手建立TCP连接,四次握手释放TCP连接第六章 应用层1.域名系统DNS1)IP与域名的关系,DNS的作用,域名的结构2)四类域名服务器(根域名服务器,顶级域名服务器,权限域名服务器和本地域名服务器)3)迭代与递归解析域名的方式,DNS缓存2.文件传输协议FTP:FTP协议的作用,控制连接与21号端口,数据连接与20号端口,匿名FTP的三种使用方式3.WWW服务:HTTP协议的作用,URL,在浏览器的地址栏中输入一个URL后发生的报文交互情况,流水线持久连接,HTTP报文,Cookie的作用,三类web文档,搜索引擎4.电子邮件系统:电子邮件系统的组成,E-mail格式,SMTP,MIME,POP3和IMAP的区别,基于万维网的电子邮件5.动态主机配置协议DHCP:DHCP的作用(IP地址,子网掩码,默认网关IP地址,默认DNS服务器IP地址),DHCP的工作过程,IP租约期,DHCP服务器的位置及DHCP中继6. P2P应用:文件分发第七章 网络安全网络攻击的常见方式,对称密码体制和公钥密码体制,数字签名与保密通信,秘钥分配(KDC,CA)第九章 无线局域网两类WLAN,AdHoc,无线传感器网络,CSMA/CA,802.11帧(四个地址)其他1.归纳比较:地址长度(MAC地址,IPv4地址,IPv6地址,端口号)首部长度(帧首部,IPv4首部,IPv6首部)差错检验(帧校验CRC,IPv4,TCP和UDP的校验检验和)路由技术(RIP,OSPF,BGP,MPLS)数据交换(电路交换,报文交换,分组交换)TCP与UDPIPv4与IPv6P2P与C/S搜索引擎(全文检索与分类目录)CSMA/CD与CSMA/CA网络攻击方式(蠕虫,木马,逻辑炸弹,后门入侵,流氓软件,窃听,拒绝服务攻击)2.主要命令Ipconfig命令(/all,/displaydns,/flushdns,/release,/renew)ping命令(-n,-l,-t等参数)Traceroute命令arp命令(-a,-d,-s参数)3.术语:ISP,IXP,Hub,LAN,MAN,WAN,WLAN,VLAN,P2P,C/S,CSMA/CD,CSMA/CA,LiFi,Wifi,ADSL,HFC,FTTH,URL,VPN,IPSec,NAT,ICMP,IGMP,MSS,BGP,自治系统AS,HTTPS,MPLS,AP,SSID,AdHoc,区块链注:粗体为次重点,粗斜体为重点文章详情请访问:计算机网络期末复习提纲(全知识点总结)
2023年03月08日
21 阅读
0 评论
0 点赞