【新的小主机】向日葵远程控制ubuntu

向日葵远程控制ubuntu

  • 一、简介
  • 二、问题及解决方法
    • 2.1 向日葵远程连接Ubuntu22主机黑屏?
    • 2.2 Ubuntu如何向日葵开机自启?
    • 2.3 无显示器情况下,windows远程桌面连接Ubuntu?
  • 三、美化桌面
    • 3.1 安装/解压
    • 3.2 设置
    • 3.3 右上角显示实时网速
  • 四、安装docker容器及部署微服务
    • 4.1 安装docker容器
    • 4.2 docker基本命令
    • 4.3 部署服务-宝塔面板
    • 4.4 部署服务-某聊天机器人
  • 五、使用习惯
    • 5.1 ubuntu无线WIFI操作
    • 5.2 系统服务管理器指令systemctl
    • 5.3 网络操作

一、简介

硬件:酷睿N100小主机,8G+512G。
系统:ubuntu22.04.3
目的:十月一放假,闲来无事,利用向日葵实现windows远程控制ubuntu,并搭建一些微服务。
在这里插入图片描述

二、问题及解决方法

2.1 向日葵远程连接Ubuntu22主机黑屏?

原因:向日葵使用的是lightdm来进行界面渲染,但是Ubuntu默认是没有的,而是通过gdm3进行图像处理。

使用命令

sudo apt install lightdm

安装过程选择桌面系统为lightdm,重启完成修改。
后续也是能修改的

sudo dpkg-reconfigure lightdm

2.2 Ubuntu如何向日葵开机自启?

终端

gnome-session-properties

打开启动应用程序首选项,添加向日葵启动文件的目录/usr/local/sunlogin/bin/sunloginclient(开机进桌面后开启动)。

注:设置-用户-自动登录打开,实现开机进桌面启动向日葵。

2.3 无显示器情况下,windows远程桌面连接Ubuntu?

原理
使用xserver-xorg虚拟出一个屏幕,并设置分辨率等配置。
安装虚拟显示器

sudo apt-get install  xserver-xorg-core-hwe-18.04
sudo apt-get install  xserver-xorg-video-dummy

新建配置文件

sudo vi /usr/share/X11/xorg.conf.d/xorg.conf
Section "Device"Identifier  "Configured Video Device"Driver      "dummy"
EndSectionSection "Monitor"Identifier  "Configured Monitor"HorizSync 31.5-48.5VertRefresh 50-70
EndSectionSection "Screen"Identifier  "Default Screen"Monitor     "Configured Monitor"Device      "Configured Video Device"DefaultDepth 24SubSection "Display"Depth 24Modes "1920x1080"EndSubSection
EndSection

重启后就能有一个虚拟屏幕,使用windows远程桌面或者向日葵即可实现远程连接。
貌似把上边儿新建的的xorg.conf配置文件删了再重启就能恢复原来的物理桌面了,这就需要ssh拯救了。

注:设置->电源,将节电选项中的息屏改为从不,防止连接中断。
设置->隐私->屏幕,可能还要关闭一个自动锁屏。

三、美化桌面

  • 参考博客
    Ubuntu 22.04 桌面美化之Mac Big Sur风格
    ubunmac美化为macos风格

3.1 安装/解压

  • 插件:tweaks美化插件gnome的User Themes 插件
  • 主题:WhiteSur-gtk-theme-master.zip
  • 图标:Mkos-Big-Sur-master.zip

3.2 设置

  • 打开tweaks / 优化程序-外观/窗口标题栏,设置Mac的主题和图标,发现tweaks也能设置开机启动程序。

  • 打开设置程序-外观。

3.3 右上角显示实时网速

通过添加PPA安装,PPA是指个人软件包存档(Personal Package Archives),它是Ubuntu和其他Linux发行版中的一种软件分发方式。PPA允许个人用户创建和维护自己的软件仓库,并将软件包提供给其他用户进行安装和更新。官方PPA通常是可靠和安全的,而来自知名维护商的PPA也较为可靠。然而,来自第三方开发人员或个人用户的PPA的可靠性可能会有所不同,因此需要谨慎对待。有些人对PPA持有不同的观点,纯粹主义者可能不喜欢PPA,而在Ubuntu和Debian等发行版中,PPA仍然很流行,因为它们提供了更简单的软件安装选项。

sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor	//添加PPA
sudo apt-get update
sudo apt-get install indicator-sysmonitor						//安装
indicator-sysmonitor &											//后台运行
>>最后在图形界面中设置开机自启,显示格式。

在这里插入图片描述

四、安装docker容器及部署微服务

4.1 安装docker容器

参考博文:Ubuntu22.04安装Docker

Docker 是一个高效、灵活、轻量级的容器化平台,可以在单个操作系统上实现多个容器化应用的隔离和运行。

也就是说可以自己在容器里随意搞,把里边儿环境搞坏也不会影响系统环境,类似于anaconda。
  • 更新apt的密钥和仓库源
sudo apt updatesudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common	//更新相关依赖和工具包curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -	//设置docker镜像源每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。以下命令就是将docker相关密钥添加到apt-key。
注:出现OK表示设置成功sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"	//添加docker apt仓库源相当于给apt添加了一个关于docker的仓库源。sudo apt update	//更新apt,以保证后续安装的是最新版docker
  • 安装最新版本docker
sudo apt install docker-ce docker-ce-cli containerd.iosudo systemctl status docker	//验证docker运行状态docker container run hello-world	//运行Hello world容器

4.2 docker基本命令

镜像(Image)是一个静态的、不可修改的文件,它包含了运行一个容器所需的所有文件系统、库和软件。镜像可以看作是一个只读的模板,可以用来创建多个容器。
容器(Container)是镜像的运行实例。它是一个独立且轻量级的运行环境,可以在其中运行应用程序。容器包含了一个镜像的副本,以及一个可读写的文件系统层,允许在容器内对文件进行修改。容器可以被创建、启动、停止、删除等操作。
简而言之,镜像是用于创建容器的模板,容器是镜像的一个实例,它可以在其中运行应用程序。

参考博文:docker常用命令汇总 、 Docker常用命令总结

使用sudo运行docker
  • 帮助启动类命令
systemctl start docker	//启动docker
systemctl stop docker	//停止docker
systemctl restart docker	//重启docker
systemctl status docker		//查看docker状态
systemctl enable docker		//设置开机自启
systemctl disable docker	//取消开机自启
docker info					//查看docker概要信息
docker 命令(如run) --help		//查看docker命令帮助文档
docker system df -v			//查看单个image、container大小
  • 镜像相关
docker images					//查看镜像列表
docker search ubuntu			//镜像搜索,搜索 ubuntu 基础镜像
docker pull 镜像名				//下拉镜像
docker pull 镜像名:Tag
docker rmi -f 镜像名/镜像ID		//删除镜像
docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字	//保存镜像
docker load -i 镜像保存文件位置	//加载镜像
  • 容器相关
sudo docker ps						//查看运行的容器
sudo docker ps -as					//-a:查看所有容器,包含正在运行和已停止的;-s:顺便看内存
docker run -it -d --name 要取的别名 -p 宿主机端口:容器端口 -v 宿主机文件存储位置:容器内文件位置 镜像名:Tag /bin/bash 				//创建容器docker exec -it container /bin/bash 或 docker attach container	//进入正在运行的容器并以命令行交互
docker exec -it container [shell命令]		//可直接执行容器内部命令-d    在后台运行命令-i    即使没有附加也保持 STDIN 打开-t    设置TTYdocker start 容器ID或者容器名		//启动已停止运行的容器
docker restart 容器ID或者容器名		//重启容器
docker stop 容器名/容器ID			//停止容器
docker rm -f 容器名/容器ID			//删除一个容器

4.3 部署服务-宝塔面板

参考博文:docker下安装linux宝塔,docker中安装宝塔面板

  • 安装宝塔
