阿里云+frp内网穿透工作站远程开机

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 等协议。利用 frp 和一个带有公网 IP 的云服务器作为中间跳板,可以实现内网穿透,不在家的时候也可以访问到家里面的工作站。有了这个缺口之后,在外面的时候,就可以再通过工作站,来访问家里面其他的机器了。

但是工作站功耗比较大,还是希望能够在需要的时候,通过远程开机,不用的时候再关机,可以省点电费来攒新的机器。这里使用的方案是利用工作站主板的来电自启动功能和智能开关来实现。

1 服务端部署(阿里云服务器)

1.1 下载 linux 服务端 frp

登录阿里云服务器,在 home 目录下 执行 wget 命令下载:

wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz

下载完毕,解压

tar -xvf frp_0.37.0_linux_amd64.tar.gz

解压完毕后进入目录,解压文件夹内:

frps 相关的文件是放在服务器端运行的可执行文件和配置文件。
frpc 相关的文件是放在客户端端运行的可执行文件和配置文件。

在服务端,frpc 相关的文件用不上,可以删掉。

1.2 修改服务端配置

修改配置文件

vim frps.ini[common]
bind_addr=0.0.0.0
bind_port = 6000
token=*****dashboard_port = 6500
dashboard_user = admin
dashboard_pwd = admin123

说明:
bind_addr 是服务器本地 IP,不改。
bind_port 是 frp 监听端口。
token 是验证 token 建议设置上。
dashboard_port 是 frp 面板端口。
dashboard_user, dashboard_pwd 是面板的账户密码。

除了bind_addr参数之外的其他参数,都可以根据需求自行修改,务必记住改过的参数。

1.3 配置项中用到的端口,需要在服务器上开启

由于阿里云有安全组配置,需要进入阿里云管理界面找到安全组配置,把 6500 端口开放。否则外网依然无法方位该端口。
除此之外,还需要把 frp 监听端口和 frp 面板端口的防火墙设置为开放状态,以及 ssh 的通信映射端口的安全组和防火墙都设置为开启状态,这里使用的 ssh 通信映射端口为 3333,这个设置是在后面客户端设置的,后面再说。

阿里云安全组端口开启没什么可说的,防火墙端口开启需要注意,有些操作系统可能在阿里云的网页里面找不到设置页面,需要通过命令行来设置:

# 这里以 6500 端口为例,下面的命令成功会输出 success 代表成功(–permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=6500/tcp --permanent
firewall-cmd --reload  #重新载入 返回 success 代表成功firewall-cmd --zone=public --list-ports # 查看所有打开的端口,注意看有没有自己需要打开的端口列出来
1.4 给服务器端 frps 赋予执行权限
sudo chmod 755 ./frps
1.5 运行服务端 frps
./frps -c ./frps.ini
1.6 访问 frp 控制面板

面板仅供参考,可用可不用。访问 http://服务器ip:6500

6500端口是上面配置的,使用上面配置的用户名和密码 admin/admin123 登录即可。

在这里插入图片描述

2 客户端配置(工作站)

  • 这里工作站用的是 ubuntu 系统,因此需要先下载和服务端一样的软件并解压:
wget https://github.com/fatedier/frp/releases/download/v0.37.0/frp_0.37.0_linux_amd64.tar.gz
tar -xvf frp_0.60.0_linux_amd64.tar.gz
  • frpc 客户端配置
    cdfrp_0.37.1_linux_amd64目录,对于客户端的配置可以直接先将frpsfrps.ini文件删除,配置frpc.ini:
[common]
server_addr = 公网服务器ip
server_port = 6000
token=******[ssh1]
type = tcp
local_ip = 工作站内网IP或者是 127.0.0.1
local_port = 22
remote_port = 3333

说明:

  • server_addr 就是阿里云服务器的公网IP

  • server_port/token 需要和服务端配置的 bind_port/token 一致

  • local_port 就是工作站的 ssh 端口,一般默认是 22

  • remote_port 就是需要映射到服务端用于通信映射的端口,这里设置的是 3333,可以使用其他端口,但是不要忘记在阿里云安全组和防火墙里都设置为开启

  • ssh 访问的是公网 ip,remote_port 是公网服务器的 port,访问 remote_port 后会转发到 local_por

  • 保存后就可以启动客户端了

# 前台启动
./frpc -c ./frpc.ini   
  • ssh远程连接内网服务器
    前面步骤顺利的话,到这里就可以使用局域网外面的机器来通过 ssh 连接家里面的工作站了。
ssh -p remote_port username@公网ip

不出意外的话,就可以使用任意一台可以访问到阿里云服务器公网 IP 的机器来通过 ssh 连接到工作站了。

3 其他配置

3.1 连接失败的可能原因
  • 前面使用到的端口存在没有在安全组和防火墙里面开启的
  • 服务端启动失败或者出现报错
  • 客户端启动失败或者出现报错
    • 如果出现报错,会在服务端和客户端都有报错信息
3.2 多端口转发

