Ubuntu Java网络配置指南
在Ubuntu系统中配置Java网络,主要分为系统网络基础配置和Java应用网络参数设置两部分。系统网络配置确保Ubuntu能正常联网,而Java网络参数则针对Java应用的网络行为(如代理、超时)进行调整。
系统网络是Java应用运行的基础,需先确保Ubuntu能正常访问网络。以下是命令行配置静态IP(推荐用于服务器)和无线连接的步骤:
编辑Netplan配置文件(Ubuntu 18.04及以上版本使用Netplan管理网络):
sudo nano /etc/netplan/01-netcfg.yaml
将文件内容修改为(根据实际情况替换IP、网关、DNS):
network:
version: 2
renderer: networkd
ethernets:
enp0s3: # 网卡名称(可通过`ip addr show`查看)
dhcp4: no # 关闭DHCP
addresses: ["192.168.1.100/24"] # 静态IP地址及子网掩码
gateway4: "192.168.1.1" # 网关地址
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"] # DNS服务器
保存文件(Ctrl+O→Enter→Ctrl+X),应用配置:
sudo netplan apply
验证网络连通性:
ip addr show enp0s3 # 检查IP是否生效
ping google.com # 测试网络连通性
查看可用WiFi:
sudo nmcli dev wifi
连接WiFi(替换wifi_name和wifi_passwd):
sudo nmcli dev wifi connect "wifi_name" password "wifi_passwd" ifname wlan0
验证连接状态:
nmcli device status # 查看WiFi是否连接
Ubuntu默认使用ufw防火墙,需允许Java应用访问网络(如HTTP/HTTPS):
sudo ufw allow out to any port 80 # 允许HTTP
sudo ufw allow out to any port 443 # 允许HTTPS
sudo ufw enable # 启用防火墙(若未启用)
Java应用的网络行为(如代理、超时)需通过系统属性设置,以下是常见配置方式:
启动Java应用时,添加以下参数:
java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 \ # HTTP代理
-Dhttps.proxyHost=proxy.example.com -Dhttps.proxyPort=8080 \ # HTTPS代理
-Dsun.net.client.defaultConnectTimeout=5000 \ # 连接超时(毫秒)
-Dsun.net.client.defaultReadTimeout=5000 \ # 读取超时(毫秒)
-jar your-application.jar
若代理需要认证,添加用户名和密码:
-Dhttp.proxyUser=username -Dhttp.proxyPassword=password \
-Dhttps.proxyUser=username -Dhttps.proxyPassword=password \
在终端中设置环境变量(临时生效,重启终端失效):
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
export no_proxy="localhost,127.0.0.1,*.example.com" # 不走代理的主机
export JAVA_OPTS="-Dsun.net.client.defaultConnectTimeout=5000 -Dsun.net.client.defaultReadTimeout=5000"
启动Java应用时加载环境变量:
java $JAVA_OPTS -jar your-application.jar
若需硬编码网络参数,可在Java代码中使用System.setProperty:
public class NetworkConfig {
public static void main(String[] args) {
System.setProperty("http.proxyHost", "proxy.example.com");
System.setProperty("http.proxyPort", "8080");
System.setProperty("https.proxyHost", "proxy.example.com");
System.setProperty("https.proxyPort", "8080");
System.setProperty("sun.net.client.defaultConnectTimeout", "5000");
System.setProperty("sun.net.client.defaultReadTimeout", "5000");
// 测试网络连接
try {
InetAddress address = InetAddress.getByName("www.google.com");
System.out.println("Connection successful!");
} catch (UnknownHostException e) {
System.err.println("Connection failed: " + e.getMessage());
}
}
}
无法连接网络:
ip addr show确认IP是否正确)。ping google.com)。sudo ufw status)。Java应用无法访问代理:
proxy.example.com是否可达)。连接超时:
sun.net.client.defaultConnectTimeout和sun.net.client.defaultReadTimeout的值(如从5000ms调整为10000ms)。通过以上步骤,可完成Ubuntu系统下Java网络的基本配置。根据实际需求(如动态IP、代理认证),调整相应参数即可。