• Ubuntu 搭建局域网文件服务器

    黑群的文件突然不能用了,修了半天没搞定,所有就想自己搭建文件服务器,这样家里所有的电脑都能连上,好处

    方便在不同设备上共享传输

    存储空间大

    主要其实就是搭建一个Samba 服务器

    安装 Samba:在终端输入sudo apt-get update更新软件源,然后输入sudo apt-get install samba安装 Samba 服务器软件

    创建用户组和用户

    sudo groupadd smbgroup
    sudo useradd -M -G smbgroup richardmiao 
    sudo smbpasswd -a richardmiao #这是samb的密码,跟Ubuntu系统不共享

    创建共享文件夹

    sudo mkdir -p /srv/shared
    sudo chown nobody:nogroup /srv/shared
    sudo chmod 775 /srv/shared

    配置 Samba:输入sudo nano /etc/samba/smb.conf打开配置文件,在文件底部添加共享相关配置

    # 公共只读共享
    [public]
        path = /srv/shared
        comment = Public Share
        browseable = yes
        read only = yes
        guest ok = yes
        create mask = 0644
        directory mask = 0755
    
    # 可写共享(需要用户名密码)
    [private]
        path = /srv/shared
        comment = Private Share
        browseable = yes
        read only = no
        valid users = @smbgroup
        force group = smbgroup
        create mask = 0660
        directory mask = 0770
        writable = yes

    保存退出 Nano, ctrl + o => enter => ctrl + x

    启动与设置开机自启:启动 Samba 服务器,再设置开机自启动

    sudo systemctl restart smbd
    sudo systemctl status smbd  # 检查服务状态
    
    sudo systemctl enable smbd

    测试

    • Windows:\\192.168.8.110\public 或 \\192.168.8.110\private
    • macOS:Finder > 前往 > 连接服务器 > smb://服务器IP/public

    不出所料,没成功,public 可以访问,private 再输入用户名密码之后报错

    服务测试,通过 服务器上运行,检查服务是OK的

    smbclient //localhost/private -U richardmiao

    进入下面的交互界面,就说明服务是OK的

    windows 端检查

    Windows 会缓存与 Samba 服务器的连接会话,若之前用不同凭据连过,可能冲突。

    打开凭据管理,删除所有这个地址值下的凭据,找到 Windows 凭据 中与 192.168.8.110 相关的条目,删除,还是不行呀

    Samba 与 Windows 的 SMB 协议版本可能不兼容,导致权限判断异常。

    操作步骤(Windows 侧,管理员权限):

    1. 打开 本地组策略编辑器Win+R → 输入 gpedit.msc 回车,Win 家庭版需手动安装);
    2. 依次进入 计算机配置 → 管理模板 → 网络 → Lanman 工作站
    3. 找到 “启用 不安全的来宾登录” ,设置为 已启用

    4. 按 Win+S 搜索 启用或关闭 Windows 功能找到并勾选「SMB 1.0/CIFS 文件共享支持」

    结果来啦


    映射到磁盘方便使用

    话说,黑群里的资料咋整回来…

  • 基于Deepseek,搭建本地知识库


    基础环境:Windows, Anaconda, Docker

    Chat 大模型:deepseek-r1:1.5b

    知识库:Open Web UI

    先配置基础环境

    下载Anacondahttps://www.anaconda.com/download/success

    安装并被指国内镜像: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

    # 创建名为ai_knowledge的环境
    conda create -n ai_knowledge -y
    conda activate ai_knowledge
    


    下载并安装 ollama,全默认就可以

    模型的版本在这里找

    # 下载模型
    ollama pull deepseek-r1:1.5b
    
    # powershell  启动 ollama 服务
    Start-Process -FilePath "ollama" -ArgumentList "serve" -NoNewWindow

    这里也可以通过run 命令启动,同时可以打开ollama的对话窗口


    下载并安装好docker desktop,一路店到底

    #下载 并运行 open webUI
    docker pull ghcr.nju.edu.cn/open-webui/open-webui:main
    
    docker run -d -p 3000:8080 --restart no -v open-webui:/app/backend/data --name open-webui ghcr.nju.edu.cn/open-webui/open-webui:main

    或者直接点图中的run 来运行

    打开 http://localhost:3000/auth?redirect=%2F


    Open WebUI 自动与本地的ollama 连接好了

    测试一下效果


    开始创建知识库,看步骤1234

    上传文件到具体的知识库

    build 自己的模型,需要选择基础模型,权限,知识库,偷懒一起选了


    测试


    大功告成!


    注意事项:
    1. 上传文件很慢,因为要进行向量转换,所以笔记本的话就老老实实一个一个传

    2. 关注一下CPU 和内存

    API 的调用方式 后面继续更新….

  • AI 考证课程-第一天的资源

    提示词教程:

    1. LangGPT 结构化提示词
    2. 🔥中文 prompt 精选🔥,ChatGPT 使用指南,提升 ChatGPT 可玩性和可用性!🚀
    3. Anthropic 官方提示词库
    4. DeepSeek 官方提示词库



    安装 Docker

    下载并运行 Open WebUI

    docker pull ghcr.nju.edu.cn/open-webui/open-webui:main

    docker run -d -p 3000:8080 --restart no -v open-webui:/app/backend/data --name open-webui ghcr.nju.edu.cn/open-webui/open-webui:main

    如果有cuda: docker run -d -p 3000:8080 --gpus all --restart no -v open-webui:/app/backend/data --name open-webui ghcr.nju.edu.cn/open-webui/open-webui:cuda

    Ollama 把模型安装在其D盘
    创建模型存储文件夹:在 D 盘创建一个用于存放 Ollama 模型的文件夹,例如 “D:\OllamaAI”。
    设置环境变量:在系统设置中搜索 “系统变量” 并进入相关设置页面。在 “系统变量” 下方点击 “新建”,创建一个新的环境变量。变量名设置为 “OLLAMA_MODELS”,变量值设置为刚才在 D 盘创建的文件夹路径 “D:\OllamaAI”,点击 “确定” 保存设置。
    重启电脑:使环境变量设置生效。
    下载模型:重启后,按快捷键 Win+R,输入 “cmd” 并确定,打开命令提示符窗口。输入 “ollama run + 模型名称”,然后按回车键开始下载模型,例如 “ollama run deepseek – r1:7b”。下载完成后,模型会存储在 D 盘指定的文件夹中。


    ollama 安装
    下载链接:https://ollama.com/download

    pip install ollama

    💻 动手学 Ollama 🦙:https://datawhalechina.github.io/handy-ollama/

    1. miniconda 下载链接:https://www.anaconda.com/download/success
    2. 配置镜像:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
    3. 文档:
  • 腾讯CODING 填坑记

    目标:把代码部署到腾讯云的vm(ubuntu)上

    时间花费:差不多两天

    结果:终于成了

    下面是坑和填坑的故事:

    自定义的CI 只能使用Jenkins, 连自带的构建框架都不能选,然后很多配置跟原生的Jenkins还不一样…

    凭证的配置在开发者选项里面
    需要配置数据库密码和SSH 私钥,藏得很深

    Jenkins 不支持ssh-keygen 生成的OpenSSH私钥,需要通过ssh-keygen 命令转化成PEM
    ssh-keygen -p -m PEM -f /path/to/your/private_key -P “” -N “”

    私钥公钥的一些事情

    哪里生成,可以本地生成,也可以线上生成(比如Ubuntu)

    一个是私钥 – 不带.pub 的文件,要用在本地和Coding的Jenkins上

    一个是公钥 – 带.pub的文件,需要注册到服务器上,可以用命令,也可以手动
    ssh-copy-id username@remote_host
    手动则需要把私钥拷贝到~/.ssh/authorized_keys

    ssh 一个超级有用的参数 -v(verbose mode), 用来查看ssh的连接情况,判断哪里可能除了问题

    ssh -v username@remote_host  # 基本详细模式
    ssh -vv username@remote_host # 更详细的输出
    ssh -vvv username@remote_host # 最详细的调试输出

    另一个大坑是腾讯云的帐户,轻量级服务器的默认登录是lighthouse,不是ubuntu,这个坑要注意两点:
    a.注意用户权限,尤其是应用部署目录的

    b. 注意私钥,公钥的位置

    node环境如果选择any,他会给你一个老古董

    可以通过指定dokcer agent 来使用高版本的node

    agent {
          docker {
                reuseNode 'true'
                registryUrl 'https://coding-public-docker.pkg.coding.net'
                image 'public/docker/nodejs:18'
            }
    }


    后面再补吧~

  • 云端搭建mysql数据库-配置注意事项

    1. root 用户一般只允许本地链接,即 root’@’localhost’
    2. 创建允许远程连接(这里允许所有IP访问,可具体指定)的用户 CREATE USER ‘op_user’@’%’ IDENTIFIED BY ‘‘
    3. 授权(这里给所有,可以指定到Read,Write)GRANT ALL PRIVILEGES ON op_db.* TO ‘op_user’@’%’;
    4. 刷新权限:FLUSH PRIVILEGES;
    5. 防火墙,允许3306端口
    6. 还是连不上… 检查mysql 是否只开启了本地监听
    7. 修改mysql 配置文件:
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    [mysqld]
    bind-address = 0.0.0.0  # 允许所有 IP 连接(云环境常用)
    # 或 bind-address = <云服务器公网IP>  # 仅允许通过公网IP连接
    # mysqlx-bind-address 不需要改,这个是为 X Protocal(33060)定义的

    8. 重启MySQL

    sudo systemctl restart mysql

    9. 查看是否生效

    # 查看端口监听情况(需安装 net-tools)
    netstat -tulpn | grep 3306

    预期输出:
    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1234/mysqld
    (若显示 127.0.0.1:3306,说明修改未生效,需检查配置文件)

    10. 开始测试

    出现了 出现 Public Key Retrieval is not allowed 错误

    这通常与 MySQL 8.0+ 的加密认证方式有关。MySQL 8.0 默认使用 caching_sha2_password 插件,需要通过公钥进行密码验证,而某些客户端(如 JDBC、Navicat)默认禁用了自动获取公钥的功能

    找到驱动属性,如下使用DBeaver为例, 修改为True,测试成功


    如果是代码,需要在connect string上增加下面的属性,

    allowPublicKeyRetrieval=true&useSSL=true&requireSSL=true

    以nodejs 为例

    好了,收工~

  • 通过云端入口访问本地AI服务

    线上的AI虽然好用,但是你的数据会共享出去,如果使用AI API,价格很贵,搭建云上自有的AI服务器,服务器又很贵,于是有了

    云端 nginx,配置了反向代理, 本地通过nodejs 包装了deepseek r1/v3服务

    在本地机器上通过SSH 连接 本地和远端,命令如下

    ssh -R 8888:localhost:8888 ubuntu@129.211.63.154

    测试结果:



    细节稍后补充…

  • 常用资源

    招聘网站

    网站名链接说明评价
    BOSS 直聘https://www.zhipin.com创新招聘平台,求职者能直接与招聘负责人在线沟通,职位遍布全国各行业,尤其互联网行业岗位较多1。AI 转换简历超方便, 消息反馈及时,页面布局合理
    智联招聘http://www.zhaopin.com/全国性人才网站,提供网络招聘、猎头服务等多种人力资源服务,外企、国企和大型非互联网公司岗位较多479。高端人才招聘有优势,品牌知名度高,但二三线城市职位数量相对较少,部分职位投递后反馈不及时4。
    前程无忧http://www.51job.com/国内第一个集多种媒介资源优势的专业人力资源服务机构,提供招聘猎头、培训测评等服务,岗位覆盖范围广4。在各方面较为均衡,对三线城市的关注比其他同类网站更多,搜索功能强大,但搜索结果精准度有待提高,界面更新较慢4。
    猎聘网https://wow.liepin.com/主要针对中高端人才,提供严格的会员制度和一对一顾问式服务,有大量国企、名企的中高层岗位1。拥有高质量人才库,能为中高端人才提供精准职位匹配和推荐服务,但存在猎头发布重复或虚假职位信息的情况4。
    应届生求职网https://www.yingjiesheng.com专门面向应届毕业大学生及在校生的求职招聘网站,提供校园招聘、兼职实习等信息。专注应届生求职,信息针对性强,与众多企业合作,是应届生找工作的重要渠道。
    24365 大学生就业服务平台https://www.ncss.cn/由教育部主管,为高校毕业生及用人单位提供公共就业服务,提供求职服务、就业指导等一站式服务11。官方背景,信息真实可靠,岗位资源丰富,还提供大量就业指导资源,对高校毕业生就业帮助较大11。
    拉勾招聘https://www.lagou.com专注于互联网和 IT 行业的招聘,提供开发、产品、设计等细分领域岗位1。职位信息专业且细分,招聘需求和求职期望匹配度高,有投递实时反馈功能,能让求职者及时了解简历状态4。
    康强医疗人才网https://www.kq36.com专注于医疗卫生领域,为医院、药店、医药制药公司等提供招聘服务。是医疗行业求职者的重要平台,岗位针对性强,便于医疗人才找到合适职位。
    万行教师人才网https://www.job910.com专注教师招聘双选的在线平台,已开设全国 34 个省市自治区招聘频道,服务覆盖全国10。专注于教育行业,招聘信息覆盖城市多,简历数据丰富,是教师求职的常用网站10。
    国聘网https://www.iguopin.com/由国投人力资源服务有限公司运营,是骨干中央企业、地方国有企业和社会知名机构组织人才引进的重要平台8。国企央企岗位丰富,官方性和权威性强,为求职者提供了可靠的国企就业渠道。
    领英(LinkedIn)https://www.linkedin.com全球知名的职业社交平台,连接全球数亿职场人士,提供职业资讯与行业动态12。适合寻找涉外岗位或跨国企业工作机会,可通过人脉获取内推机会,还能了解行业动态,提升职场竞争力112。
    脉脉https://maimai.cn职场实名社交平台,除社交功能外,也有大量企业发布招聘信息。可通过人脉关系获取求职机会,了解行业动态和企业内部情况,但信息质量可能参差不齐,需自行甄别。
  • 偶遇Dijkstra

    今天做题,偶遇Dijkstra,记录下来
    Dijkstra算法由计算机科学家Edsger Dijkstra在1956年提出。该算法适用于有向图和无向图,且图中的边权重必须为非负数。
    算法理解
    假设有如下图,我们需要计算从A到D的最短路径

    我们用一个数组记录A到所有节点的距离[]

    1. 第一步初始化,到自己为0,到其他节点为无穷, 所以得到 [0, ∞, ∞, ∞]
    2. 第二步计算A直接相连节点,更新A到所有节点的距离,得到 [0, 1,4,∞]
    3. 第三步移到节点B, 计算B直接相连的,更新A到所有节点的距离,得到 [0, 1,3,6]
    4. 第四步移到节点C, 计算C直接相连的距离,更新A到所有节点的距离,得到 [0, 1,3,4]
    5. D是最后一个节点,不需要计算了~

    所以我们就得到了A 到其他节点的最短路径

    强调一下:所有边的权重非负,因为负的权重会破坏数组是已知节点的最优解(比如重复走负权重这条路会让总距离越来越短~)

    实际应用场景举例:

    1. 地图导航-计算最短/最快路径
    2. 网络数据包路由
    3. 物流运输
    4. 社交网络-找朋友
    5. 电力/交通系统规划


    如果权重为负,比如计算最小成本的时候,某些路径上出现了收益…

    下一篇介绍Bellman-Ford算法来正确处理负权重的问题。