如果出现多人访问的情况,可能出现一个 local_port 和 remote_port 对应不够用的情况,可以在客户端配置多端口转发:

# 本地端口和远程端口可以指定多个范围,如下格式,且范围之间必须一一对应
local_port = 6010-6020,6022,6024-6028
remote_port = 16010-16020,16022,16024-16028

有的机器上会出现非法端口号的报错,也可以分开写:

[common]
server_addr = 公网服务器ip
server_port = 6000
token=******[ssh1]
type = tcp
local_ip = 工作站内网IP或者是 127.0.0.1
local_port = 22
remote_port = 3333[ssh2]
type = tcp
local_ip = 工作站内网IP或者是 127.0.0.1
local_port = 4000
remote_port = 4000[ssh3]
type = tcp
local_ip = 工作站内网IP或者是 127.0.0.1
local_port = 5000
remote_port = 5000

需要注意,上面的端口在客户端和服务端也都需要开启,否则还是会访问失败。

3.3 客户端和服务端设置后台运行和开机自启
  • 服务端
    由于云服务器可以一直开机,因此直接把启动任务的命令后台运行即可:
nohup ./frps -c frps.ini >/dev/null 2>&1 &
  • 客户端
    客户端可以把启动任务放后台运行,并且把这个任务设置为开机自启:
    编写启动脚本start_frpc.sh:
 nohup /path/to/frpc -c /path/to/frpc.ini >/dev/null 2>&1 &

修改脚本权限:

chmod +x start_frpc.sh

通过rc.local设置开机自启任务:

vim /etc/rc.local # 在 exit0 前面加一行
cd /path/to/start_frpc.sh && ./start_frpc.sh

重启即可。

4 设置通电自启

现在的主板大部分都有通电后自动开机的功能,这里使用的是华硕的主板,华硕主板 BIOS 中提供了选项 Restore AC Power Loss,可以允许用户按需调整,以实现断电恢复后具体的行为,比如断电恢复后开机、断电恢复后关机、保持之前的状态等。

  • Power On:开机,即断电恢复后,电脑开机。
  • Power Off (默认值):关机,即断电恢复后,电脑关机。
  • Last State:上一次的状态,即断电恢复后,恢复至上一次的状态。如下:
    • 如果断电之前是开机状态,包括 S3(Sleep,睡眠)/ S4(Hibernate,休眠)等,则断电恢复后,恢复至开机状态;
    • 如果断电之前是关机状态,则断电恢复后,恢复至关机状态,及保持关机状态。

需要注意到是,无论是正常关机后断电,还是意外断电,由于电源的设计,电并不会立即消失。因此在断电之后,需要等主板完全断电,再通电才会自启,可以断电后等半分钟左右。

实际上,此时就已经可以把工作站电源接在智能开关上,需要用了打开智能开关,不用了关掉即可。但是考虑到工作站上的设备比较多,频繁意外断电不好,尤其是机器上的几张卡和几个机械硬盘,因此在关机的时候还是尽量先用命令行关机,再通过智能开关断电比较安全。

现在终于可以愉快地玩耍了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1558433.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32单片机的恒温焊台的设计

本设计以STM32F401CBU6为主控控制芯片,包含电压采集模块,温度控制模块,输入模块和OLED显示模块等。使用EC11编码器设置温度,选择开关机时间,当焊台开机后,就可以设置所需要的温度,这时的手柄开始…

BricsCAD 24:智能绘图与自动化,加速设计流程

BricsCAD是一款功能丰富、易于使用且具有良好兼容性的CAD软件。bricscad 24 mac一款集2D绘图和3D建模于一体的CAD软件,它由比利时Bricsys NV公司研发,界面与AutoCAD相近,易于上手。 BricsCAD 24 for mac v24.1.05 注册密钥下载 BricsCAD 21 …

MES系统中的正向追溯与反向追溯管理

随着制造业的日益发展,生产过程中的质量控制和管理变得尤为关键。MES系统作为一种实现车间生产管理和控制的重要工具,其追溯功能在生产过程中起着至关重要的作用。 一、MES系统概述 MES系统是一套面向制造企业车间执行层的生产信息化管理系统。它通过对…

1-laravel 搭建与路由基础

文章目录 laravel 环境搭建安装工程的命令 基于laravel 开发访问默认欢迎页面第一路由 laravel 环境搭建 借助 phpstudy 搭建环境 安装工程的命令 C:\phpstudy_pro\WWW>composer create-project --prefer-dist laravel/laravel la-3 安装位置 安装…

使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务

使用 Go 和 Gin 框架构建简单的用户和物品管理 Web 服务 在本项目中,我们使用 Go 语言和 Gin 框架构建了一个简单的 Web 服务,能够管理用户和物品的信息。该服务实现了两个主要接口:根据用户 ID 获取用户名称,以及根据物品 ID 获…

大模型驱动机器狗——从UMI on Legs到Helpful DoggyBot:分别把机械臂装到机器狗背上、夹爪装到机器狗嘴里

