news 2026/4/23 13:24:27

保姆级教程:用腾讯云Ubuntu和frp搞定实验室电脑SSH远程访问(含后台运行配置)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:用腾讯云Ubuntu和frp搞定实验室电脑SSH远程访问(含后台运行配置)

零基础实现实验室SSH远程访问:腾讯云Ubuntu与frp实战指南

实验室电脑的计算资源常常因为无法远程访问而被闲置,而市面上商业化的远程解决方案要么价格昂贵,要么配置复杂。本文将手把手教你如何利用腾讯云Ubuntu服务器和开源工具frp,搭建一套稳定、安全的内网穿透系统,实现随时随地SSH访问实验室电脑。

1. 环境准备与基础配置

在开始之前,我们需要明确几个关键概念:内网穿透是指通过公网服务器中转,实现对没有公网IP的内网设备的访问;frp是一个高性能的反向代理工具,专门用于内网穿透;SSH则是我们最终要实现的远程访问协议。

1.1 腾讯云服务器选购与初始化

腾讯云提供了多种配置的Ubuntu服务器,对于个人使用场景,建议选择:

  • 基础配置:1核CPU、2GB内存、50GB SSD存储
  • 操作系统:Ubuntu Server 20.04 LTS或更新版本
  • 网络配置:按量计费的公网IP(1Mbps带宽足够SSH使用)

购买完成后,通过控制台重置实例密码,并记录下公网IP地址。首次登录建议使用腾讯云提供的WebShell,完成基础安全配置:

# 更新系统软件包 sudo apt update && sudo apt upgrade -y # 创建新用户(避免直接使用root) sudo adduser labuser sudo usermod -aG sudo labuser # 配置SSH密钥登录(更安全) ssh-keygen -t rsa -b 4096 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys

1.2 安全组规则配置

腾讯云的安全组相当于虚拟防火墙,需要手动放行相关端口:

端口号协议类型用途描述授权对象
22TCPSSH管理端口您的办公IP
7000TCPfrp服务端端口0.0.0.0/0
6000-6010TCPfrp客户端映射端口0.0.0.0/0

提示:生产环境中建议将授权对象限制为已知IP段,降低被扫描攻击的风险。

2. frp服务端部署与优化

frp采用C/S架构,我们需要先在腾讯云服务器上部署服务端程序。

2.1 下载与安装最新版frp

访问frp的GitHub发布页,获取最新稳定版的下载链接。以下以v0.51.3为例:

# 下载并解压frp wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz tar -zxvf frp_0.51.3_linux_amd64.tar.gz mv frp_0.51.3_linux_amd64 frp cd frp # 删除不必要的客户端文件 rm frpc frpc.ini

2.2 服务端配置文件详解

编辑frps.ini文件,建议配置以下参数:

[common] bind_port = 7000 authentication_method = token token = your_strong_password_here max_pool_count = 100 tls_only = true # 可选:Dashboard监控面板 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = dashboard_password

关键参数说明:

  • authentication_methodtoken:强制客户端认证,防止未授权访问
  • tls_only:强制TLS加密通信
  • max_pool_count:限制连接池大小,避免资源耗尽

2.3 服务端后台运行方案对比

测试环境可以直接运行./frps -c frps.ini,但生产环境需要更可靠的守护方案:

方案命令/配置优点缺点
nohupnohup ./frps -c frps.ini &简单快捷进程崩溃不会自动重启
systemd创建.service文件系统级管理配置稍复杂
supervisor安装配置supervisor监控重启功能完善需要额外安装软件

推荐使用systemd方案,创建/etc/systemd/system/frps.service

[Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=nobody Restart=on-failure RestartSec=5s ExecStart=/home/labuser/frp/frps -c /home/labuser/frp/frps.ini [Install] WantedBy=multi-user.target

启用并启动服务:

sudo systemctl daemon-reload sudo systemctl enable frps sudo systemctl start frps

3. 客户端配置与高级功能

实验室电脑(客户端)的配置同样重要,这决定了远程访问的稳定性和功能性。

3.1 客户端基础配置

客户端也需要下载对应版本的frp,配置frpc.ini

[common] server_addr = your_server_ip server_port = 7000 authentication_method = token token = your_strong_password_here tls_enable = true [lab_ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000 use_compression = true

3.2 多服务映射配置

除了SSH,实验室电脑可能还需要暴露其他服务:

# 远程桌面(需先安装xrdp) [lab_rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6001 # Jupyter Notebook [lab_jupyter] type = tcp local_ip = 127.0.0.1 local_port = 8888 remote_port = 6002

3.3 客户端自启动方案

Windows客户端可以使用计划任务或NSSM创建服务,Linux客户端推荐使用systemd:

# 创建客户端systemd服务 sudo tee /etc/systemd/system/frpc.service <<EOF [Unit] Description=Frp Client Service After=network.target [Service] Type=simple User=labuser Restart=on-failure RestartSec=5s ExecStart=/home/labuser/frp/frpc -c /home/labuser/frp/frpc.ini [Install] WantedBy=multi-user.target EOF # 启用服务 sudo systemctl daemon-reload sudo systemctl enable frpc sudo systemctl start frpc

4. 安全加固与性能调优

基础功能实现后,还需要考虑系统的安全性和稳定性。

4.1 安全增强措施

  • 端口敲门:配置iptables规则,只有按特定顺序访问端口后才开放SSH
  • Fail2Ban:安装配置fail2ban防止暴力破解
  • 双因素认证:为SSH添加Google Authenticator验证
  • IP白名单:限制只有特定IP可以连接frp服务端
# 安装fail2ban sudo apt install fail2ban -y # 配置frp专用的jail sudo tee /etc/fail2ban/jail.d/frp.conf <<EOF [frp] enabled = true filter = frp port = 7000,6000-6010 logpath = /var/log/frps.log maxretry = 3 bantime = 86400 EOF

4.2 性能监控与调优

通过frp的dashboard可以监控连接状态,但更深入的性能分析需要:

  1. 带宽监控:使用iftop或nethogs
  2. 连接数统计netstat -anp | grep frp
  3. 资源占用:top或htop查看CPU/内存使用

当发现性能瓶颈时,可以考虑:

  • 调整max_pool_count限制并发连接数
  • 启用use_compression减少带宽消耗
  • 对重要服务设置bandwidth_limit保证公平使用

5. 常见问题排查与解决方案

即使按照指南操作,实际部署中仍可能遇到各种问题。

5.1 连接问题排查流程

  1. 检查服务状态

    # 服务端 systemctl status frps journalctl -u frps -n 50 --no-pager # 客户端 systemctl status frpc journalctl -u frpc -n 50 --no-pager
  2. 测试端口连通性

    telnet your_server_ip 7000 nc -zv your_server_ip 6000
  3. 检查防火墙规则

    sudo iptables -L -n -v sudo ufw status

5.2 典型错误与解决

错误现象可能原因解决方案
连接超时安全组未放行端口检查腾讯云安全组规则
认证失败token不匹配核对服务端和客户端token
能连接但很快断开网络不稳定或NAT超时调整tcp_keepalive参数
高延迟服务器地域选择不当选择地理距离更近的服务器
客户端频繁重连网络波动或配置错误检查客户端日志和网络环境

5.3 日志分析技巧

frp的日志包含丰富的信息,关键字段解析:

2023/07/20 14:25:12 [W] [service.go:104] login to server failed: token in login doesn't match token from configuration
  • 时间戳:2023/07/20 14:25:12
  • 日志级别:[W]表示警告
  • 出错位置:service.go:104
  • 错误描述:token不匹配

对于高频出现的错误,可以配置logrotate进行日志轮转:

sudo tee /etc/logrotate.d/frp <<EOF /var/log/frps.log { daily missingok rotate 7 compress delaycompress notifempty create 640 root root postrotate systemctl restart frps endscript } EOF

6. 扩展应用场景

基础SSH远程访问实现后,这套系统还可以扩展更多实用功能。

6.1 远程桌面访问

配置xrdp服务后,可以通过frp暴露3389端口实现远程桌面:

# 安装xrdp sudo apt install xrdp -y sudo systemctl enable xrdp sudo systemctl start xrdp # 客户端frpc.ini添加 [lab_rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 6001

6.2 内网Web服务暴露

实验室可能运行着Jupyter Notebook、GitLab等Web服务:

[lab_jupyter] type = http local_ip = 127.0.0.1 local_port = 8888 custom_domains = jupyter.yourdomain.com [lab_gitlab] type = http local_ip = 127.0.0.1 local_port = 80 custom_domains = gitlab.yourdomain.com

6.3 文件传输方案

除了SSH自带的sftp,还可以考虑:

  1. rsync自动同步

    rsync -avz -e "ssh -p 6000" /local/path labuser@server_ip:/remote/path
  2. Web文件管理器安装filebrowser并通过frp暴露:

    curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash filebrowser -r / -p 8080
  3. Nextcloud私有云部署轻量级的Nextcloud实例,实现完整的云存储方案。

7. 备选方案与技术对比

虽然frp是优秀的解决方案,但了解替代方案有助于做出更合适的选择。

7.1 主流内网穿透工具对比

工具名称协议支持配置复杂度性能适用场景
frpTCP/UDP/HTTP中等通用场景
ngrokHTTP/TLS简单Web服务快速暴露
WireGuardUDP复杂极高全流量VPN
ZeroTierUDP简单虚拟局域网
SSH隧道TCP简单临时简单需求

7.2 云服务商特定解决方案

各大云厂商也提供了专有内网穿透服务:

  • 腾讯云:Cloud VPN连接
  • 阿里云:SAG(智能接入网关)
  • AWS:Client VPN
  • Azure:Point-to-Site VPN

这些方案通常配置更简单,但成本和灵活性不如自建frp方案。

7.3 选择建议

  • 短期临时使用:SSH隧道或ngrok
  • 长期稳定需求:frp自建方案
  • 全流量加密访问:WireGuard或ZeroTier
  • 企业级需求:云服务商专有方案

实际项目中,我通常会同时配置frp和WireGuard,前者用于服务暴露,后者用于全流量安全访问,两者互为备份。当frp因为某些端口限制无法使用时,WireGuard可以作为备用通道。

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

NVIDIA CMX:AI推理专用KV缓存存储架构解析

1. NVIDIA CMX&#xff1a;为下一代AI推理打造的高效上下文存储平台在当今AI领域&#xff0c;随着大模型参数规模突破万亿级别、上下文窗口扩展到数百万token&#xff0c;传统的存储架构正面临前所未有的挑战。作为一名长期跟踪AI基础设施演进的技术从业者&#xff0c;我见证了…

作者头像 李华
网站建设 2026/4/23 13:22:18

告别系统休眠困扰:MouseJiggler鼠标模拟工具的完整使用指南

告别系统休眠困扰&#xff1a;MouseJiggler鼠标模拟工具的完整使用指南 【免费下载链接】mousejiggler Mouse Jiggler is a very simple piece of software whose sole function is to "fake" mouse input to Windows, and jiggle the mouse pointer back and forth.…

作者头像 李华
网站建设 2026/4/23 13:19:17

3个步骤掌握SCP:从单细胞数据新手到分析专家

3个步骤掌握SCP&#xff1a;从单细胞数据新手到分析专家 【免费下载链接】SCP An end-to-end Single-Cell Pipeline designed to facilitate comprehensive analysis and exploration of single-cell data. 项目地址: https://gitcode.com/gh_mirrors/sc/SCP 单细胞测序…

作者头像 李华
网站建设 2026/4/23 13:19:17

快狐KIHU|43寸壁挂触摸一体机Windows系统多串口接口培训机构查询屏

在当今数字化转型的浪潮中&#xff0c;教育培训机构面临着如何提升服务质量和用户体验的重要挑战。[KIHU快狐]推出的43寸壁挂触摸一体机&#xff0c;以其出色的性能和多功能性&#xff0c;成为众多培训机构的理想选择。这款设备不仅配备了高性能的Windows系统&#xff0c;还提供…

作者头像 李华
网站建设 2026/4/23 13:15:44

从零到CI/CD:给你的GitLab服务器装上GitLab Runner(Shell Executor版)

从零构建GitLab CI/CD流水线&#xff1a;Shell Executor实战指南 当代码提交频率从每周一次提升到每天数次时&#xff0c;手动测试和部署就会成为团队效率的瓶颈。去年我们的前端团队就遇到了这样的困境——每次合并代码前需要手动运行30分钟测试套件&#xff0c;导致功能交付延…

作者头像 李华