vps装机

  • 项目目的: cloudcone 6个月彻底报废/之前每月大断线一次. 换腾讯云了, 记录下装机过程

███.███.█.██ -> ██.███.███.██

采购

  • 在这个促销页下单: 2核2GB50Gssd1TB, 相当实用且有诚意的套餐了, 99元/年, 2年之后原价396/年
    • 微信自动登录
  • 地域选择:
    • 我的应用场景: 1, ssh直连ip进行开发操作 2, 套上cloudflare后通过域名对外访问(且是大陆地区访问) 3, 和海外数据源进行拉取操作 4, 通过rathole连接到本地nas来伺服静态文件
    • 东京 > 新加坡 > 首尔 > 硅谷 > 法兰克福​
      • 延时: 东京>新加坡>其他
      • 首尔出口堵塞严重
      • 硅谷不适合nas和ssh
      • 欧洲没特殊需求没必要用
  • 镜像: 1panel, 基于ubuntu22
    • (吐槽: 腾讯云简直全方面优于cloudcone等海外厂商: 1, 有无东京机房 2, 有无1panel等方便镜像 3, 价格优势 4, 稳定优势 5, 余额支付等很到位/海外则是生硬的大笔充值/先充值后支付 5, 有手机短信安全提醒 6, 有现代化促销页/控制台/全家桶 7, 稳定背书/不可能跑路 8, 有手机小程序控制台 9, 有真人客服/而非阿三)
  • 关于选腾讯云/而不选阿里云: 阿里云2C味/爹味很浓, 产品很重型/权限很繁琐; 腾讯云有腾讯系的服务味
  • 关于”同价续费”:
    • 在控制台点击续费后没看到折扣/只能原价续, 待问下客服
    • 需要在618促销页点击, 这时的”下单”变成了”续费”

