CentOS 上 Java 网络配置实用指南
一 系统网络与防火墙先行
ip addr 或 ifconfig(旧系统)。BOOTPROTO=static、IPADDR、NETMASK、GATEWAY、DNS1、DNS2、ONBOOT=yes,然后执行 sudo systemctl restart network 或 sudo ifdown eth0 && sudo ifup eth0 使配置生效。sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent 与 sudo firewall-cmd --reload。ping 网关或外网地址、curl http://www.google.com 测试 HTTP 访问。二 JVM 层网络参数与代理
java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080 -jar your-application.jar;如存在不需走代理的主机,使用 -Dhttp.nonProxyHosts="localhost|127.0.0.1|*.example.com"。也可在代码中使用 System.setProperty(...) 或在环境中设置 http_proxy/https_proxy 变量(注意:部分 Java 网络库可能不读取这些环境变量)。java -Dsun.net.client.defaultConnectTimeout=5000 -Dsun.net.client.defaultReadTimeout=5000 -Dhttp.keepAlive=true -Dhttp.maxConnections=100 -Dhttp.connectionTimeout=5000 -jar app.jar。java -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=10 -jar app.jar。java -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv6Addresses=false -jar app.jar。java -Djavax.net.ssl.trustStore=/path/to/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit -Djavax.net.ssl.keyStore=/path/to/keystore.jks -Djavax.net.ssl.keyStorePassword=mypassword -jar app.jar。三 TCP/IP 内核参数优化(可选)
net.ipv4.ip_local_port_range = 1024 65535、net.ipv4.ip_conntrack_max = 1048576net.core.rmem_max = 16777216、net.core.wmem_max = 16777216、net.ipv4.tcp_rmem = 4096 87380 16777216、net.ipv4.tcp_wmem = 4096 65536 16777216net.ipv4.tcp_fastopen = 3、net.ipv4.tcp_sack = 1、net.ipv4.tcp_window_scaling = 1、net.ipv4.tcp_timestamps = 1net.ipv4.tcp_syn_retries = 1、net.ipv4.tcp_synack_retries = 1sysctl -p。提示:不同内核版本参数名可能略有差异,修改前请评估对现有业务的影响。四 调试与排障命令
ss -tuln、netstat -tuln 查看监听与连接状态。tcpdump -i eth0 port 8080 定位应用层与传输层问题。ping、curl 验证网络与 HTTP 可达性。五 SELinux 与端口访问
sudo setenforce 0(不推荐生产环境长期关闭);生产环境应依据需求配置相应的 SELinux 策略以允许所需网络行为。