Debian Java远程连接主要有SSH、远程调试、RMI和RESTful服务等方式,以下是具体配置方法:
sudo apt update && sudo apt install openssh-server
sudo service ssh restart # 启动服务
sudo ufw allow 22/tcp # 开放SSH默认端口22
sudo ufw status # 检查状态
<dependency>
<groupId>com.github.mwiede</groupId>
<artifactId>jsch</artifactId>
<version>0.2.19</version>
</dependency>
import com.jcraft.jsch.*;
public class SSHExample {
public static void main(String[] args) {
String host = "远程IP";
String user = "用户名";
String password = "密码";
int port = 22;
try {
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
// 执行命令
ChannelExec exec = (ChannelExec) session.openChannel("exec");
exec.setCommand("ls -l");
exec.connect();
// 传输文件(SFTP)
ChannelSftp sftp = (ChannelSftp) session.openChannel("sftp");
sftp.connect();
sftp.put("本地文件路径", "远程路径");
} catch (Exception e) {
e.printStackTrace();
}
}
}
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar your-app.jar
Run → Edit Configurations → + → Remote → 输入远程IP和端口(如5005)。Run → Debug Configurations → Remote Java Application → 配置主机和端口。sudo ufw allow 5005/tcp # 若使用非默认端口需指定
sudo apt install tightvncserver
vncserver :1 # 启动服务(显示端口:1对应5901端口)
192.168.1.100:5901)。wget https://download.teamviewer.com/download/TeamViewer_Linux.deb
sudo dpkg -i TeamViewer_Linux.deb
// 远程接口
public interface HelloService extends java.rmi.Remote {
String sayHello() throws java.rmi.RemoteException;
}
// 实现类
public class HelloServiceImpl extends java.rmi.server.UnicastRemoteObject implements HelloService {
public HelloServiceImpl() throws java.rmi.RemoteException {
super();
}
@Override
public String sayHello() {
return "Hello, RMI!";
}
}
import java.rmi.registry.LocateRegistry;
public class Server {
public static void main(String[] args) {
try {
HelloService service = new HelloServiceImpl();
LocateRegistry.createRegistry(1099).bind("HelloService", service);
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.rmi.registry.LocateRegistry;
public class Client {
public static void main(String[] args) {
try {
HelloService service = (HelloService) LocateRegistry.getRegistry("远程IP", 1099).lookup("HelloService");
System.out.println(service.sayHello());
} catch (Exception e) {
e.printStackTrace();
}
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class ApiController {
@GetMapping("/api/hello")
public String hello() {
return "Hello, REST!";
}
}
curl或HTTP客户端工具:curl http://远程IP:8080/api/hello