温馨提示×

CentOS Java网络设置指南

小樊
43
2025-11-15 19:37:48
栏目: 编程语言

CentOS Java网络设置指南

一 系统网络准备

  • 查看网卡与地址:使用命令查看接口名(如 eth0ens33)与 IP 信息:ip addrifconfig(旧系统)。
  • 备份与编辑网卡配置:配置文件位于 /etc/sysconfig/network-scripts/ifcfg-<接口名>。建议先备份:cp ifcfg-eth0 ifcfg-eth0.bak。示例静态配置:
    DEVICE=eth0
    BOOTPROTO=static
    ONBOOT=yes
    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
    使配置生效:sudo systemctl restart networksudo ifdown eth0 && sudo ifup eth0
  • 使用 NetworkManager(CentOS 7+):可用 nmclinmtui 配置,图形/文本界面设置 IPv4 手动、地址、网关与 DNS,保存后激活连接。
  • 验证:确认地址与路由 ip addr show <接口名>ping 192.168.1.1,测试外网 ping www.google.comcurl http://www.google.com

二 Java运行环境与网络相关变量

  • 安装 OpenJDK(示例):sudo yum install -y java-1.8.0-openjdk-devel;或手动解压并设置 JAVA_HOMEPATH
  • 环境变量示例(写入 /etc/profile~/.bashrc):
    export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    export PATH=$JAVA_HOME/bin:$PATH
    使生效:source /etc/profilesource ~/.bashrc;验证:java -versionjavac -version
  • 说明:JVM 的网络行为主要由启动参数与代码决定,环境变量用于定位 Java 运行环境。

三 JVM网络参数与代理配置

  • 常用系统属性(启动参数形式):
    • 仅用 IPv4:-Djava.net.preferIPv4Stack=true
    • 调整 DNS 缓存 TTL:-Dsun.net.inetaddr.ttl=60(负缓存:-Dsun.net.inetaddr.negative.ttl=10
    • 连接/读取超时(代码层面更可控,属性仅作补充):例如 http.connection.timeouthttp.socket.timeout
  • HTTP/HTTPS 代理(JVM 级):
    • 仅 HTTP:-Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080
    • HTTPS 与排除:-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8443 -Dhttp.nonProxyHosts="localhost|127.0.0.1|*.example.com"
  • 示例启动:java -Djava.net.preferIPv4Stack=true -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -jar app.jar

四 防火墙与端口放行

  • firewalld(CentOS 7+ 常用):放行应用端口(示例 8080/TCP
    • 永久放行:sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
    • 重载规则:sudo firewall-cmd --reload
  • 验证端口连通:从外部 curl http://<服务器IP>:8080nc -vz <服务器IP> 8080

五 常见问题与排查清单

  • 接口名与配置不匹配:确认实际接口名(如 ens33 而非 eth0),编辑对应 ifcfg-<接口名>
  • 配置未生效:检查 ONBOOT=yes,重启网络或重连;使用 ip addrroute -ncat /etc/resolv.conf 核对地址、路由与 DNS。
  • NetworkManager 冲突:若手动改 ifcfg 文件,建议统一用 NetworkManager/nmcli/nmtui 管理,避免同时用多种工具造成覆盖。
  • IPv6 与地址选择:遇到解析或连通异常,可先用 -Djava.net.preferIPv4Stack=true 规避双栈差异。
  • 代理不通:核对代理主机/端口、协议(HTTP/HTTPS)、以及 http.nonProxyHosts 白名单。
  • 应用层超时:在代码中设置合理的连接/读取超时,避免线程长时间阻塞。

0