ubantuserver-liunx 程序安装

捣鼓

ubantuserver相关实用程序安装配置

主机程序安装

cockpit

  1. 更新系统软件包列表 sudo apt update
  2. 安装 Cockpit sudo apt install cockpit
  3. 检查 Cockpit 状态 sudo systemctl status cockpit.socket 预期输出Active: active (running)
  4. 开放防火墙端口
# 允许 TCP 端口 9090
sudo ufw allow 9090/tcp
# 重新加载 UFW 规则
sudo ufw reload
复制代码
  1. 访问 Cockpit https://<服务器IP地址>:9090 登录信息:
  • 用户名:使用SSH登录用户名
  • 密码:使用该用户的系统密码
  • 权限说明:登录Cockpit后可以使用该用户的sudo权限来执行管理任务(例如通过Web终端)
  1. 若以普通用户?登录,记得赋予普通用户权限
  • 将用户?添加到 sudo 组 sudo usermod -aG sudo ? 运行id ?命令确认组成员
  • 重启 Cockpit 服务确保权限刷新 sudo systemctl restart cockpit

v2rayA-科学上网

参考文档

https://v2raya.org/docs/prologue/installation/debian/


  • 手动安装流程 👇根据arm/X86机型选择下载

v2raya下载

https://github.com/v2rayA/v2rayA/releases

xray核心下载

https://github.com/v2rayA/v2raya-apt/tree/master/pool/main/x/xray

手动安装 deb 包 假如下载的包体放在了服务器/downloads位置

依次执行安装核心与v2raya

执行sudo apt install /downloads/~.deb(为避免权限与沙盒警告不这样安装)

  1. sudo cp /downloads/~.deb /tmp/ 现将包体复制到/tmp 目录
  2. sudo apt install /tmp/~.deb 在/tmp目录下依次执行安装核心与v2raya
  3. sudo rm /tmp/~.deb 移除复制在/tmp目录下的包体

启动 v2rayA / 设置 v2rayA 自动启动

启动 v2rayA sudo systemctl start v2raya.service

设置开机自动启动 sudo systemctl enable v2raya.service

开放端口2017

sudo ufw allow 2017/tcp

通过2017端口访问web服务

http://localhost:2017 192.168.?.?:2017

Docker / Docker Compose

install

# 更新系统包
sudo apt update && sudo apt upgrade -y

# 安装依赖
sudo apt install -y ca-certificates curl gnupg lsb-release

# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 添加 Docker 软件源
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 验证安装
sudo docker --version
复制代码

Nginx-反代

安装 Nginx

  • 1.更新软件包列表 sudo apt update
  • 2.安装 Nginx sudo apt install nginx -y
  • 3.启动并启用 Nginx 服务
    # 启动 Nginx
    sudo systemctl start nginx
    # 设置开机自启
    sudo systemctl enable nginx
    # 检查运行状态
    sudo systemctl status nginx
    
    复制代码

基本配置和管理

# 启动 Nginx
sudo systemctl start nginx
# 停止 Nginx
sudo systemctl stop nginx
# 重启 Nginx
sudo systemctl restart nginx
# 重新加载配置(不中断服务)
sudo systemctl reload nginx
# 查看状态
sudo systemctl status nginx
复制代码

http://服务器IP 显示Nginx默认欢迎页面

Nginx 重要目录和文件

# 主配置文件
/etc/nginx/nginx.conf
# 站点可用配置
/etc/nginx/sites-available/
# 已启用站点配置
/etc/nginx/sites-enabled/
# 默认网站根目录
/var/www/html/
# 日志文件
/var/log/nginx/access.log
/var/log/nginx/error.log
复制代码

防火墙配置

# 查看可用的应用配置
sudo ufw app list
# 允许 Nginx HTTP
sudo ufw allow 'Nginx HTTP'
# 允许 Nginx HTTPS(如果使用 SSL)
sudo ufw allow 'Nginx HTTPS'
# 或者直接允许端口
sudo ufw allow 80
sudo ufw allow 443
复制代码

诊断命令

# 检查配置文件语法
sudo nginx -t
# 查看 Nginx 进程
ps aux | grep nginx
# 实时查看访问日志
sudo tail -f /var/log/nginx/access.log
# 实时查看错误日志
sudo tail -f /var/log/nginx/error.log
# 查看监听的端口
sudo netstat -tulpn | grep nginx
复制代码

示例

创建简单的自定义站点

  1. 创建网站目录 sudo mkdir -p /var/www/your-domain.com/html
  2. 设置权限 sudo chown -R $USER:$USER /var/www/your-domain.com/html sudo chmod -R 755 /var/www/your-domain.com
  3. 创建测试页面 sudo nano /var/www/your-domain.com/html/index.html 内容示例:
<html>
    <head>
        <title>Welcome to Your Domain!</title>
    </head>
    <body>
        <h1>Success! Your Nginx server is working!</h1>
    </body>
