# 查看网络接口信息
ifconfig -a
ip addr show
# 检查路由表
route -n
ip route show
# 测试网络连通性
ping 8.8.8.8
# 检查并安装基本网络工具
sudo apt-get install net-tools iproute2 dnsutils # Debian/Ubuntu
sudo yum install net-tools bind-utils # CentOS/RHEL
# 安装基本开发工具
sudo apt-get install build-essential gcc g++ make # Debian/Ubuntu
sudo yum groupinstall "Development Tools" # CentOS/RHEL
# 安装必要的头文件和库
sudo apt-get install manpages-dev glibc-doc # Debian/Ubuntu
# 安装man手册
sudo apt-get install manpages-posix manpages-posix-dev # Debian/Ubuntu
# 查看当前防火墙规则
sudo iptables -L
# 允许特定端口(例如8080)
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# 对于Ubuntu的ufw防火墙
sudo ufw allow 8080/tcp
# Debian/Ubuntu
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
# CentOS/RHEL
sudo service iptables save
# 编辑sysctl.conf文件
sudo nano /etc/sysctl.conf
# 添加或修改以下参数
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
# 应用修改
sudo sysctl -p
// test_socket.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket creation failed");
exit(EXIT_FAILURE);
}
printf("Socket created successfully\n");
close(sockfd);
return 0;
}
编译并运行测试程序:
gcc test_socket.c -o test_socket
./test_socket
# 查看占用端口的进程
sudo netstat -tulnp | grep <port>
# 或者使用
sudo lsof -i :<port>
# 杀死占用进程
sudo kill -9 <pid>
# 对于1024以下端口,需要root权限
sudo ./your_program
# 或者设置capabilities(更安全)
sudo setcap 'cap_net_bind_service=+ep' /path/to/your_program
# 检查防火墙设置
sudo iptables -L
# 检查路由
traceroute <destination_ip>
# 检查DNS解析
nslookup example.com
dig example.com
# 安装libevent
sudo apt-get install libevent-dev # Debian/Ubuntu
sudo yum install libevent-devel # CentOS/RHEL
# 安装Boost.Asio
sudo apt-get install libboost-all-dev # Debian/Ubuntu
sudo yum install boost-devel # CentOS/RHEL
# 检查IPv6支持
cat /proc/sys/net/ipv6/conf/all/disable_ipv6 # 0表示启用
# 启用IPv6(如果被禁用)
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0
通过以上配置,您的Linux系统应该已经准备好进行Socket网络编程开发。您可以根据具体需求进一步调整和优化这些配置。