上一篇
如何远程控制linux主机
- Linux
- 2025-08-04
- 1
SSH协议使用终端工具连接,或部署堡垒机/跳板机实现安全远程管控
是多种远程控制Linux主机的方法及相关操作细节:
SSH方式
- 安装与启动服务端:以Ubuntu为例,执行
sudo apt install openssh-server
来安装SSH服务端,大多数Linux发行版默认已安装客户端,但若未安装可按需进行操作,安装完成后,可通过终端输入sudo service sshd status
检查服务是否启动,若显示“active (running)”,则表明SSH服务已正常启动;也可通过more /etc/ssh/sshd_config
查看配置文件中的端口号,通常默认为22。 - 从不同系统进行连接
- 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远程控制,对于习惯使用该编辑器的用户较为方便。
- MacOS或Linux本地终端:先获取Linux主机在局域网中的IP地址(使用
- 文件传输辅助命令:当需要传输多个文件到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方式
- 安装VNC Server:在目标Linux主机上执行
sudo apt install vnc-server xrdp
安装VNC服务器和相关组件。 - 客户端连接:安装完成后,可通过VNC客户端软件(跨平台)或者Windows自带的远程桌面功能连接到目标主机,这种方式适合需要图形化界面进行操作的场景,例如运行带有GUI的应用程序。
Remote X实现远程桌面控制
- 允许远程主机联网X server:假设本地主机IP为A,远程主机IP为B,在本地主机的任意一个xterm中执行
xhost+ B
,此步骤用于允许远程主机与本地主机的X server建立连接,若不指定具体IP地址,意味着完全放开权限,存在安全风险,需谨慎操作。 - 确认本地主机Xfs运行状态:使用
ps
命令检查本地主机的Xfs进程是否正常运行,确保其具备接收远程请求的能力。 - 登录远程主机并设置DISPLAY变量:从本地主机通过网络工具(如telnet、ssh、rsh等)登录到远程主机,然后在远程主机上设置
export DISPLAY=A:0
,其中A是本地主机的IP地址,完成这些设置后,就可以在远程主机上使用X应用程序,其图形界面会显示在本地主机上。
基于虚拟局域网的广域网远程控制
- 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或者远程桌面进行控制。
- 搭建FRP服务器实现内网穿透:该方法需要一台VPS云服务器作为跳板,具体设置相对复杂,但网上有详细的攻略可供参考,通过FRP可以将内网中的Linux主机暴露到公网,从而实现远程访问,带宽较好的VPS价格较高,若仅用于学习,可选择带宽较低的云主机(如1M带宽的年费约100元左右)。
- 使用远程桌面软件:常见的远程桌面软件有向日葵等,虽然免费版的清晰度可能不高,但支持无人值守且可连接多台设备,适合长期开机的家用小主机场景,需要注意的是,部分软件可能存在功能限制或安全隐患,需根据实际情况选择。
花生壳实现外网访问
- 安装客户端:进入花生壳官网,下载并安装适用于Linux平台的客户端。
- 注册与激活:完成安装后进行注册,获得花生壳登录帐号SN及密码。
- 端口映射设置:在Windows端的花生壳web管理后台登录并激活服务,于【内网穿透】界面添加端口映射,映射类型选择TCP,内网主机及端口填写Linux系统的局域网IP及SSH端口号(通常为22)。
- 远程连接:映射完成后,花生壳会生成一个外网访问地址,在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主机