前言 今年十一7天假期期间,一半的时间都在改本博客内的上一篇文章《从Fast-UMI到Diff-Control:分别改进UMI的硬件及其所用的Diffusion policy(含ControlNet详解)》,改完之后,接下来计划要写的博客包括且不限于 第1-2篇&#xff…

CDA数据分析师证书含金量到底如何?

为什么学习数据分析? 2024年,是一个被数据影响的时代。数据,如同无形的燃料,驱动着现代社会的运转。从全球互联网的用户每天产生的2.5亿TB数据,到制造业的传感器、金融交易、医疗病历等领域的海量信息,数据…

小红书爆款首图生成prompt v0.1

由于平时需要在小红书,抖音,公众号等自媒体平台发布一些内容,其中一个需求就是需要一个亮眼的首图,特别是小红书,首图效果好坏会直接决定推流的效果。 受到李继刚老师一系列 Prompt 的启发,创作了下面这个小…

牛客:xay loves count与1LL的用法

xay loves count 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码 #include <bits/stdc.h> using namespace std;int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr);int n;cin >> n;int a[1000005] {0};int cnt[1000005] …

Linux内核启动过程2

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

en造数据结构与算法C# 之 动态规划

动态规划 动态规划和分治法很像&#xff0c;都是拆解问题解决 分治法常用递归算法来写&#xff0c;但是动态规划和分治法的最大不同就是存入值 &#xff0c;AI真方便 钢条切割问题 其实该问题最平常&#xff0c;也是最直接的思想就是先把前项最赚米的方案总结出来&…

JDBC: 连接池

文章目录 没有连接池的现状连接池解决现状问题的原理连接池好处常用连接池的介绍Druid连接池DRUID简介Druid常用的配置参数Druid连接池基本使用API介绍 案例代码 没有连接池的现状 通过下图来分析一下我们目前jdbc程序的结构。 以前使用的jdbc的缺点&#xff1a; 1、操作数据库…

SeaTunnel如何创建Socket数据同步作业?

本文为Apache SeaTunnel Socket Connector的使用文档&#xff0c;旨在帮助用户快速理解和有效利用Socket Connector&#xff0c;助力用户的应用程序实现高效、稳定的网络通信。 Socket是应用层与TCP/IP协议族之间进行通信的中间软件抽象层&#xff0c;它是网络编程的基础&…

Vue工程化结构环境安装及搭建教程 : 之nvm

vue需要的环境&#xff1a; node.js : Node.js和Vue.js通常会一起使用。Node.js作为后端服务器&#xff0c;处理服务器端的逻辑和数据访问&#xff0c;而Vue.js则负责前端用户界面的构建和交互。通过Ajax通信&#xff0c;Vue.js应用程序向Node.js服务器发送请求&#xff0c;并…

扩展、包含、泛化-系统架构师(七十七)

1&#xff08;&#xff09;是系统分析阶段结束后得到的工作产品&#xff0c;&#xff08;&#xff09;是系统测试阶段完成后的工作产品。 问题1 A系统设计规格说明 B系统方案建议书 C系统规格说明 D单元测试数据 问题2 A验收测试计划 B测试标准 C系统测试计划 D操作手…

基于STM32单片机的配电室环境监测系统

本设计了一个基于STM32单片机的配电室环境监测系统。该系统可以实现配电室环境温湿度检测、烟雾浓度检测和火焰信息检测&#xff0c;这主要是为了防止火灾发生&#xff1b;本系统还加入了红外人体检测模块&#xff0c;可以检测配电室周围是否有行人经过&#xff0c;最终将传感器…

极狐GitLab 发布安全补丁版本 17.4.1、17.3.4、17.2.8

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

Autodesk Flame 2025:视觉特效制作解决方案

Autodesk Flame 2025是一款功能强大的视觉特效制作解决方案&#xff0c;由Autodesk公司开发。它提供了出色的性能&#xff0c;为视觉特效艺术家成功完成制作项目提供了所需的交互性和灵活性。 以下是Autodesk Flame 2025的一些主要特点和功能&#xff1a; 高效的三维合成环境&…

基于BERT的深度强化学习求解图上的组合优化问题(未完)

文章目录 Abstract1 Introduction2 文献综述2.1 相关的深度学习方法2.2 基于强化学习的方法3 Methodology3.1 问题定义和预备知识3.2 策略网络架构Abstract 组合优化,如图上的车辆路径和旅行商问题,是NP-hard问题,几十年来一直被研究。已经提出了许多方法来解决这些问题,包…

SSM高校体育器材管理系统-计算机毕业设计源码48197

摘 要 如今计算机行业的发展极为快速&#xff0c;搭载于计算机软件运行的数据库管理系统在各行各业得到了广泛的运用&#xff0c;其在数据管理方面具有的准确性和高效性为大中小企业的日常运营提供了巨大的帮助。在高校体育器材管理系统中&#xff0c;一开始对体育器材的管理…