news 2026/8/22 1:34:05

ubuntu通过公网Ubuntu服务器远程桌面连接私网IPUbuntu

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ubuntu通过公网Ubuntu服务器远程桌面连接私网IPUbuntu

私网Ubuntu主机-------Ubuntu服务器---------私网IP Ubuntu主机

第一部分:公网 Ubuntu 服务器部署 frps(服务端)

步骤 1:安装依赖并下载 frp

# 切换root(避免频繁sudo) sudo -i # 安装wget(若未安装) apt update && apt install wget -y # 查看服务器架构(适配frp下载) ARCH=$(arch | sed 's/x86_64/amd64/; s/aarch64/arm64/; s/armv7l/arm/') # 下载frp(v0.52.3为稳定版,可替换最新版本) wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_${ARCH}.tar.gz -O frp.tar.gz # 解压并移动到系统目录 tar -zxvf frp.tar.gz FRP_DIR=$(ls | grep frp_0.52.3_linux_) mv ${FRP_DIR} /usr/local/frp # 清理压缩包 rm -f frp.tar.gz

步骤 2:配置 frps.ini

# 创建并编辑frps配置文件 cat > /usr/local/frp/frps.ini << EOF [common] # frp通信端口(需开放安全组) bind_port = 7000 # 自定义密钥(客户端必须一致,建议设复杂值) token = MyFrpSecret123! # 可选:控制台(监控连接状态) dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin # 日志配置(便于排查问题) log_file = /var/log/frps.log log_level = info log_max_days = 7 EOF

步骤 3:创建 systemd 服务(开机自启 + 崩溃重启)

# 编写frps服务文件 cat > /etc/systemd/system/frps.service << EOF [Unit] Description=FRP Server Service After=network.target network-online.target Wants=network-online.target [Service] Type=simple User=root ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini ExecReload=/bin/kill -HUP \$MAINPID Restart=on-failure RestartSec=5s LimitNOFILE=infinity [Install] WantedBy=multi-user.target EOF

步骤 4:启动 frps 并验证

# 重载systemd systemctl daemon-reload # 启动frps systemctl start frps # 设置开机自启 systemctl enable frps # 验证服务状态(显示active(running)则正常) systemctl status frps # 验证端口监听(显示7000端口LISTEN则正常) ss -tulnp | grep 7000 # 开放防火墙端口(若启用ufw) ufw allow 7000/tcp ufw allow 6000/tcp ufw allow 6389/tcp ufw allow 7500/tcp ufw reload

验证控制台(可选)

浏览器访问 http://公网服务器IP:7500,输入账号admin、密码admin,能看到 frps 状态则配置成功。

我这里已经配置成功了。

-------------------------------------

第二部分:远程 Ubuntu 主机部署 frpc+XRDP(客户端 + 桌面服务)

步骤 1:安装 XRDP 桌面服务(解决黑屏 / 权限问题)

# 切换root sudo -i # 更新软件源 apt update && apt upgrade -y # 安装XRDP(Ubuntu桌面版无需额外装桌面) apt install xrdp -y # 修复Ubuntu 22.04+/24.04 Wayland黑屏问题 sed -i 's/^#WaylandEnable=false/WaylandEnable=false/' /etc/gdm3/custom.conf # 给xrdp添加ssl证书权限(避免连接失败) adduser xrdp ssl-cert # 重启XRDP并设置开机自启 systemctl restart xrdp systemctl enable xrdp # 放行本地防火墙3389端口(XRDP默认) ufw allow 3389/tcp ufw reload # 验证XRDP状态(active(running)则正常) systemctl status xrdp

步骤 2:安装并配置 frpc(frp 客户端)

# 安装wget(若未安装) apt install wget -y # 下载同版本frp(和服务端一致) ARCH=$(arch | sed 's/x86_64/amd64/; s/aarch64/arm64/; s/armv7l/arm/') wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_${ARCH}.tar.gz -O frp.tar.gz # 解压并移动到系统目录 tar -zxvf frp.tar.gz FRP_DIR=$(ls | grep frp_0.52.3_linux_) mv ${FRP_DIR} /usr/local/frp rm -f frp.tar.gz # 配置frpc.ini(替换公网服务器IP) cat > /usr/local/frp/frpc.ini << EOF [common] # 公网服务器IP server_addr = braveboy.asia # frp通信端口(和服务端bind_port一致) server_port = 7000 # 密钥(和服务端token一致) token = MyFrpSecret123! # 日志配置 log_file = /var/log/frpc.log log_level = info log_max_days = 7 # SSH映射(可选,用于命令行连接) [remote_ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 # XRDP映射(核心:远程桌面端口) [remote_xrdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6389 EOF

