【新的小主机】向日葵远程控制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.xdnf.cn/news/149105.html

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

相关文章

IBT机考-PBT笔考,优劣分析,柯桥口语学习,韩语入门,topik考级韩语

IBT机考,顾名思义就是在电脑上答题考试,区别于现在的PBT纸笔答题,不需要发卷、收卷,也不需要填涂和用笔写字。 考试不需要带任何文具,就连笔试要用到的修正带都将省去。因为听力、阅读的选择题都是用鼠标点击&#xf…

SpringCloud Alibaba - Seata 四种分布式事务解决方案(XA、AT)+ 实践部署(上)

目录 一、Seata 分布式事务解决方案 1.1、XA 模式 1.1.1、XA模式理论 第一阶段: 第二阶段: 1.1.2、Seata 框架中的 XA 模式 第一阶段: 第二阶段: 1.1.3、XA 模式的优缺点 1.2.4、实现Seata 的 XA 模式 a)修改…

FFmpeg:打印音/视频信息(Meta信息)

多媒体文件基本概念 多媒体文件其实是个容器在容器里面有很多流(Stream/Track)每种流是由不同的编码器编码的从流中读出的数据称为包在一个包中包含着一个或多个帧 几个重要的结构体 AVFormatContextAVStreamAVPacket FFmpeg操作流数据的基本步骤 打印音/视频信息(Meta信息…

idea Springboot 教师标识管理系统开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 教师标识管理系统是一套完善的信息系统,结合springboot框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用springboot框架(MVC模式开发),系统 具有完整的源代码和数据库&…

无状态自动配置 DHCPv6无状态配置 DHCPv6有状态配置

1、无状态自动配置 配置命令 AR1 ipv6 #开启路由器ipv6报文转发功能 interface GigabitEthernet0/0/0 ipv6 enable #开启路由器接口IPv6报文转发功能 ipv6 address FC01::1/64 …

【C++】AVL树 红黑树

AVL树 AVL树也是二叉搜索树的一种。因为对于普通的二叉搜索树,当插入的数据在有序或接近有序的情况下,二叉搜索树很可能退化成单支树,导致查找效率低下。而AVL树就很好的解决了这个问题。 首先,AVL树是一棵二叉搜索树。同时对于A…

二十二,加上各种贴图

使用pbr的各种贴图,albedo,金属度,ao,法线,粗糙度,可以更好的控制各个片元 1,先加上纹理坐标 texCoords->push_back(osg::Vec2(xSegment, ySegment)); geom->setVertexAttribArray(3, texCoords, osg::Array::BI…

Linux基本指令(上)——“Linux”

各位CSDN的uu们好呀,今天,小雅兰的内容是Linux啦!!!主要是Linux的一些基本指令和Linux相关的基本概念(系统层面),下面,让我们进入Linux的世界吧!!…

Linux基本指令介绍系列第四篇

文章目录 前言一、Linux基本指令介绍1、more指令2、less指令3、head指令4、tail指令5、bc指令6、管道文件介绍7、与时间相关的指令 总结 前言 本文介绍Linux使用时的部分指令,读者如果想了解更多基本指令的使用,可以关注博主的后续的文章。 博主使用的实…

Sentinel安装

Sentinel 微服务保护的技术有很多,但在目前国内使用较多的还是Sentinel,所以接下来我们学习Sentinel的使用。 1.介绍和安装 Sentinel是阿里巴巴开源的一款服务保护框架,目前已经加入SpringCloudAlibaba中。官方网站: 首页 | Se…

数据源报表

1.新建报表 2.新建数据集 3.维护数据源 支持的数据库还是蛮多哈 4.选择数据源表 5.编写sql 编码:SQL数据集的标识 注:避免特殊字符和_名称:SQL数据集的名称是否集合:否为单数据;是为多数据列表,如果多条数据…

怎么通过docker/portainer部署vue项目

这篇文章分享一下如何通过docker将vue项目打包成镜像文件,并使用打包的镜像在docker/portainer上部署运行,写这篇文章参考了vue-cli和docker的官方文档。 首先,阅读vue-cli关于docker部署的说明,上面提供了关键的几个步骤。 从上面…

opencv图像数组坐标系

在OpenCV的Python接口(cv2)中,加载的图像数组遵循以下坐标系和方向约定: 1. **坐标系:** OpenCV的坐标系遵循数学中的坐标系,原点(0, 0)位于图像的左上角。横轴(X轴&…

国庆发生的那些事儿------编写了炫酷的HTML动态鼠标特效,超级炫酷酷酷!

文章目录 前言具体操作总结 前言 国庆假期的欢乐,当然少不了编码爱好者!假期编写了炫酷的HTML动态鼠标特效,超级炫酷酷酷!让你的页面变得更加炫酷,让你的小伙伴们羡慕的大神编码!快来看看大神是如何编写的…

英伟达NVIDIA驱动安装

一般,我们新的显卡上机或者新系统可能就需要重新安装显卡驱动。或者是我们在配置深度学习环境时候,需要手动安装驱动。 官网地址:官方高级驱动搜索 | NVIDIA 我们选择好自己需要的驱动后直接安装即可 下载的时候,选择自己需要的驱…

基于SpringBoot的网上超市系统

基于SpringBoot的网上超市系统的设计与实现 开发语言:Java数据库:MySQL技术:SpringBootMyBatis工具:IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色:用户、管理员 管理员:个人中心、用户管理、商品分类…

BIRCH算法全解析:从原理到实战

目录 一、引言什么是BIRCH算法BIRCH算法的应用场景文章目标和结构概述 二、BIRCH算法基础CF(Clustering Feature)树的概念数据点簇簇的合并和分裂 BIRCH的时间复杂度和空间复杂度BIRCH vs K-means和其他聚类算法 三、BIRCH算法的技术细节CF树的构建节点和…

计算机毕设 大数据工作岗位数据分析与可视化 - python flask

文章目录 0 前言1 课题背景2 实现效果3 项目实现3.1 概括 3.2 Flask实现3.3 HTML页面交互及Jinja2 4 **完整代码**5 最后 0 前言 🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要…

word 多级目录的问题

一、多级标题自动编号 --> 制表符 -> 空格 网址: 【Word技巧】2 标题自动编号——将多级列表链接到样式 - YouTube 二、多级列表 --> 正规形式编号 网址:Word 教学 - 定框架:文档格式与多级标题! - YouTube 三、目…

osg实现鼠标框选

目录 1. 需求的提出 2. 具体实现 2.1. 禁止场景跟随鼠标转动 2.2. 矩形框前置绘制 3. 附加说明 3.1. 颜色设置说明 3.2.矩形框显示和隐藏的另一种实现 1. 需求的提出 有时需要在屏幕通过按住键盘上的某个键如Ctrl键且按住鼠标左键,拖出一个矩形,实现框…