当前位置:首页 > Linux > 正文

如何远程控制linux主机

SSH协议使用终端工具连接,或部署堡垒机/跳板机实现安全远程管控

是多种远程控制Linux主机的方法及相关操作细节:

SSH方式

  1. 安装与启动服务端:以Ubuntu为例,执行sudo apt install openssh-server来安装SSH服务端,大多数Linux发行版默认已安装客户端,但若未安装可按需进行操作,安装完成后,可通过终端输入sudo service sshd status检查服务是否启动,若显示“active (running)”,则表明SSH服务已正常启动;也可通过more /etc/ssh/sshd_config查看配置文件中的端口号,通常默认为22。
  2. 从不同系统进行连接
    • MacOS或Linux本地终端:先获取Linux主机在局域网中的IP地址(使用ifconfig命令,若无该命令则需先执行sudo apt install net-tools),然后直接在终端输入ssh linux用户名@IP地址即可建立连接,若出现“Host key verification failed”错误,可在本地终端运行ssh-keygen -R IP地址解决,为避免每次输入密码,可在本地生成公钥(ssh-keygen),并将公钥推送到服务器(ssh-copy-id linux用户名@IP地址)。
    • Windows系统:推荐使用Putty工具,打开Putty后,在“Host Name”处填入服务器的IP地址,端口默认为22(若修改过则填写相应端口),VS Code也支持SSH远程控制,对于习惯使用该编辑器的用户较为方便。
  3. 文件传输辅助命令:当需要传输多个文件到Linux服务器时,可以使用scp命令,例如scp ~/Desktop/{a,b}.py 用户名@IP地址:~/Desktop;若要将服务器上的文件下载回本地,则使用scp 用户名@IP地址:~/Desktop/b.py ~/Desktop/result,如果在云端执行涉及图形界面的操作(如打开浏览器),需要在命令前加上export DISPLAY=:0;来设置显示环境变量,完整命令格式为ssh 用户名@IP地址 "export DISPLAY=:0; python3 a.py"

VNC方式

  1. 安装VNC Server:在目标Linux主机上执行sudo apt install vnc-server xrdp安装VNC服务器和相关组件。
  2. 客户端连接:安装完成后,可通过VNC客户端软件(跨平台)或者Windows自带的远程桌面功能连接到目标主机,这种方式适合需要图形化界面进行操作的场景,例如运行带有GUI的应用程序。

Remote X实现远程桌面控制

  1. 允许远程主机联网X server:假设本地主机IP为A,远程主机IP为B,在本地主机的任意一个xterm中执行xhost+ B,此步骤用于允许远程主机与本地主机的X server建立连接,若不指定具体IP地址,意味着完全放开权限,存在安全风险,需谨慎操作。
  2. 确认本地主机Xfs运行状态:使用ps命令检查本地主机的Xfs进程是否正常运行,确保其具备接收远程请求的能力。
  3. 登录远程主机并设置DISPLAY变量:从本地主机通过网络工具(如telnet、ssh、rsh等)登录到远程主机,然后在远程主机上设置export DISPLAY=A:0,其中A是本地主机的IP地址,完成这些设置后,就可以在远程主机上使用X应用程序,其图形界面会显示在本地主机上。

基于虚拟局域网的广域网远程控制

  1. Zerotier搭建虚拟局域网
    • 注册与创建网络:前往Zerotier官网注册账户并创建一个虚拟局域网,获取网络识别码。
    • 设备端安装与配置:在各设备(包括Linux主机)上安装Zerotier客户端,对于Linux系统,可使用一键安装命令curl -s https://install.zerotier.com | sudo bash;加入网络的命令为sudo zerotier-cli join 识别码;启动服务的命令是sudo service zerotier-one start;若需关闭服务,则执行sudo service zerotier-one stop,删除Zerotier可使用sudo rm -r /var/lib/zerotier-one,搭建好虚拟局域网后,手机、Ubuntu主机、Windows主机等都可以通过SSH或者远程桌面进行控制。
  2. 搭建FRP服务器实现内网穿透:该方法需要一台VPS云服务器作为跳板,具体设置相对复杂,但网上有详细的攻略可供参考,通过FRP可以将内网中的Linux主机暴露到公网,从而实现远程访问,带宽较好的VPS价格较高,若仅用于学习,可选择带宽较低的云主机(如1M带宽的年费约100元左右)。
  3. 使用远程桌面软件:常见的远程桌面软件有向日葵等,虽然免费版的清晰度可能不高,但支持无人值守且可连接多台设备,适合长期开机的家用小主机场景,需要注意的是,部分软件可能存在功能限制或安全隐患,需根据实际情况选择。

花生壳实现外网访问

  1. 安装客户端:进入花生壳官网,下载并安装适用于Linux平台的客户端。
  2. 注册与激活:完成安装后进行注册,获得花生壳登录帐号SN及密码。
  3. 端口映射设置:在Windows端的花生壳web管理后台登录并激活服务,于【内网穿透】界面添加端口映射,映射类型选择TCP,内网主机及端口填写Linux系统的局域网IP及SSH端口号(通常为22)。
  4. 远程连接:映射完成后,花生壳会生成一个外网访问地址,在Windows电脑上安装安全终端模拟软件XShell,新建会话时在主机中输入花生壳映射生成的域名,端口号输入生成域名后的随机端口号(不再是原来的22),点击确定即可进入远程Linux电脑的命令状态,执行相关操作。

Web管理工具

部分Linux发行版提供了基于Web的管理界面(如Cockpit),只需在浏览器中输入对应的URL即可访问,这种方式直观易用,适合不熟悉命令行的用户进行基本的系统监控和管理任务。

以下是两个常见问题及解答:

FAQs

Q1:SSH连接时提示“Connection refused”怎么办?
A:首先检查目标机器的SSHD服务是否正常运行(sudo systemctl status sshd);确认防火墙未阻止端口(默认22),必要时执行 sudo ufw allow 22;若曾更改过SSH端口,需确保使用新端口号连接,验证IP地址和主机名是否正确,排除网络不通的情况。

Q2:如何安全地启用无密码登录?
A:推荐使用ED25519算法生成密钥对(ssh-keygen -t ed25519),将公钥复制到目标机器的 ~/.ssh/authorized_keys 文件中,务必设置严格的权限(chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys),防止未授权访问,避免在公共网络中暴露私钥文件。

通过上述方法,可根据实际需求选择合适的远程控制方案,实现对Linux主机

0