控制台

  • ip: ██.███.███.██
    • 到期时间: ████ 27年6月29
    • 用户名: ██████
    • 需先重置密码: ████████/
  • ssh免密登录: ssh-copy-id ██████@██.███.███.██
  • [██████████](█████://███████.█████.███████.███/██████████/████████/██████?████████████=███%███&███=██&██=█████-████████)
  • 腾讯2核2G50Gssd1TB, 相当实用且有诚意的套餐了, 99元/年, 2年之后原价396/年
  • 地域选择:
    • 我的应用场景: 1, ssh直连ip进行开发操作 2, 套上cloudflare后通过域名对外访问(且是大陆地区访问) 3, 和海外数据源进行拉取操作 4, 通过rathole连接到本地nas来伺服静态文件
    • 东京 > 新加坡 > 首尔 > 硅谷 > 法兰克福​
      • 延时: 东京>新加坡>其他
      • 首尔出口堵塞严重
      • 硅谷不适合nas和ssh
      • 欧洲没特殊需求没必要用
  • (吐槽: 腾讯云简直全方面优于cloudcone等海外厂商: 1, 有无东京机房 2, 有无1panel等方便镜像 3, 价格优势 4, 稳定优势 5, 余额支付等很到位/海外则是生硬的大笔充值/先充值后支付 5, 有手机短信安全提醒 6, 有现代化促销页/控制台/全家桶 7, 稳定背书/不可能跑路 8, 有手机小程序控制台)
  • 关于选腾讯云/而不选阿里云: 阿里云2C味/爹味很浓, 产品很重型/权限很繁琐; 腾讯云有腾讯系的服务味

1panel

  • ████端口, 地址: ~~http://43.163.240.46:8090/
  • 初次登录需要在命令行下: 1pctl user-info
    • 地址: http://$LOCAL_IP:8090/tencentcloud
    • 用户: ██████████
    • 密码: ████████/
  • panel: 原来地址: /███████, 用户名: ██████████, 密码: ██████████
  • 安装第三方应用商店

迁移

  • gitea
    • 新安装, 旧的依赖于mysql/不喜欢/开销大, 新的依赖于postgre
    • 通过openresty创建网站功能去创建:
      • 设置域名: git.314042.xyz
    • 初次访问时可设置管理员账户: ████, 密码: █████████
    • 配置: 勾选禁止自助注册
  • postgre
    • 用户名: ████_██████
    • 密码: ████████_██████
    • 端口: 5432
    • 开放ip加端口访问
  • fish
    • chsh更改默认shell
    • ~/.config/fish/config.fish
    • 安装fisher: curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
    • 安装z: fisher install jethrokuan/z
    • 自定义配置: alias c clear
      • set fish_user_paths /home/gkxk/repo/bin
      • set fish_greeting ''
  • 安装必要lib:
    • pyenv install 3.11需要:
      • apt install libssl-dev: 和openssl不是一个东西/openssl已有了
      • apt-get install liblzma-dev libsqlite3-dev libreadline-dev libffi-dev libncursesw5-dev libbz2-dev
      • 其他可能需要的: apt install build-essential
  • python3
    • 使用pyenv安装3.11: 性能好, LTS, 稳定
    • 3.11被明确标记为3.11
    • pyenv安装: curl -fsSL https://pyenv.run | bash
    • 添加pyenv init - fish | source到fish配置
    • 安装: pyenv install 3.11
    • 设为全局: pyenv global 3.11
  • node
    • 搜”fish shell node”, 使用nvm.fish安装: fisher install jorgebucaran/nvm.fish
    • 安装node: nvm install lts: latest为24, lts为22
    • 需设置默认版本: set --universal nvm_default_version lts
    • npm安装: npm i -g pm2
  • neovim
    • 设置fish配置: set -x EDITOR nvim; set -x VISUAL nvim
      • alias vi nvim
      • alias vim nvim
  • https证书重新申请
    • 主域名: *.██████.███
    • 其他域名: ██████.███,*.██████.███,██████.█████████.███,*.██████.███,██████.███ -> 一个一行
    • 之前需要先在1panel填好Acme账户和DNS账户
      • DNS账户名乱填: cloudflare, api token: █-_█████████████████████████████████████
    • 勾选推送到本地目录: /███/███/█████/██████.███
  • 各种服务的迁移
    • waline评论: 无需迁移, 顺序为 -> leancloud绑定到vercel绑定到cloudflare. cloudflare直接换域名的ip就行 -> cloudflare直接指向vercel, 和自己vps毫无关系
    • 主页: ███, ██████.███:
    • uptime:
    • 网盘原来用户: admin, 原来密码: ███████████
    • openresty
  • pm2
    • pm2 save && pm2 startup
    • rathole: pm2 start "./rathole --server config.toml" -n rathole
    • root下运行: env PATH=$PATH:/home/ubuntu/.local/share/nvm/v22.17.0/bin /home/ubuntu/.local/share/nvm/v22.17.0/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
    • root运行一次pm2 startup就行了, 平时运行pm2 save
  • rathole
    • rathole使用: ████端口
    • 本地 -> 远程:
      • 22 -> 6022
      • ollama
      • openwebui
      • n8n
      • nginx: 80 -> 6080
      • bookmarks: 8006 -> 6007
    • 配置openresty反向代理: 域名: file
  • ssh长连接
  • webdav服务器
    • 1panel商店, gowebdav, 40252端口
    • 路径: /███, 用户名: ████, 密码: █████████
  • 不同服务迁移的先后顺序
    • done:
      • bookmarks, uptime, panel, git, webhook
      • webdav搭建, obsidian设置同步
      • postgre db迁移
      • 笔记: note, dev, read, gtd, trades, targets, business
      • 博客: portfolio, blog
      • 主页: www, ██████, 102434
      • 好用的工具: paste, mindmap, net, active, clips
    • 不打算再运行:
      • wiki, wikis, wikic
      • pan
      • ollama
      • trade ->搭建中
      • ip
      • 小说: novels, novels1
      • english
  • 目前还不会的/待做的
    • SMTP主机, 用来对外发邮件 -> done, gamil实现了/其他家服务能脚本触发/无法waline触发
  • postgre db迁移
  • 切换至wsl1: wsl --set-version Ubuntu 1
  • powershell设置: echo $PROFILE, 然后配置写进去
    • New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force 将powershell作为ssh的默认shell
1
2
3
4
5
Set-PSReadLineOption -EditMode Emacs
Set-PSReadlineKeyHandler -Key Tab -Function MenuComplete
# Autocompletion for arrow keys
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward

wireguard配置

  • sudo apt install wireguard
    • (感慨与笔记: 在不想深究底层原理/只想绕过时, 只会事倍功半). 例子:
      • 易语言
      • 图形化爬虫/影刀