以下是CentOS上配置Java网络的关键技巧,涵盖系统级和JVM级设置:
修改网络接口参数
编辑 /etc/sysconfig/network-scripts/ifcfg-eth0
(接口名可能不同),设置IP、网关、DNS等,例如:
BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4
重启网络服务:systemctl restart network
。
优化内核网络参数
修改 /etc/sysctl.conf
,调整TCP缓冲区、连接队列等,例如:
net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 net.core.somaxconn=65535 net.ipv4.tcp_tw_reuse=1
生效配置:sysctl -p
。
配置防火墙规则
使用 firewall-cmd
开放端口,如:
firewall-cmd --permanent --zone=public --add-port=8080/tcp firewall-cmd --reload ```。
设置JVM启动参数
java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -jar app.jar
java -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=10 -jar app.jar
java -Djava.net.preferIPv4Stack=true -jar app.jar ```。
通过环境变量配置
编辑 /etc/profile
或 ~/.bashrc
,添加:
export JAVA_OPTS="-Dsun.net.inetaddr.ttl=60 -Dhttp.proxyHost=proxy.example.com"
使配置生效:source /etc/profile
。
连接池与复用
在Java代码中使用连接池(如HikariCP)减少连接创建开销,或通过JVM参数启用HTTP连接复用:
-Dhttp.maxConnections=100 -Dhttp.keepAlive=true ```。
SSL/TLS优化
配置信任库和密钥库路径,启用TLS 1.2+:
-Djavax.net.ssl.trustStore=/path/to/truststore.jks -Djavax.net.ssl.trustStorePassword=123456 ```。
网络监控与调优
使用 ss
或 netstat
监控连接状态,结合 tcpdump
分析流量,针对性优化缓冲区或超时参数。
ping
或 curl
验证网络可达性。ab
(Apache Benchmark)或 JMeter
压测接口响应速度。根据实际场景选择配置,生产环境建议先在测试环境验证。