Java在Debian上的网络设置需结合系统网络配置和Java应用参数,核心步骤如下:
/etc/network/interfaces,添加如下内容(以eth0为例):auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
auto eth0
iface eth0 inet dhcp
sudo systemctl restart networking
/etc/netplan/01-netcfg.yaml:network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply
sudo apt install network-manager
sudo systemctl enable NetworkManager
nmcli con mod "有线连接" ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8" ipv4.method manual
nmcli con up "有线连接"
-D参数指定代理、DNS等:java -Dhttp.proxyHost=proxy.example.com -Dhttp.proxyPort=8080 -jar yourApp.jar
java.net.Socket类,IP和端口由系统网络决定。Socket socket = new Socket("192.168.1.1", 8080); // 依赖系统网络配置
NetworkInterface类获取可用网卡,动态选择IP。Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface ni = interfaces.nextElement();
System.out.println(ni.getName() + ": " + ni.getInetAddresses());
}
ping 8.8.8.8 # 测试互联网连通性
ip addr show # 查看IP配置是否生效
telnet或curl测试端口连通性:telnet example.com 80
SocketException,排查网络异常。netplan,避免混合使用/etc/network/interfaces和netplan导致冲突。wpasupplicant并编辑/etc/wpa_supplicant/wpa_supplicant.conf。ufw)限制Java应用的网络访问权限。参考来源: