小主机的不同系统
- 向日葵远程控制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 部署服务-某聊天机器人
- 4.5 vocechat聊天
- 五、使用习惯
- 5.1 ubuntu无线WIFI操作
- 5.2 系统服务管理器指令systemctl
- 5.3 网络操作
- 小主机安装NAS系统-飞牛fnOS
- 一、简介
- 二、Q&A
- 2.1 开启无线wifi
- 2.2 获取所处公网
- 三、获得一台VPS服务器
- 3.1 安全防护设置
- 3.2 内网穿透
- 四、docker使用
- 五、常用应用
- 小主机安装ubuntu服务器版本
- 一、简介
- 二、常见设置
【作为个人笔记,用于查阅】向日葵远程控制ubuntu
一、简介
硬件:酷睿N100小主机,8G+512G。
系统:ubuntu22.04.3
目的:十月一放假,闲来无事,利用向日葵实现windows远程控制ubuntu,并搭建一些微服务。
二、问题及解决方法
2.1 向日葵远程连接Ubuntu22主机黑屏?
原因:向日葵使用的是lightdm来进行界面渲染,但是Ubuntu默认是没有的,而是通过gdm3进行图像处理。
使用命令
sudoaptinstalllightdm安装过程选择桌面系统为lightdm,重启完成修改。
后续也是能修改的
sudodpkg-reconfigure lightdm2.2 Ubuntu如何向日葵开机自启?
终端
gnome-session-properties打开启动应用程序首选项,添加向日葵启动文件的目录/usr/local/sunlogin/bin/sunloginclient(开机进桌面后开启动)。
注:设置-用户-自动登录打开,实现开机进桌面启动向日葵。2.3 无显示器情况下,windows远程桌面连接Ubuntu?
原理
使用xserver-xorg虚拟出一个屏幕,并设置分辨率等配置。
安装虚拟显示器
sudoapt-getinstallxserver-xorg-core-hwe-18.04sudoapt-getinstallxserver-xorg-video-dummy新建配置文件
sudovi/usr/share/X11/xorg.conf.d/xorg.confSection"Device"Identifier"Configured Video Device"Driver"dummy"EndSection Section"Monitor"Identifier"Configured Monitor"HorizSync31.5-48.5VertRefresh50-70EndSection Section"Screen"Identifier"Default Screen"Monitor"Configured Monitor"Device"Configured Video Device"DefaultDepth24SubSection"Display"Depth24Modes"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仍然很流行,因为它们提供了更简单的软件安装选项。
sudoadd-apt-repository ppa:fossfreedom/indicator-sysmonitor //添加PPAsudoapt-getupdatesudoapt-getinstallindicator-sysmonitor //安装 indicator-sysmonitor&//后台运行>>最后在图形界面中设置开机自启,显示格式。四、安装docker容器及部署微服务
4.1 安装docker容器
参考博文:Ubuntu22.04安装Docker
Docker 是一个高效、灵活、轻量级的容器化平台,可以在单个操作系统上实现多个容器化应用的隔离和运行。
也就是说可以自己在容器里随意搞,把里边儿环境搞坏也不会影响系统环境,类似于anaconda。- 更新apt的密钥和仓库源
sudoaptupdatesudoaptinstallapt-transport-https ca-certificatescurlgnupg-agent software-properties-common //更新相关依赖和工具包curl-fsSLhttps://download.docker.com/linux/ubuntu/gpg|sudoapt-keyadd- //设置docker镜像源每个发布的deb包,都是通过密钥认证的,apt-key用来管理密钥。以下命令就是将docker相关密钥添加到apt-key。 注:出现OK表示设置成功sudoadd-apt-repository"deb [arch=amd64] https://download.docker.com/linux/ubuntu$(lsb_release-cs)stable"//添加docker apt仓库源相当于给apt添加了一个关于docker的仓库源。sudoaptupdate //更新apt,以保证后续安装的是最新版docker- 安装最新版本docker
sudoaptinstalldocker-ce docker-ce-cli containerd.iosudosystemctl statusdocker//验证docker运行状态dockercontainer run hello-world //运行Hello world容器4.2 docker基本命令
镜像(Image)是一个静态的、不可修改的文件,它包含了运行一个容器所需的所有文件系统、库和软件。镜像可以看作是一个只读的模板,可以用来创建多个容器。容器(Container)是镜像的运行实例。它是一个独立且轻量级的运行环境,可以在其中运行应用程序。容器包含了一个镜像的副本,以及一个可读写的文件系统层,允许在容器内对文件进行修改。容器可以被创建、启动、停止、删除等操作。
简而言之,镜像是用于创建容器的模板,容器是镜像的一个实例,它可以在其中运行应用程序。
参考博文:docker常用命令汇总 、 Docker常用命令总结
使用sudo运行docker- 帮助启动类命令
systemctl startdocker//启动docker systemctl stopdocker//停止docker systemctl restartdocker//重启docker systemctl statusdocker//查看docker状态 systemctlenabledocker//设置开机自启 systemctl disabledocker//取消开机自启dockerinfo //查看docker概要信息docker命令(如run)--help//查看docker命令帮助文档dockersystemdf-v//查看单个image、container大小- 镜像相关
dockerimages //查看镜像列表dockersearch ubuntu //镜像搜索,搜索 ubuntu 基础镜像dockerpull 镜像名 //下拉镜像dockerpull 镜像名:Tagdockerrmi-f镜像名/镜像ID //删除镜像dockersave 镜像名/镜像ID-o镜像保存在哪个位置与名字 //保存镜像dockerload-i镜像保存文件位置 //加载镜像- 容器相关
sudodockerps//查看运行的容器sudodockerps-as//-a:查看所有容器,包含正在运行和已停止的;-s:顺便看内存dockerrun-it-d--name要取的别名-p宿主机端口:容器端口-v宿主机文件存储位置:容器内文件位置 镜像名:Tag /bin/bash //创建容器dockerexec-itcontainer /bin/bash 或dockerattach container //进入正在运行的容器并以命令行交互dockerexec-itcontainer[shell命令]//可直接执行容器内部命令-d在后台运行命令-i即使没有附加也保持 STDIN 打开-t设置TTYdockerstart 容器ID或者容器名 //启动已停止运行的容器dockerrestart 容器ID或者容器名 //重启容器dockerstop 容器名/容器ID //停止容器dockerrm-f容器名/容器ID //删除一个容器4.3 部署服务-宝塔面板
参考博文:docker下安装linux宝塔,docker中安装宝塔面板
- 安装宝塔
//1、下载一个docker镜像,这里用ubutundockerpull ubuntu //2、创建一个docker容器命名为baota并后台运行,然后将宿主机的20,21,80,443,888,8888这五个端口映射到docker容器中去。 //将宿主机的/home/www文件夹映射到docker容器的/www上去,privileged表示在运行容器的时候,给容器加特权,设置容器有写文件的权限。dockerrun-i-t-d--namebaota-p20:20-p21:21-p80:80-p443:443-p888:888-p8888:8888--privileged=true-v/home/www:/www ubuntu //3、进入容器dockerexec-itbaota /bin/bash //4、执行宝塔面板ubuntu安装命令wget-Oinstall.sh https://download.bt.cn/install/install-ubuntu_6.0.sh&&bashinstall.sh ed8484bec- 访问宝塔
安装宝塔后,访问端口随机生成了别的端口,正好联系一下docker修改容器端口。
参考博文:修改Docker容器端口
dockerstop 容器 //停止容器 systemctl stopdocker//停止docker //修改以下两个文件中的端口映射 /var/lib/docker/containers/容器ID*/hostconfig.json /var/lib/docker/containers/容器ID*/config.v2.json systemctl restartdocker//重启dockerdockerrestart 容器 //重启容器这时候局域网访问{主机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/bashecho"启动docker服务"sudosystemctl startdockerecho"启动baota容器"sudodockerstart baotaecho"运行容器中的自启服务,bt、nginx、mysqld、frp等服务"sudodockerexec-itbaota /etc/rc.localecho"ok.^_^."其中容器内的rc.local
#!/bin/bash# autostart program/etc/init.d/bt startsleep1/etc/init.d/nginx startsleep1/etc/init.d/mysqld startsleep1nohup/frp/frpc-c/frp/frpc.ini>/dev/null2>&1&echo"frp running"sleep1(2)stopweb_docker.sh
#!/bin/bashecho"关闭baota容器"sudodockerstop baotaecho"关闭docker服务"sudosystemctl stop docker.servicesudosystemctl stop docker.socketecho"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:closeaidocker部署
dockerpull yidadaa/chatgpt-next-web //获取镜像sudodockerrun-d--namecontainer_name-phost_port:3000-eOPENAI_API_KEY="api key"-eCODE="log in password"-eBASE_URL="proxy_web"-eDISABLE_GPT4="1"-ePROTOCOL="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了,代理服务器在其中起到中继转发的作用。
4.5 vocechat聊天
sudodockerpull privoce/vocechat-serversudodockerrun-d--restart=always-phost_port:3000--namevocechat-server-vhost_path:/home/vocechat-server/data privoce/vocechat-server详情点击:官方网站
五、使用习惯
5.1 ubuntu无线WIFI操作
sudonmcli r wifi on //开启WiFisudonmcli dev wifi //扫描附近的 WiFi 热点sudonmcli dev wifi connect"热点名称"password"密码"ifname wlan0 //连接到指定的 WiFi 热点sudonmcli r wifi off //关闭 wifi5.2 系统服务管理器指令systemctl
- systemctl:管理系统服务的指令。
systemctl start xxx.service //启动nfs服务 systemctlenablexxx.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//查看所有进程和端口的使用情况小主机安装NAS系统-飞牛fnOS
一、简介
在宿舍使用主力机PC通过无线连接Internet,并将无线网卡共享给以太网网卡,实现小主机通过与主力机PC以太网互联上网。这样只将小主机共享给主力机访问,更安全。
- 主力机PC:以太网网卡右键-属性-共享
- 小主机:使用以太网DHCP自动获取ip。
安装fnOS,好多东西都会了,也就没必要记录了。
二、Q&A
2.1 开启无线wifi
如何使用无线网卡?
sudo-inmcli device#查看网络适配器列表nmcli device wifi list#查看当前wifi列表nmcli device wifi connect"Wi-Fi名称"password"密码"ifname wlan_name#建立连接,若有多个无线网卡,可使用ifname进行区分。nmcli connection delete wlp2s0#断开连接,并删除配置nmcli device disconnect wlp2s0#只断开连接#如果无线和有线连接同时配置,有时候dhcp会不知道配置哪个,导致有线被挤掉#所以我们就将有线连接配置为手动ipnmcli con show#检查是否已有对 enp1s0 的连接nmcli con modify MyEthernet ipv4.method manual ipv4.addresses192.168.1.100/24 ipv4.gateway192.168.1.1 ipv4.dns"8.8.8.8,8.8.4.4"#假设连接名称为 MyEthernet,你可以使用以下命令来设置静态 IPnmcli con up MyEthernet#启动修改后的连接小主机自带的无线网卡信号不太好,那我们就购买了TP-Link家的无线网卡TL-XDN6000H,windows可以免驱动安装,但linux需要自己去TP官网下载驱动程序。
- 驱动程序:
TL-XDN6000H免驱版 V1.0 Linux系统驱动程序20240416 - 安装过程及遇到问题:
1、查看是否安装了 build-essential 包 dpkg-sbuild-essential#fnOS没有安装Q1:sudoapt-getupdate软件源更新失败 A1:小主机同时连接了无线和有线,导致update失败,可以先断其中一个。 Q2:sudoapt-getinstallbuild-essential,缺少依赖。 A2:可以先安装sudoaptinstall-yaptitude,aptitude可以自动检测并安装缺少的依赖。再使用sudoaptitudeinstallbuild-essential安装。2、确认要使用哪个安装包 dpkg --print-architecture3、安装或卸载sudodpkg-iaic8800fdrvpackage_amd64.deb#安装sudodpkg-iaic8800fdrvpackage#卸载2.2 获取所处公网
curl6.ipw.cncurl4.ipw.cn#获取ipv4地址三、获得一台VPS服务器
3.1 安全防护设置
- 常用操作
sudosu#进入rootpasswd#修改密码sudoadduser name#增加用户,并在/etc/sudoers中添加sudoer权限sudovi/etc/ssh/sshd_config#修改ssh配置文件的Port 22,进而修改访问端口- 防火墙操作
sudoaptinstallufwsudoufw status#检查防火墙状态sudoufwenable#开启防火墙sudoufw disable#关闭防火墙#查询sudoiptables-L-n-v|grep<端口号>#查询特定端口号sudoss-tuln#查看正在监听的端口-t:TCP 连接 -u:UDP 连接 -l:仅显示监听的端口 -n:以数字形式显示地址和端口号#allow或denysudoufw allow22/tcp# 允许 SSHsudoufw allow80/tcp# 允许 HTTPsudoufw allow443/tcp# 允许 HTTPS#一般不用sudoufw default deny incoming# 拒绝所有传入流量sudoufw default allow outgoing# 允许所有传出流量3.2 内网穿透
使用frp实现内网穿透教程
用FRP配置toml文件搭建内网穿透
小主机—云服务器VPS(公网ip)之间的内网穿透,frp软件在0.52.0版本开始支持 toml格式的配置文件,在后继版本取消 ini配置格式。
程序下载:https://github.com/fatedier/frp/releases
解压目录:/usr/local/frp
配置
服务端,配置frps.toml
bindPort=7000# frp服务的特定端口,防火墙也需放开该端口# 服务面板可查看frp服务状态信息webServer.addr="0.0.0.0"# 后台管理地址,默认是127.0.0.1,如果是公网访问则改成0.0.0.0webServer.port=7001# 后台管理端口webServer.user="user"# (可选)后台登录用户名webServer.password="password"# (可选)后台登录密码# 加密transport.tls.force=true# 服务端将只接受 TLS链接auth.method='token'# 客户端访问验证方式auth.token="123456*"# 客户端访问验证密码,frpc要与frps一致# 自定义的监听的端口,所有对服务器该端口访问将被转发到本地内网,做了反向代理可不处理防火墙放行vhostHTTPPort=80vhostHTTPSPort=443执行
./frps -c ./frps.toml &或
#创建frps.service服务启动 sudo vim /etc/systemd/system/frps.service #相关命令 sudo systemctl start frps# 启动frp sudo systemctl stop frps# 停止frp sudo systemctl restart frps# 重启frp sudo systemctl status frps# 查看frp状态 sudo systemctl enable frps# 设置为开机自启[Unit]# 服务名称,可自定义Description=frp server After=network.target syslog.target Wants=network.target[Service]Type=simple# 启动frps的命令,需修改为您的frps的安装路径ExecStart=/usr/local/frp/frps-c/usr/local/frp/frps.toml[Install]WantedBy=multi-user.target客户端,配置frpc.toml
# 初始配置transport.tls.enable=true# 从 v0.50.0版本开始,transport.tls.enable的默认值为 trueserverAddr="202.xxx.xxx.xxx"# 服务端ipserverPort=7000# 服务端端口auth.method='token'# 客户端访问验证方式auth.token='123456*'# 客户端访问验证密码# 代理配置[[proxies]]name="ssh"type="tcp"localIP="127.0.0.1"localPort=22remotePort=10022#customDomains = ["xxx.xxx.xxx.xxx"][[proxies]]name="web-80"type="http"localPort=10080customDomains=["xxx.xxx.xxx.xxx"][[proxies]]name="web-443"type="https"localPort=10443customDomains=["xxx.xxx.xxx.xxx"][[proxies]]name="dy_mysql"# 客户端服务名type="tcp"# 通讯方式localIP="127.0.0.1"# 客户端的ip(固定)localPort=3306# 客户端服务端口remotePort=13306# 映射到服务端端口(服务器需放行)执行
./frpc -c ./frpc.toml &或
#创建frpc.service服务启动 sudo vim /etc/systemd/system/frpc.service #相关命令 sudo systemctl start frpc# 启动frp sudo systemctl stop frpc# 停止frp sudo systemctl restart frpc# 重启frp sudo systemctl status frpc# 查看frp状态 sudo systemctl enable frpc# 设置为开机自启[Unit][Unit]# 服务名称,可自定义Description=frp client After=network.target syslog.target Wants=network.target[Service]Type=simple# 启动frpc的命令,需修改为您的frpc的安装路径ExecStart=/usr/local/frp/frpc-c/usr/local/frp/frpc.toml[Install]WantedBy=multi-user.target总结
1、frp利用7000端口实现服务端和客户端之间的互联,将云服务器的端口与小主机的端口进行映射,如云服务器10022-小主机22,云服务器10080-小主机80,记得云服务器的防火墙开放对应端口。 2、可使用自己域名映射到有公网ip的服务器,其中web服务(nginx)云服务器10080-小主机80之间的端口映射提供通道,使用test1.heihei.com访问,到小主机端的网站列表匹配对应test1网站内容。四、docker使用
1panel安装的都是docker容器,具有很好的隔离效果,主要配置的就是容器的端口。点点点就安装好了。
fnOS的应用商店有迅雷,使用教程:手把手教你飞牛OS迅雷添加下载路径
我不是矿神IMNKS
下载路径实际:1、设置里给应用添加路径。2、容器里给应用添加路径。3、重启容器。alist
教程链接:飞牛NAS上的小雅根本没有资源?只剩下打赏码?那得按照这个重新配置了!
五、常用应用
- istoreos配置旁路由
官网下载istoreos-24.10.7-2026070313-x86-64-squashfs-combined.img
安装至飞牛虚拟机,有线网卡开启OVS、虚拟机中开启CPU虚拟化和IOMMU。
当成linux安装即可,安装后找到istoreos访问ip,进入web配置界面。
(可配置为旁路由,手动安装广告过滤、学习插件等) - iptv
学习中。。
小主机安装ubuntu服务器版本
一、简介
准备部署个人知识库
本地服务器(frp客户端)-云服务器(frp服务端),通过frp通道进行内网穿透,将本地服务器的ssh、1panel、maxkb等服务的端口映射到服务器的某个端口。
作为本地服务器,ssh建立的两条通道,保障能完成本地服务器的远程控制:
- frp提供的ssh主用通道
- 花生壳提供的ssh备用通道
二、常见设置
切换为静态ip
ipaddr show#查看当前网卡名称cd/etc/netplansudocp01-netcfg.yaml 01-netcfg.yaml.bak# 根据实际文件名调整sudovi/etc/netplan/01-netcfg.yaml# 文件名可能为00-installer-config.yaml等[1,3,11](@ref)network: version:2renderer: networkd# 服务器用networkd,桌面版可换为NetworkManagerethernets: ens33:# 替换为你的网卡名称dhcp4: no# 关闭DHCPaddresses:[192.168.1.100/24]# IP地址及子网掩码(CIDR格式)gateway4:192.168.1.1# 网关nameservers: addresses:[8.8.8.8,8.8.4.4]# DNS服务器sudonetplan apply扩展现有LVM逻辑卷(适用于已有未分配的物理卷空间)
vgdisplay ubuntu-vg# 检查卷组剩余空间[1](@ref)sudolvextend-l+100%FREE /dev/ubuntu-vg/ubuntu-lv# 将所有剩余空间分配给逻辑卷[1,5](@ref)sudoresize2fs /dev/ubuntu-vg/ubuntu-lv# 适用于ext4文件系统[1,6](@ref)