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

mini主机通过内网穿透做成服务器

文章目录

  • 简介
  • 1.ubuntu 的ssh server 安装
  • 2.ubuntu 的docker 安装
  • 3.ubuntu的curl的安装
  • 4.ubuntu的frp客户端安装
  • 5.ubuntu的docker compose安装
  • 6.声明

简介

  1. 主要目的
    本地设备做成服务器,实现ssh远程登录以及内网穿透
  2. 设备总成本1千多元(其实部分设备可以旧电脑的代替比如固态,内存条,主板,cpu之类的)
设备金额
16g ddr4 内存条100多元
1t 固态300多元
极摩客g3599元
网线 一根4元
  1. 本地服务器ubuntu 配置总览
    • 安装ssh server 使ubuntu能够被远程登录
    • 安装docker 方便不同环境项目快速运行
    • 安装curl 方便请求访问及下载安装
    • 安装frp客户端,使用内网穿透,方便外网访问(可以使用花生壳,coplar等第三方代替)
    • 安装docker compose 方便快速部署多个项目

1.ubuntu 的ssh server 安装

全称为Secure Shell,是一种网络协议,用于在本地计算机和远程服务器之间建立加密的通信通道

# 1.更新软件包列表
sudo apt update# 2.安装open ssh 服务
sudo apt install openssh-server# 3.查看状态
sudo systemctl status ssh# 4.设置服务开机启动
sudo systemctl enable ssh# 5.修改端口(内网穿透时防止端口冲突) 把Port 22改为Port 8022
vim /etc/ssh/sshd_config# 6.允许防火墙
sudo ufw allow 8022/tcp# 7.服务重启
sudo systemctl restart ssh

2.ubuntu 的docker 安装

旧版docker 卸载(一般不需要)

sudo apt-get remove docker docker-engine docker.io containerd runc

Docker是一组平台即服务(PaaS)的产品。它基于操作系统层级的虚拟化技术,将软件与其依赖项打包为容器。

本次使用官方脚本安装

# 1.ubuntu脚本安装docker
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh 
# 2.修改docker 镜像源
mkdir -p /etc/docker/daemon.json
vim /etc/docker/daemon.json
# 输入以下
{"registry-mirrors": ["https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com","https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.1panel.live"],"log-driver":"json-file","log-opts": {"max-size":"500m", "max-file":"3"}
}# 3.生效及重启dockersystemctl daemon-reload && systemctl restart docker

3.ubuntu的curl的安装

# 1.安装
sudo apt install curl
# 2.验证
curl --version

4.ubuntu的frp客户端安装

1.可以使用如花生壳,cploar等第三方内网穿透工具代替,但受限于第三方的外网服务器
2.frp是开源内网穿透工具,服务端和客户端都需要搭建,安全性最高,但需要自己的外网服务器
3.frpc.ini配置已升级为frpc.homl

# 1.查看本地内网ip
ifconfig# 2.创建映射目录
mkdir -p /var/frp/frpc.homlvim /var/frp/frpc.homl# 3.frpc 运行
docker run --restart=always --network host -d -v /var/frp/frpc.homl:/etc/frp/frpc.homl --name frpc snowdreamtech/frpc 

3.frpc.homl 内容如下

serverAddr = "公网ip"#公网ip
serverPort = 7000 # 
auth.token = "123456" # token 没有不用设置[[proxies]]
name = "web" # 名字自定义
type = "http" # 协议类型
localIP = "127.0.0.1" # 本地127.0.0.1,或者内网的ip地址
localPort = 8080  # http服务的端口
customDomains = ["域名或公网ip地址"] # 域名or公网ip[[proxies]]
name = "ssh"
type = "tcp" # ssh属于tcp
localIP = "127.0.0.1" # 本地127.0.0.1,或者内网的ip地址
localPort = 8022 # 本地服务端口
remotePort = 8022 #外网映射端口

5.ubuntu的docker compose安装

Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排

# 安装 Docker Compose
# 查看最新版本https://github.com/docker/compose/releasessudo curl -L "https://github.com/docker/compose/releases/download/v2.30.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-composedocker-compose --version

6.声明