//1、下载一个docker镜像,这里用ubutun
docker pull ubuntu
//2、创建一个docker容器命名为baota并后台运行,然后将宿主机的20,21,80,443,888,8888这五个端口映射到docker容器中去。
//将宿主机的/home/www文件夹映射到docker容器的/www上去,privileged表示在运行容器的时候,给容器加特权,设置容器有写文件的权限。
docker run -i -t -d --name baota -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true -v /home/www:/www ubuntu
//3、进入容器
docker exec -it baota /bin/bash
//4、执行宝塔面板ubuntu安装命令
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec
  • 访问宝塔
    安装宝塔后,访问端口随机生成了别的端口,正好联系一下docker修改容器端口。
    参考博文:修改Docker容器端口
docker stop 容器		//停止容器
systemctl stop docker	//停止docker//修改以下两个文件中的端口映射
/var/lib/docker/containers/容器ID*/hostconfig.json
/var/lib/docker/containers/容器ID*/config.v2.jsonsystemctl restart docker	//重启docker
docker restart 容器			//重启容器

这时候局域网访问{主机ip:端口/安全入口名称}即可登录面板。
在终端输入bt,选择14选项也能查看具体访问入口

  • 搭建网站
    安装LNMP,建立站点,内网穿透啥啊,注意PHP的版本用到了7.2才适配了我以前的网站数据(php7.2、Nginx1.20.2、MySQL5.7.40、phpmyAdmin5.0、ftp1.0.49),猜测是版本问题导致网站显示有问题。不过后来就都搞好了,还得是性能高的小主机呀,网站运行比之前小盒子的运行的网站流畅多了,看来个人网站还得看服务器的CPU能力。

  • 一键开/关网站

(1)startweb_docker.sh

#!/bin/bash
echo "启动docker服务"
sudo systemctl start docker
echo "启动baota容器"
sudo docker start baota
echo "运行容器中的自启服务,bt、nginx、mysqld、frp等服务"
sudo docker exec -it baota /etc/rc.local
echo "ok.^_^."

其中容器内的rc.local

#!/bin/bash
# autostart program
/etc/init.d/bt start
sleep 1
/etc/init.d/nginx start
sleep 1
/etc/init.d/mysqld start
sleep 1
nohup /frp/frpc -c /frp/frpc.ini >/dev/null 2>&1 &
echo "frp running"
sleep 1

(2)stopweb_docker.sh

#!/bin/bash
echo "关闭baota容器"
sudo docker stop baota
echo "关闭docker服务"
sudo systemctl stop docker.service
sudo systemctl stop docker.socket
echo "ok.^_^."

4.4 部署服务-某聊天机器人

参考链接:晓然
源码资源:ChatGPT-Next-Web

  • 部署环境
    1.OS:Ubuntu 22.04.3 LTS x86_64
    2.Docker版本:Docker version 24.0.6
    3.API的url和key:closeai

  • docker部署

docker pull yidadaa/chatgpt-next-web	//获取镜像
sudo docker run -d --name container_name -p host_port:3000 -e OPENAI_API_KEY="api key" -e CODE="log in password" -e BASE_URL="proxy_web" -e DISABLE_GPT4="1" -e PROTOCOL="https" yidadaa/chatgpt-next-web//OPENAI_API_KEY:OpenAi api key sk-开头的一串字母//CODE:授权码;网页端需要授权码或者自己的api key才可以使用//BASE_URL:OpenAI 的接口代理 URL,如果在墙外,可直接指向正宫api.openai.com。//PROTOCOL:openai接口协议,默认是https,可选项,但是要和BASE_URL使用的协议一致。//-p是暴露的端口//DISABLE_GPT4="1"禁用4.0。
  • 内网穿透方案
    以上容器运行后只能在局域网通过localhost:host_port访问。公网访问该如何呢,当然是内网穿透啦!
    本机有两种方案:
    1、重新在主机搞一个内网穿透,把端口映射出去。
    2、基于4.3节的baota容器,使用宝塔面板新建一个站点作为反向代理服务器,并指向这个聊天容器的url。
    这肯定采用方案2,多省事(不过是在悟空数码增加一条http隧道)。

  • 反向代理服务器搭建