</html>
复制代码
  1. 创建虚拟主机配置 sudo nano /etc/nginx/sites-available/your-domain.com 内容示例:
server {
    listen 80;
    listen [::]:80;

    root /var/www/your-domain.com/html;
    index index.html index.htm;

    server_name your-domain.com www.your-domain.com;

    location / {
        try_files $uri $uri/ =404;
    }
}
复制代码
  1. 启用站点
# 创建符号链接
sudo ln -s /etc/nginx/sites-available/your-domain.com /etc/nginx/sites-enabled/
# 测试配置语法
sudo nginx -t
# 重新加载 Nginx
sudo systemctl reload nginx
复制代码

与现有服务集成

如果将Nginx作为homepage的反向代理: sudo nano /etc/nginx/sites-available/homepage 添加以下配置:

server {
    listen 80;
    server_name your-server-ip;  # 替换为您的服务器 IP

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
复制代码

启用配置:

sudo ln -s /etc/nginx/sites-available/homepage /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
复制代码

docker compose容器

为了让?普通用户能够运行docker compose命令而无需每次输入sudo应该确保?已经是docker组的成员

# 检查 ? 是否在 docker 组中
groups ?
# 如果 docker 不在列表中,执行以下命令添加:
sudo usermod -aG docker ?
# 注意:添加后需要重新登录 SSH 或执行 `newgrp docker` 使其生效
复制代码

Tailscale-内网穿透异地组网

准备工作:注册账号与生成密钥

首先,你需要一个Tailscale账号和一个认证密钥(Auth Key)。

  1. 注册Tailscale账号:访问Tailscale官网https://tailscale.com/,使用微软、Google或GitHub等第三方账号注册或登录。
  2. 生成认证密钥:
  • 登录后,进入控制台的 Settings > Personal settings > Keys 页面。
  • 点击 Generate auth key。如果需要多个设备使用,务必勾选 "Reusable"(可重复使用)选项。
  • 生成后,立即复制并妥善保存这串以 tskey-auth- 开头的密钥。关闭页面后将无法再次查看。

使用 Docker Compose 部署

推荐使用Docker Compose来管理和运行Tailscale容器。

  1. 创建专用目录:在Wyse 5070上,创建一个目录(如 tailscale-docker)来存放配置文件。
  2. 创建 docker-compose.yml 文件:在该目录下创建 docker-compose.yml 文件,并写入以下内容。请将 TS_AUTHKEY 的值替换为你刚才复制的认证密钥,并根据你的本地网络段修改 TS_ROUTES
version: '3.8'
services:
  tailscale:
    container_name: tailscale
    image: tailscale/tailscale:latest
    hostname: your-wyse5070 # 建议设置一个易于识别的设备名
    restart: always
    volumes:
      - ./tun:/dev/net/tun
      - ./lib:/var/lib
    environment:
      - TS_AUTHKEY=tskey-auth-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_ROUTES=192.168.1.0/24 # 请修改为你的Wyse设备所在局域网网段
    network_mode: host
    cap_add:
      - NET_ADMIN
    privileged: true
复制代码

主要配置参数说明

参数说明
image指定 Tailscale 官方 Docker 镜像。
volumes挂载 tun 设备用于网络隧道;挂载 lib 目录用于持久化Tailscale状态,避免重启后重新认证。
environmentTS_AUTHKEY:你的认证密钥,使容器能自动加入你的Tailnet。TS_ROUTES:通告本地子网路由,让Tailnet内其他设备能访问此网段。
network_mode: host使用宿主机的网络堆栈,这对VPN类服务很重要。
cap_add 与 privileged赋予容器必要的网络管理权限,例如访问 /dev/net/tun 设备。
  1. 启动容器:在包含 docker-compose.yml 文件的目录下,执行以下命令启动Tailscale容器。 sudo docker-compose up -d

验证部署与配置控制台

容器运行后,需要确认设备已上线并进行必要配置。

  1. 验证设备上线:访问 Tailscale 管理后台,在设备列表中查找你的设备(例如 your-wyse5070)。如果状态为 "Connected" 或 "Online",则表示部署成功。
  2. 启用子网路由(关键步骤):
  • 在Tailscale管理后台,找到你的Wyse设备,点击右侧的 "Edit route settings"。
  • 在弹出的窗口中,勾选你之前在 TS_ROUTES 中设置的局域网网段(例如 192.168.1.0/24),然后保存。这样,其他已连入Tailscale网络的设备就能通过Wyse设备访问你整个本地局域网了。
  1. (可选)禁用密钥过期:在设备设置中,可以考虑关闭默认的密钥过期策略,避免设备因密钥过期而离线。

filebrowser-文件管理器

部署步骤

  1. 创建部署目录和配置文件
# 创建专用目录
mkdir -p /home/hkj/filebrowser-multi
cd /home/hkj/filebrowser-multi

# 创建docker-compose.yml文件
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  filebrowser:
    image: filebrowser/filebrowser:latest
    container_name: filebrowser
    restart: unless-stopped
    ports:
      - "8080:80"
    volumes:
      - /home/hkj:/srv/home
      - /mnt/data1/nextcloud/hkj:/srv/data1-hkj
      - /mnt/data1/nextcloud/xsl:/srv/data1-xsl
      - /mnt/data1/nextcloud/hdc:/srv/data1-hdc
      - /mnt/data2/nextcloud:/srv/data2
      - /mnt/data3/nextcloud:/srv/data3
      - filebrowser-data:/config
    environment:
      - FILEBROWSER_SERVER_ROOT=/srv
      - FILEBROWSER_PORT=80
      - FILEBROWSER_BASEURL=/
      - FILEBROWSER_ADDRESS=0.0.0.0
      - FILEBROWSER_AUTH_METHOD=noauth
      - TZ=Asia/Shanghai
    networks:
      - filebrowser-net

volumes:
  filebrowser-data:

networks:
  filebrowser-net:
    driver: bridge
EOF
复制代码
  1. 确保所有挂载目录存在
# 创建所有必要的目录
sudo mkdir -p /mnt/data1/nextcloud/{hkj,xsl,hdc}
sudo mkdir -p /mnt/data2/nextcloud
sudo mkdir -p /mnt/data3/nextcloud

# 设置目录权限(确保FileBrowser可以访问)
sudo chmod -R 755 /mnt/data1/nextcloud/
sudo chmod -R 755 /mnt/data2/nextcloud/
sudo chmod -R 755 /mnt/data3/nextcloud/
sudo chmod -R 755 /home/hkj/

# 检查目录是否存在
ls -la /mnt/data1/nextcloud/
ls -la /mnt/data2/
ls -la /mnt/data3/
复制代码
  1. 部署
# 使用docker compose部署
sudo docker compose up -d
# 检查状态
sudo docker compose ps
# 等待几秒让服务完全启动
sleep 10
# 检查容器状态
sudo docker compose ps
# 查看日志
sudo docker compose logs --tail=20
# 测试访问
curl -I http://localhost:8080
echo "访问地址: http://192.168.137.120:8080"
复制代码

使用说明

成功部署后,您将在FileBrowser中看到以下目录结构:

/srv/
├── home/          # /home/hkj 目录
├── data1-hkj/     # /mnt/data1/nextcloud/hkj
├── data1-xsl/     # /mnt/data1/nextcloud/xsl  
├── data1-hdc/     # /mnt/data1/nextcloud/hdc
├── data2/         # /mnt/data2/nextcloud
└── data3/         # /mnt/data3/nextcloud
复制代码

nextcloud-私有云

version: '3.8'

services:
  # ==========================================
  # 1. 数据库服务 (MariaDB)
  # ==========================================
  database:
    image: mariadb:10.11
    container_name: nextcloud-db
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-read-only-compressed=OFF
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    networks:
      - nextcloud-net
  # ==========================================
  # 2. 缓存服务 (Redis)
  # ==========================================
  redis:
    image: redis:alpine
    container_name: nextcloud-redis
    restart: unless-stopped
    networks:
      - nextcloud-net
  # ==========================================
  # 3. Nextcloud 主程序
  # ==========================================
  app:
    image: nextcloud:latest
    container_name: nextcloud-app
    restart: unless-stopped
    ports:
      - "9801:80"    
    # 强制指定 DNS,解决容器无法联网的问题
    dns:
      - 223.5.5.5       # 阿里 DNS (国内解析快)
      - 1.1.1.1         # Cloudflare DNS (备用)
    volumes:
      - ./html:/var/www/html
      - /mnt/data1/nextcloud:/external/data1
      - /mnt/data2/nextcloud:/external/data2
      - /mnt/data3/nextcloud:/external/data3
      - /etc/localtime:/etc/localtime:ro
    environment:
      - MYSQL_HOST=database
      - MYSQL_USER=nextcloud
      - MYSQL_PASSWORD=
      - MYSQL_DATABASE=nextcloud
      - REDIS_HOST=redis
      - NEXTCLOUD_TRUSTED_DOMAINS=
      - PHP_MEMORY_LIMIT=2048M
      - PHP_UPLOAD_LIMIT=500G
      - PHP_MAX_EXECUTION_TIME=3600
      - PHP_MAX_INPUT_TIME=3600
      - PHP_POST_MAX_SIZE=500G
    depends_on:
      - database
      - redis
    networks:
      - nextcloud-net

networks:
  nextcloud-net:
    driver: bridge
复制代码
#ubantu#liunx#cockpit#v2rayA#Nginx#docker#filebrowser#nextcloud
头像

HaG_Cat

1分类数6文章数

该笔记已存活437 天 20 时 48 分 00 秒

QQQQ个人作品站个人作品站ArtStationArtStationBilibiliBilibili

哔哔

-

© 2025-2026 HaG_Cat‘Blog