一、 基础环境与网络修复 (针对甲骨文/海外机)
新开的 VPS 第一件事是修复 DNS,否则无法拉取 Docker 镜像或安装脚本。
1. 暴力修复 DNS (防止还原)
Bash
# 1. 提权
sudo -i
# 2. 移除软链接并重建 DNS 配置
rm -f /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 1.1.1.1" >> /etc/resolv.conf
# 3. 锁定文件 (防止重启后被系统覆盖)
chattr +i /etc/resolv.conf
2. 安装 1Panel 面板
Bash
# 使用官方/备用源安装
curl -sSL https://resource.1panel.cn/quick_start.sh -o quick_start.sh && bash quick_start.sh
# 安装过程中记录好:面板端口、用户名、密码、安全入口
注:如果此时还装不上,检查 VPS 防火墙是否放行了面板端口。
二、 1Panel 环境准备与应用修复
登录面板后,先解决应用商店搜不到 Halo 的问题,并安装基础组件。
1. 修复应用商店 (手动拉取 Halo)
由于网络原因,官方库可能显示不全。直接从 GitHub 拉取 Halo 到本地库:
Bash
# 进入本地应用目录
cd /opt/1panel/resource/apps/local
# 克隆官方库到临时文件夹
git clone --depth 1 https://github.com/1Panel-dev/appstore.git temp_official
# 将 Halo 搬运到本地库
cp -r temp_official/apps/halo ./
# 清理并授权
rm -rf temp_official
chown -R root:root halo
chmod -R 755 halo
操作后:在面板“应用商店”点击“更新应用列表”,即可看到 Halo (Local)。
2. 安装必要环境
在应用商店搜索并安装:
OpenResty (Web服务器,勾选“端口外部访问”)
MySQL (数据库,建议 8.0 或 5.7)
三、 部署 Halo 博客与 HTTPS
1. 安装 Halo
在应用商店安装
Halo。网络:选择
1panel-network。端口:默认
8090。数据库:选择刚才安装的 MySQL 服务。
2. 创建反向代理与证书 (核心)
菜单:网站 -> 创建网站 -> 反向代理。
主域名:填写你的域名 (如
blog.80830814.xyz)。代理地址:
127.0.0.1:8090。HTTPS:
勾选
HTTPS。SSL 选项:选择
Acme 账户(如果没有就新建一个,用 Let's Encrypt)。勾选
自动续签。
点击确认,等待证书申请成功。
3. Halo 初始化 (易错点)
浏览器访问
https://你的域名。外部访问地址:必须修改为
https://你的域名(千万不要用默认的 localhost)。设置管理员账号并登录。
四、 部署 Hysteria 2 (TLS 借用模式)
利用 1Panel 申请好的证书,实现 Hy2 与博客共存。
1. 安装 Hysteria 2
Bash
bash <(curl -fsSL https://get.hy2.sh/)
2. 定位真实证书路径
1Panel 的证书路径层级较深,先用命令找到它:
Bash
# 搜索 fullchain.pem
find /opt/1panel -name "fullchain.pem"
记下包含你域名的那个路径,通常结构为:
/opt/1panel/apps/openresty/openresty/www/sites/你的域名/ssl/
3. 修改配置文件
编辑 /etc/hysteria/config.yaml,填入刚才找到的路径:
YAML
listen: :6443
# 证书部分:使用 TLS 模式,指向 1Panel 的证书文件
tls:
cert: /opt/1panel/apps/openresty/openresty/www/sites/你的域名/ssl/fullchain.pem
key: /opt/1panel/apps/openresty/openresty/www/sites/你的域名/ssl/privkey.pem
# 认证部分:必须保留
auth:
type: password
password: "你的强密码"
# 伪装部分:回落给本地博客
masquerade:
type: proxy
proxy:
url: https://你的域名
rewriteHost: true
# 注意:不要开启 acme 字段,因为端口被 Nginx 占用了
4. 赋予权限与重启
Hy2 需要权限读取 1Panel 的文件夹:
Bash
# 赋予 ssl 目录读取权限 (修改为你查到的实际目录)
chmod -R 755 /opt/1panel/apps/openresty/openresty/www/sites/你的域名/ssl/
# 重启服务
systemctl restart hysteria-server
# 查看状态
systemctl status hysteria-server
五、 客户端连接设置
地址/服务器:
你的域名(或 VPS IP)端口:
6443认证/密码:配置文件里填的密码
SNI (服务器名称指示):
你的域名(如blog.80830814.xyz) —— 必填
💡 维护小贴士
证书续期:1Panel 会自动续期证书。由于我们给了
chmod 755权限,且 Hy2 读取的是文件链接,理论上续期后 Hy2 也能自动读取新证书(偶尔可能需要systemctl restart hysteria-server)。新 VPS 部署:建议为新 VPS 分配一个新的二级域名(如
vps2.xxx.xyz),重复上述“申请证书”步骤,不要尝试在不同 VPS 间复制证书。