1、在宝塔面板新建站点。
在这里插入图片描述
2、创建代理服务器
在这里插入图片描述
完成以上操作,就能用自定义域名访问这个聊天web了,代理服务器在其中起到中继转发的作用。

五、使用习惯

5.1 ubuntu无线WIFI操作

sudo nmcli r wifi on	//开启WiFi
sudo nmcli dev wifi		//扫描附近的 WiFi 热点
sudo nmcli dev wifi connect "热点名称" password "密码" ifname wlan0	//连接到指定的 WiFi 热点
sudo nmcli r wifi off	//关闭 wifi

5.2 系统服务管理器指令systemctl

  • systemctl:管理系统服务的指令。
systemctl start xxx.service 		//启动nfs服务systemctl enable xxx.service 		//设置开机自启动systemctl is-enabled xxx.service	//查看是否开机自启动systemctl disable xxx.service 		//停止开机自启动systemctl status xxx.service 		//查看服务当前状态systemctl restart xxx.service 		//重新启动某服务systemctl list-units --type=service //查看所有已启动的服务
  • lm-sensors安装包查看cpu温度
sensors	//安装好lm-sensors后,直接查看cpu各个核的温度。

5.3 网络操作

netstat -apn	//查看所有进程和端口的使用情况

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运营人必备这个微信运营工具

微信管理系统CRM在各行各业都有应用的场景---IT互联网、制造业、商业服务、金融投资、教育培训、房产家装、电商、政务等20行业领域均得到广泛应用。 微信CRM管理系统的主要功能: 多个微信号聚合聊天:解决多个微信来回切换,换着手着手机的麻烦…

Spring MVC程序开发(JavaEE进阶系列3)

目录 前言: 1.什么是Spring MVC 1.1MVC的定义 1.2MVC和Spring MVC的关系 1.3为什么要学习Spring MVC 2.Spring MVC项目的创建 3.Spring MVC框架的使用 3.1连接的功能 3.1.1RequestMapping 3.1.2GetMapping 3.1.3PostMapping 3.2获取参数的功能 3.2.1获…

高通camx开源部分学习简介

camera整体框架 sensor 上电,通过 MIPI协议传输,得到RAW图像数据。RAW图像数据经过ISP处理,得到YUV图像数据。YUV图像数据再经过DMA传输到DDR内存中,DDR内存也就是上图中标识的HOST。每个厂家的 ISP原理和功能大致相同&#xff0c…

【亲测有效】C盘容量满了,给C盘扩容!!!

前言 相信有很多小伙伴用自己电脑的时候明明不往C盘装东西,但是C盘还是慢慢的变红了,我也是因为C盘满了而备受困扰。又不知道如何解决或者怕自己鼓捣着磁盘数据没了。闲来无事,我查了一些资料,终于将我的C盘容量扩充了且数据保存…

Hive 【Hive(七)窗口函数练习】

窗口函数案例 数据准备 1)建表语句 create table order_info (order_id string, --订单iduser_id string, -- 用户iduser_name string, -- 用户姓名order_date string, -- 下单日期order_amount int -- 订单金额 ); 2)装载语句 i…

一文搞懂APT攻击

APT攻击 1. 基本概念2. APT的攻击阶段3. APT的典型案例参考 1. 基本概念 高级持续性威胁(APT,Advanced Persistent Threat),又叫高级长期威胁,是一种复杂的、持续的网络攻击,包含高级、长期、威胁三个要素…

超声波气象站——环境监测领域强大助手

超声波气象站是环境监测领域的一位强大助手,超声波气象站是一种综合型的气象设备,精巧而全面,满足人们对环境状况的深入了解和精准把握。 首先,超声波气象站的传感器部分,是它的核心组成部分,这位“感知者”…

PHP 行事准则:allow_url_fopen 与 allow_url_include

