sudo apt install net-tools # 安装ifconfig等工具(部分新系统需用ip命令)
/etc/netplan/01-netcfg.yaml
),示例静态IP配置:network:
version: 2
ethernets:
enp4s1: # 网卡名,可通过`ip addr`查看
dhcp4: no
addresses: [192.168.1.100/24] # 静态IP+子网掩码
gateway4: 192.168.1.1 # 网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS
应用配置:sudo netplan apply
ping google.com # 测试外网连通性
ip addr show # 查看IP配置是否生效
sudo apt install openjdk-11-jdk # 推荐使用OpenJDK
java -version # 验证安装
~/.bashrc
,添加:export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
source ~/.bashrc # 使配置生效
import java.io.*;
import java.net.*;
public class TCPServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(12345); // 监听端口
System.out.println("Server started on port 12345");
while (true) {
Socket socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
String inputLine;
while ((inputLine = in.readLine()) != null) {
System.out.println("Received: " + inputLine);
out.println("Server response: " + inputLine);
}
socket.close();
}
}
}
import java.io.*;
import java.net.*;
public class TCPClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 12345); // 连接服务器
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("Hello, Server!"); // 发送消息
System.out.println("Server says: " + in.readLine()); // 接收响应
socket.close();
}
}
javac TCPServer.java TCPClient.java # 编译
java TCPServer & # 后台运行服务器
java TCPClient # 运行客户端
sudo ufw allow 12345/tcp # 允许TCP端口12345(根据实际端口修改)
sudo ufw status # 查看防火墙规则
System.setProperty("http.proxyHost", "proxy.example.com");
System.setProperty("http.proxyPort", "8080");
lsof -i :12345
查看占用进程,或更换端口。ufw
或iptables
开放对应端口。参考来源: