Java在Linux上的网络配置技巧
一 系统识别与基础检查
二 在Java中执行临时网络变更
import java.io.*;
public class NetIfTemp {
public static void main(String[] args) throws Exception {
String iface = "eth0";
String ip = "192.168.1.100/24";
String gw = "192.168.1.1";
// 注意:需要足够的系统权限(如 sudo 或 root)
Process p = new ProcessBuilder("sudo", "ip", "addr", "add", ip, "dev", iface)
.redirectErrorStream(true).start();
p.waitFor();
drain(p.getInputStream());
p = new ProcessBuilder("sudo", "ip", "link", "set", iface, "up").start();
p.waitFor();
drain(p.getInputStream());
p = new ProcessBuilder("sudo", "ip", "route", "add", "default", "via", gw).start();
p.waitFor();
drain(p.getInputStream());
}
static void drain(InputStream in) throws IOException {
try (BufferedReader r = new BufferedReader(new InputStreamReader(in))) {
String l; while ((l = r.readLine()) != null) System.out.println(l);
}
}
}
三 永久化网络配置的两种落地方式
auto eth0
iface eth0 inet static
address 192.168.30.133
netmask 255.255.255.0
gateway 192.168.30.1
dns-nameservers 8.8.8.8 8.8.4.4
应用:systemctl restart networking。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
应用:systemctl restart network。nmcli con mod "eth0" ipv4.addresses 192.168.1.100/24
nmcli con mod "eth0" ipv4.gateway 192.168.1.1
nmcli con mod "eth0" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli con mod "eth0" ipv4.method manual
nmcli con down "eth0" && nmcli con up "eth0"
四 防火墙与安全策略
五 实战建议与排错清单