文章目录 参考环境allow_url_fopenallow_url_fopen 配置项操作远程文件file 协议 allow_url_includeallow_url_include 配置项 allow_url_include 与 allow_url_fopen区别联系默认配置配置项关闭所导致异常运行时配置ini_set()限制 参考 项目描述搜索引擎Bing、GoogleAI 大模型…

Elasticsearch数据操作原理

Elasticsearch 是一个开源的、基于 Lucene 的分布式搜索和分析引擎,设计用于云计算环境中,能够实现实时的、可扩展的搜索、分析和探索全文和结构化数据。它具有高度的可扩展性,可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个…

Linux 本地 Docker Registry本地镜像仓库远程连接

Linux 本地 Docker Registry本地镜像仓库远程连接 Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)镜像,不受本地局域网限制! 1. 部署Docker Registry 使用官网安装方式,docker命令一键启动,该命令启动一个regis…

JVM-满老师

JVM 前言程序计数器,栈,虚拟机栈:本地方法栈:堆,方法区:堆内存溢出方法区运行时常量池 垃圾回收垃圾回收算法分代回收 前言 JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件&#xff…

虫情测报灯如何实现自动化测报?

一、KH-CQPest虫情测报灯的工作过程 虫情测报灯是新一代的图像式虫情测报智能设备,在农业虫害防治领域拥有独特魅力,它内置高像素的摄像头,能够精准记录并将照片上传至智慧农业平台识别害虫的形态、种类。虫情测报灯运用现代光电数控集成技术…

Netty(四)NIO-优化与源码

Netty优化与源码 1. 优化 1.1 扩展序列化算法 序列化,反序列化主要用于消息正文的转换。 序列化:将java对象转为要传输对象(byte[]或json,最终都是byte[]) 反序列化:将正文还原成java对象。 //java自带的序列化 // 反序列化 b…

SpringBoot自带模板引擎Thymeleaf使用详解①

目录 前言 一、SpringBoot静态资源相关目录 二、变量输出 2.1 在templates目录下创建视图index.html 2.2 创建对应的Controller 2.3 在视图展示model中的值 三、操作字符串和时间 3.1 操作字符串 3.2 操作时间 前言 Thymeleaf是一款用于渲染XML/HTML5内容的模板引擎&am…

[unity]保存文件的路径设置

序 比如,序列化了一个数组,保存到磁盘上。 原来的路径是"D://test.bin",能跑,但是有点问题:序列化出来的文件和原项目离的太远,不好管理。 要是能保存到unity工程的文件夹里就好了。这个路径该…

学习记忆——方法篇——整除特点

理解记忆法 对于数的整除特征大家都比较熟悉:比如4看后两位(因为100是4的倍数),8看后三位(因为1000是8的倍数),5末尾是0或5,3与9看各位数字和等等,今天重点研究一下3,9,…

毕设-原创医疗预约挂号平台分享

医疗预约挂号平台 不是尚医通项目,先看项目质量(有源码论文) 项目链接:医疗预约挂号平台git地址 演示视频:医疗预约挂号平台 功能结构图 登录注册模块:该模块具体分为登录和注册两个功能,这些…

小样本学习——匹配网络

目录 匹配网络 (1)简单介绍: (2)专业术语 (3)主要思想 (4)训练过程 问题 回答 MANN 匹配网络 (1)简单介绍: Matching netwo…

创新家庭办公室:打造完美工作空间的秘诀

一个精心策划的家庭办公室有很多好处,何不把临时工作区升级改造为你的专属工作区呢,还能为这些至关重要的区域注入新的活力。 创造多用途的起居室:我们大多数人都不曾拥有一个可以完全根据工作需求设计的独立家庭办公室——所以有时候要找到…

【锁的区别】C++线程库和POSIX线程库锁的区别

C线程库和POSIX线程库锁的区别 C线程库代码段的互斥:mutex、recursive_mutex、timed_mutex、recursive_timed_mutex互斥量mutex:直接进行lock()或者unlock()递归互斥锁recursive_mutex:可以多次加锁,意味着加几次锁就需要解几次锁…