大家好请教一个问题
服务器环境:ubuntu10.4+ejabberd2.14
客户端:tsung-1.3.3 "/proc/sys/net/ipv4/ip_local_port_range" 的值已经是 32768 61000现象描述:
我在用tsung做压力测试时,发现服务器的用户在线数停留在<=28320数值上就不在上升了,查看了一下日志发现Error:eaddrinuse 提示。
我期望用户同时在线数能继续上升。
我在网上查了一下,查到echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout方法,设置过 但有起作用。
解决方法修改 p_local_port_range 参考下面信息,
echo "1024 61000" >/proc/sys/net/ipv4/ip_local_port_range
来自http://www.faqs.org/docs/securing/chap6sec70.html
The /proc/sys/net/ipv4/ip_local_port_range defines the local port range that is used by TCP and UDP traffic to choose the local port. You will see in the parameters of this file two numbers: The first number is the first local port allowed for TCP and UDP traffic on the server, the second is the last local port number. For high-usage systems you may change its default parameters to 32768-61000 -first-last.
The default setup for the ip_local_port_range parameters under Red Hat Linux is: "1024 4999"
To change the values of ip_local_port_range, type the following command on your terminal:
[root@deep] /# echo "32768 61000" >/proc/sys/net/ipv4/ip_local_port_range
|
Add the above commands to the /etc/rc.d/rc.local script file and you'll not have to type it again the next time you reboot your system.
Edit the /etc/sysctl.conf file and add the following line:
# Allowed local port range
net.ipv4.ip_local_port_range = 32768 61000
|
You must restart your network for the change to take effect. The command to manually restart the network is the following:
[root@deep] /# /etc/rc.d/init.d/network restart
|
Setting network parameters [ OK ] Bringing up interface lo [ OK ] Bringing up interface eth0 [ OK ] Bringing up interface eth1 [ OK ]
非 port_range引起可参考(
)
分享到:
相关推荐
在Android开发过程中,网络通信是应用的重要组成部分,而使用UDP(User Datagram Protocol)进行数据传输时,可能会遇到`java.net.BindException: bind failed: EADDRINUSE`的问题。这个异常通常意味着应用程序尝试...
Backend do Projeto iComida Mensagem de Erro:Nodemon:错误:监听EADDRINUSE:地址已在使用中 $ lsof -i tcp:4000 $ kill -9 PID
- EADDRINUSE (0x30):地址已被使用。 - EADDRNOTAVAIL (0x31):地址不可用。 - ENETUNREACH (0x34):网络不可达。 - ECONNABORTED (0x35):连接被主动终止。 - ECONNRESET (0x36):连接被对端重置。 - ETIMEDOUT ...
Error: listen EADDRINUSE at errnoException (net.js:901:11) at Server._listen2 (net.js:1039:14) at listen (net.js:1061:10) at Server.listen (net.js:1127:5) at EventEmitter.listen (/root/webServer/node_...
当尝试绑定一个已经被其他进程使用的端口时,`bind()`函数会返回一个错误码“EADDRINUSE”,即地址已经被使用。这种情况常常出现在以下几种情况: 1. **进程未完全终止**:虽然通过`Ctrl + C`强制结束了进程,但该...
* EADDRINUSE:地址已经在使用 * ECONNREFUSED:连接被拒绝 3. send() 函数 send() 函数用于发送数据。 ssize_t send(int sockfd, const void *buf, size_t len, int flags); 参数: * sockfd:套接字描述符 * ...
**解决方法:** 始终检查函数的返回值,确保它们符合预期。对于可能出现多种返回值的情况,还需要根据不同的返回值采取适当的措施。例如,在`send()`函数中,不仅需要检查是否返回-1(表示发送失败),还要检查...
- **EADDRINUSE**:给定地址已经使用。 - **EBADF**:`sockfd` 不合法。 - **EINVAL**:`sockfd` 已经绑定到其他地址。 - **ENOTSOCK**:`sockfd` 是一个文件描述符,不是套接字描述符。 - **EACCES**:地址被保护,...
解决方法包括选择未被使用的端口或释放已占用的端口。 2. **IP地址绑定**:默认情况下,`bind()`函数会将套接字绑定到所有可用的网络接口(即0.0.0.0)。如果需要绑定到特定的IP地址,例如本地环回地址(127.0.0.1...
### Linux套接字编程中的五个隐患 #### 隐患1:忽略返回状态 在Linux套接字编程中,忽略函数的返回状态是最常见的...通过以上方法,可以有效地避免在套接字编程过程中遇到的一些常见隐患,提高程序的稳定性和可靠性。
std::cerr << "Error binding socket: " (errno) << std::endl; return -1; } } int main() { int port_to_check = 80; // 替换为你需要检查的端口 int result = check_port_in_use(port_to_check); return ...
解决这个问题的方法包括检查并修改配置文件,确保使用未被占用的端口,或者在启动服务器前先终止正在使用该端口的进程。 另一个常见错误是“ENOENT”,这通常意味着“没有找到文件或目录”。在Webserver中,这可能...
本书旨在采用一种“实践导向”的教学方法,帮助读者掌握Socket编程的基本原理,并能够快速上手。 #### 知识点二:基本概念介绍 - **章节结构**:本书分为两大部分,第一部分涵盖了Socket编程的基础概念,第二部分则...
如果失败(例如EADDRINUSE错误),则端口已被占用。这种方法适用于本地端口检测,但需要注意的是,由于操作系统的缓冲区,短时间内多次尝试绑定可能会得到错误的结果。 在VS2010环境下,使用C++检测TCP端口是否被...
- **常见错误**:例如ECONNREFUSED(连接被拒绝)、EADDRINUSE(地址已在使用)等。 - **处理方法**:使用`errno`和`strerror()`函数来诊断错误原因。 #### 11. 性能优化 - **非阻塞Socket**:设置Socket为非阻塞...
Vue.js海报店 “ ”课程中的案例研究项目的源代码 演示版 在此处查看已完成的项目: : 预安装 ... EADDRINUSE :::3000 。 您已经有另一个使用端口3000的应用程序。要么终止它,要么手动更改设置PORT
根据提供的信息来看,实际与题目要求的“UNIX网络编程第1卷”这一主题不相符,而是涉及到了...通过学习本书,读者不仅可以掌握基本的网络编程知识,还能学会如何构建复杂的网络应用程序,并具备解决实际问题的能力。
我在应用程序启动时收到EADDRINUSE 该后端为用户实现了一个RESTful CRUD 接口,并符合 Eric Evan 的DDD和 Uncle Bob 的Clean Architecture ,文档中对此进行了简要说明。 它还公开了一个/docs/端点以供进一步参考...
如果监听失败,`error` 事件会被触发,我们检查错误码 `EADDRINUSE` 来确定端口是否已被占用,并给出相应提示。 为了提高代码的可复用性,我们可以让程序接收命令行参数,动态地指定要检测的端口。Node.js 提供的 `...