一次关于供别人视奸自己的网站部署
57
鼠鼠在家没事干无意中看到一个可以让别人视奸自己的项目,所以开始部署。也作为第一次写博客文章的素材。
第一步:创建虚拟机,过程跳过,配置如下
第二步:修改网络配置
将ipv4的配置改为手动,ip填写为192.168.6.105 子网掩码填写为255.255.255.0 网关填写为192.168.6.1
DNS改为手动,填写1.1.1.1,8.8.8.8 点击确定后重启虚拟机。
重启后打开网络配置,可以看到网络配置已修改完成。
第三步:安装依赖
验证python安装:python3
安装git
sudo apt update
sudo apt install git python3-pip
克隆仓库
sudo apt update && sudo apt upgrade git curl #更新 Git 和 curl
git clone --depth=1 -b main https://github.com/sleepy-project/sleepy.git #克隆仓库
安装依赖
# 创建虚拟环境(例如在项目目录下)
python3 -m venv .venv
# 激活虚拟环境
source .venv/bin/activate
# 安装依赖包(现在 pip 会安装到虚拟环境中)
pip install -r requirements.txt
编辑配置文件
nano .env
sleepy_main_host = "0.0.0.0" # 监听地址
sleepy_main_port = "9010" # 端口号
sleepy_secret = "改成别人猜不出来的密钥" # 密钥,相当于密码
sleepy_page_user = "你的名字" # 将显示在网页中
sleepy_page_favicon = "./static/favicon.ico" # 网站图标, 可替换 static/favicon.ico 自定义 (也可以用其他格式的, 自己改路径)
sleepy_page_more_text = "欢迎来到我的状态页!" # 说两句? (也可以留空)
sleepy_page_using_first = true # 使用中设备优先显示
第四步:启动
启动项目
python3 start.py
可以使用192.168.6.105:9010访问到界面
添加自启动
创建systemd文件
sudo nano /etc/systemd/system/sleepy-server.service
写入
[Unit]
Description=Sleepy Python Server
After=network.target
[Service]
Type=simple
# 使用当前用户(root)或者确保jiexuan用户存在
User=root
Group=root
WorkingDirectory=/home/jiexuan/sleepy
ExecStart=/usr/bin/python3 server.py
Restart=on-failure
RestartSec=5s
StandardOutput=file:/var/log/sleepy-server.log
StandardError=file:/var/log/sleepy-server-error.log
[Install]
WantedBy=multi-user.target
重新加载并启动服务
#重新加载
sudo systemctl daemon-reload
#重启服务
sudo systemctl restart sleepy-server
#服务状态
sudo systemctl status sleepy-server
第五步:使用frp实现公网访问并添加ssl证书
首先在cloudflare添加记录
安装certbot
sudo apt update
sudo apt install certbot python3-certbot-dns-cloudflare #以cloudflare为例
sudo certbot certonly --manual --preferred-challenges dns -d "status.jiexuan.xyz" #添加证书
登录你的 DNS 提供商控制台(如 Cloudflare、阿里云等)。
添加一条 TXT 记录,主机名为 _acme-challenge.example.com
,值为 Certbot 提供的字符串。
等待 DNS 生效(可用 dig
检查):
dig -t txt _acme-challenge.example.com
出现这个界面代表证书创建成功
安装frp
# Linux x86_64 示例
wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz
tar -zxvf frp_0.62.1_linux_amd64.tar.gz
cd frp_0.62.1_linux_amd64
配置frp
nano frpc.toml
serverAddr = "jiexuan.xyz" #改为你的公网ip
serverPort = 7000
auth.token = "qwerty" #改为你的token
[[proxies]]
name = "status"
type = "https"
customDomains = ["status.jiexuan.xyz"]
[proxies.plugin]
type = "https2http"
localAddr = "127.0.0.1:9010"
# HTTPS 证书相关的配置
crtPath = "/etc/letsencrypt/live/status.jiexuan.xyz/fullchain.pem"
keyPath = "/etc/letsencrypt/live/status.jiexuan.xyz/privkey.pem"
hostHeaderRewrite = "127.0.0.1"
requestHeaders.set.x-from-where = "frp"
启动frp
./frpc -c frpc.toml
提示[status] start proxy success证明你的frp配置成功
现在可以使用status.jiexuan.xyz访问sleepy
配置systemd
创建服务文件
sudo nano /etc/systemd/system/frpc.service
写入
[Unit]
Description=FRP Server Daemon
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/home/jiexuan/frp_0.62.1_linux_amd64
ExecStart=/home/jiexuan/frp_0.62.1_linux_amd64/frpc -c /home/jiexuan/frp_0.62.1_linux_amd64/frpc.toml
Restart=on-failure
RestartSec=5s
StandardOutput=file:/var/log/frps.log
StandardError=file:/var/log/frps-error.log
[Install]
WantedBy=multi-user.target
保存后退出
启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable frpc
sudo systemctl start frpc
检查状态
sudo systemctl status frpc