本文内容均为Bright_ Chen原创,版权均属于Bright_ Chen所有,未经授权,不得转载、摘编、复制或建立镜像。我们尊重他人知识版权,如有引用、摘录,请务必注明来源及作者,否则我们将依法追究其侵权责任。

根据《中华人民共和国著作权法》、《信息网络传播权保护条例》等相关法律法规,任何单位或个人不得擅自复制、转载、链接、抓取或以其他方式使用本站内容;已授权或合作的单位或个人,应在授权范围内使用,并注明来源。

对于违反本声明者,Bright_ Chen保留追究其法律责任的权利。同时,对于恶意抄袭、盗版等侵犯版权的个人和组织,我们将采取包括但不限于法律诉讼、公开曝光等措施维护合法权益。

我们鼓励和支持合法合规的信息共享,对于希望合法使用本文内容的机构或个人,请事先通过以下联系方式与我们取得联系,获取合法授权:

联系邮箱:1024347104@qq.com
感谢您对原创内容的尊重与支持!

相关文章:

mini主机通过内网穿透做成服务器

文章目录 简介1.ubuntu 的ssh server 安装2.ubuntu 的docker 安装3.ubuntu的curl的安装4.ubuntu的frp客户端安装5.ubuntu的docker compose安装6.声明 简介 主要目的 本地设备做成服务器,实现ssh远程登录以及内网穿透设备总成本1千多元(其实部分设备可以…...

智能桥梁安全运行监测系统守护桥梁安全卫士

一、方案背景 桥梁作为交通基础设施中不可或缺的重要组成部分,其安全稳定的运行直接关联到广大人民群众的生命财产安全以及整个社会的稳定与和谐。桥梁不仅是连接两地的通道,更是经济发展和社会进步的重要纽带。为了确保桥梁的安全运行,桥梁安…...

Selenium和Pyppeteer有什么区别?

Selenium和Pyppeteer都是自动化测试工具,它们可以模拟用户在浏览器中的操作,但它们之间存在一些关键的区别: Selenium 跨浏览器支持:Selenium支持多种浏览器,包括Chrome、Firefox、Internet Explorer等,而…...

82从零开始学Java之异常处理机制简介

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 大家可以想一个问题,有没有谁能够做到开发项目时一个错误都不发生?如果谁能够做到这一点,那他可能真的是“天才”!但实际上,任何人都不可能在项目开发…...

Git上传本地项目到远程仓库(gitee/github)

目录 序言一、创建git本地版本库二、连接远程仓库(以gitee为例)三、将项目提交到git(本地)版本库1.由工作区添加到暂存区2.由暂存区添加到版本库 四、将代码由本地仓库上传到 gitee远程仓库1.获取远程库与本地同步2.把当前分支 ma…...

华为仓颉编程环境搭建

1、仓颉介绍 摘自华为官方:仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的 IDE 工具链支持,为开发者打造友好开发体验和卓越程序性能。 其具体特性表现为&am…...

UE5 Line Trace By Channel(通道线条追踪)节点

在 Unreal Engine 5 (UE5) 中,Line Trace By Channel 是一个常用于进行物理射线检测(raycasting)的节点。它会沿着一条从起点到终点的直线发射一条射线,并检测射线与世界中任何物体的碰撞。这个节点广泛应用于枪械射击、检测物体、…...

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…...

UDP客户端服务器通信

在这篇博客中,我们将探索 UDP(用户数据报协议) 通信,简要地说,UDP 是一种无连接、快速但不可靠的通信协议,适用于需要快速数据传输但对丢包容忍的场景,比如视频流和在线游戏。就像《我是如此相信…...

适合中小型公司的自动化测试的测试框架,OpenSourceTest

适合中小型公司的自动化测试的测试框架,OpenSourceTest 文档地址: http://docs.opensourcetest.cn/代码仓库: https://github.com/chineseluo/opensourcetest安装方式: pip3 install opensourcetest -i https://pypi.tuna.tsin…...

实现跨语言通信:Rust 和 Thrift 的最佳实践

前言 在分布式系统中,服务之间高效且安全的通信至关重要。Apache Thrift 是一个被广泛应用的跨语言 RPC(远程过程调用)框架,它支持多种编程语言,包括 Rust。Rust 以其卓越的性能和内存安全保障,成为越来越…...

js判断空对象

1. 使用 Object.keys() 方法 Object.keys(obj) 方法返回一个包含对象可枚举属性名称的数组。如果返回的数组长度为 0,表示对象为空。 const isEmpty (obj) > Object.keys(obj).length 0;// 示例 const emptyObject {}; const nonEmptyObject { key: value …...

visionpro官方示例分析(一) 模板匹配工具 缺陷检测工具

1.需求:找出图像中的这个图形。 2.步骤 使用CogPMAlignTool工具,该工具是模板匹配工具,见名知意,所谓模板匹配工具就是说先使用该工具对一张图像建立模板,然后用这个模板在其他图像上进行匹配,匹配上了就说…...

PyCharm中Python项目打包并运行到服务器的简明指南

目录 一、准备工作 二、创建并设置Python项目 创建新项目 配置项目依赖 安装PyInstaller 三、打包项目 打包为可执行文件 另一种打包方式(使用setup.py) 四、配置服务器环境 五、上传可执行文件到服务器 六、在服务器上运行项目 配置SSH解释…...

cocos creator 3.8 合成大西瓜Demo 11

界面上的Node节点: 背景 警戒线 三面墙 初始位置节点 水果容器 先分组吧,墙 地板 水果 创建预制体 先挂一个脚本 刚体碰撞器先弄上再说 import { _decorator, Component, Node } from cc; const { ccclass, property } _decorator;ccclass(FruitData) e…...

Vue前端开发-动态插槽

不仅父组件可以通过插槽方式访问并控制子组件传入的数据,而且可以控制传入父组件时插槽的名称,从而使不同的插槽根据名称的不同,使用场景也不同,例如在一个小区详细页中,可以根据小区类型,调用不同名称的详…...

使用easyexcel导出复杂模板,同时使用bean,map,list填充

背景 在使用easyexcel导出时,如果遇到一个模板中同时存在 一部分是实体类中的字段,另外部分是列表的字段,需要特殊处理一下,比如下面的模板: 这里面 user, addr 是实体类(或者map&#xff09…...

最大值(Java Python JS C++ C )

题目描述 给定一组整数(非负),重排顺序后输出一个最大的整数。 示例1 输入:[10,9] 输出:910 说明:输出结果可能非常大,所以你需要返回一个字符串而不是整数。 输入描述 数字组合 输出描述 最大的整数 示例1 输入 10 9输出 910解题思路 题目要求 是:给定一…...

17.5k Star,ThingsBoard 一款开源、免费、功能全面的物联网 IoT 平台 -慧知开源充电桩平台

项目介绍 ThingsBoard是一个开源、免费、功能全面、灵活易用的物联网(IoT)平台,专注于数据收集、处理、可视化以及设备管理。它提供了一个全面的解决方案,用于构建和管理物联网应用。支持从各种设备收集数据,通过内置…...

《C++ 与神经网络:自动微分在反向传播中的高效实现之道》

在深度学习蓬勃发展的今天,神经网络成为了众多领域的核心技术驱动力。而反向传播算法作为训练神经网络的关键手段,其背后的自动微分技术的高效实现尤为重要,特别是在 C 这样追求性能与内存控制极致的编程语言环境下。 神经网络通过大量的参数…...

【JavaEE】-- HTTP

1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...

JVM垃圾回收机制全解析

Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中&#xff0c;我们渴望一个能激发创想、愉悦感官的工作与生活伙伴&#xff0c;它不仅是冰冷的科技工具&#xff0c;更能触动我们内心深处的细腻情感。正是在这样的期许下&#xff0c;华硕a豆14 Air香氛版翩然而至&#xff0c;它以一种前所未有的方式&#x…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...

渗透实战PortSwigger靶场:lab13存储型DOM XSS详解

进来是需要留言的&#xff0c;先用做简单的 html 标签测试 发现面的</h1>不见了 数据包中找到了一个loadCommentsWithVulnerableEscapeHtml.js 他是把用户输入的<>进行 html 编码&#xff0c;输入的<>当成字符串处理回显到页面中&#xff0c;看来只是把用户输…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息&#xff1a;libc.so.6: cannot open shared object file: No such file or directory&#xff1a; #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...