步骤 3:创建 frpc systemd 服务(开机自启)

cat > /etc/systemd/system/frpc.service << EOF [Unit] Description=FRP Client Service After=network.target network-online.target Wants=network-online.target [Service] Type=simple User=root ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini ExecReload=/bin/kill -HUP \$MAINPID Restart=on-failure RestartSec=5s LimitNOFILE=infinity [Install] WantedBy=multi-user.target EOF

步骤 4:启动 frpc 并验证

# 重载systemd systemctl daemon-reload # 启动frpc systemctl start frpc # 设置开机自启 systemctl enable frpc # 验证状态(active(running)则正常) systemctl status frpc # 验证日志(无报错则正常) tail -f /var/log/frpc.log

第三部分:本地 Ubuntu 主机连接远程桌面

步骤 1:安装 Remmina(Ubuntu 原生远程桌面客户端)

# 安装Remmina(若未预装) sudo apt update && sudo apt install remmina remmina-plugin-rdp -y

步骤 2:配置 Remmina 连接远程桌面

  1. 打开 Remmina:应用列表搜索「Remmina」或终端执行 remmina;
  2. 新建连接:点击左上角「+」号,填写以下参数:
  3. 配置项取值名称自定义(如「远程 Ubuntu 桌面」)协议RDP - Remote Desktop Protocol服务器公网服务器 IP:6389(如 1.2.3.4:6389)用户名远程 Ubuntu 主机的登录用户名(如 ubuntu)密码远程 Ubuntu 主机的登录密码
  4. 保存并连接:点击「保存」→「连接」,首次连接会弹出证书提示,选择「确认」即可进入远程桌面。

如果出现这个界面的时候,填写需要连接到的私网IP的用户名和密码就好了。

看我已经连接到了;;;;注意的是最后如果出现这个界面的时候

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:41:41

断电重启,配置如初:16位高精度采集模块,免除重复设置烦恼

16位AD模拟量采集模块&#xff0c;其核心功能是将输入的连续模拟信号(如电压、电流)转换为16位精度的数字信号。一、采集性能&#xff1a;中高精度的实用化平衡 分辨率与精度适配&#xff1a;16 位 AD 芯片提供 65536 级量化精度&#xff0c;采集误差通常控制在 0.1% FS~0.2% F…

作者头像 李华
网站建设 2026/8/19 23:34:18

26、线程与文件管理:基础与高级操作

线程与文件管理:基础与高级操作 在计算机编程中,线程操作和文件管理是非常重要的两个方面。下面我们将详细介绍线程取款操作以及文件和目录管理的相关知识。 线程取款操作 在多线程环境中,对共享资源的操作需要进行同步控制,以避免数据竞争和不一致的问题。下面是一个取…

作者头像 李华
网站建设 2026/8/21 13:26:04

29、Unix 文件操作与管理全解析

Unix 文件操作与管理全解析 1. 文件删除与移动操作 1.1 文件删除 在 Unix 系统中, remove() 函数用于从文件系统中删除指定路径的文件或目录。其函数原型如下: #include <stdio.h> int remove (const char *path);若操作成功, remove() 会从文件系统中删除 …

作者头像 李华
网站建设 2026/8/21 4:34:04

30、深入理解 inotify 与内存管理

深入理解 inotify 与内存管理 1. inotify 简介与基本操作 inotify 是 Linux 系统中用于监控文件系统事件的机制。我们可以向一个已有的 inotify 实例添加新的监控项。示例代码如下: int wd; wd = inotify_add_watch (fd, "/etc", IN_ACCESS | IN_MODIFY); if (w…

作者头像 李华
网站建设 2026/8/21 7:38:33

32、深入理解内存管理:从严格别名到高级调试

深入理解内存管理:从严格别名到高级调试 1. 严格别名规则 在C和C++编程中,类型转换可能会违反严格别名规则,这是一个常被误解的概念。严格别名规则要求对象只能通过以下几种方式访问: - 对象的实际类型。 - 实际类型的限定版本(如 const 或 volatile )。 - 实际…

作者头像 李华
网站建设 2026/8/21 11:21:29

数美CTO梁堃:从人机对抗到智能进化,AI风控的下半场

本文转自《甲子光年》&#xff0c;作者王艺多2015 年&#xff0c;当移动互联网的流量红利见顶&#xff0c;黑灰产还停留在利用“按键精灵”和“群控设备”进行粗糙薅羊毛的阶段。十年过去&#xff0c;当我们站在 2025 年的门槛上回望&#xff0c;会发现那只是风控历史上的冷兵器…

作者头像 李华