垃圾佬自己的网站服务器

垃圾佬自己的网站服务器

首先,毋庸置疑,本站也是用垃圾佬自己的服务器搭建的,跑在一台老掉牙的主机上(4核 4G 1TB),出口就是普通的家宽,连公网IP都没有。如果你觉得租赁一台昂贵的VPS,一年几百块,那有点浪…

但是很多人自己的家宽没有公网IP,或者是动态的公网IP,如何绑在域名上呢? 实际上有2种方案:

A . 使用cloudflare的隧道来代理,简单粗暴省事儿,方法在前面的帖子里有 点这里查看

B. 使用FRP来代理自己的小主机,暴露端口到公网上。

A,不花钱,但是免费的cloudflare代理有的地区的访问速度实在感人,加载半天都加载不出来。 

B,需要花很少的钱租赁一台配置很低的VPS,速度完全取决于你这台VPS,一般来说我们选择固定带宽(带宽越大越好)但是配置比较低的,本站用的是2核2g 40g ,30Mbps的VPS主机作为FRP服务器,每个月大洋23。

20260828195510608-image

链接直达: 极速云

搭建内网的网站服务器

系统 – 装个ubuntu 或者debian 都行, 然后安装宝塔面板;

部署FRPC (FRP客户端)

环境说明:

  • 内网服务器(Ubuntu/Debian):跑宝塔 + WordPress。
  • VPS(Debian):跑 frps,域名已解析到这台 VPS
  • 内网服务器已通过宝塔部署好网站,且配置了 SSL 证书

部署 frpc(FRP 客户端)

frpc 装在内网服务器上,负责把内网的服务”推”到公网 VPS 上。

1. 安装 frpc

打开宝塔面板 → 软件商店 → 搜索 frp → 安装 frpc 客户端

安装完成后,配置文件在 /usr/local/frpc/frpc.toml

20260828200746304-image

2. 配置 frpc

用宝塔的 终端 或 SSH 编辑配置文件:

cat > /usr/local/frpc/frpc.toml << 'EOF'
serverAddr = "你的VPS公网IP"
serverPort = 15443
auth.token = "一个复杂的随机密码"

transport.tcpMax = true

[[proxies]]
name = "web-http"
type = "http"
localIP = "127.0.0.1"
localPort = 80
customDomains = ["你的域名"]

[[proxies]]
name = "web-https"
type = "https"
localIP = "127.0.0.1"
localPort = 443
customDomains = ["你的域名"]
EOF

字段说明:

字段 含义
serverAddr VPS 的公网 IP
serverPort frps 控制端口,两端要一致
auth.token 认证密钥,两端要一致,随便编一个复杂的
type = "http" HTTP 代理,用于 http 访问
type = "https" HTTPS 代理,透传 TLS 连接
localPort 内网 nginx 监听的端口
customDomains 你的域名,frps 根据域名路由请求

3. 启动 frpc

/usr/local/frpc/frpc -c /usr/local/frpc/frpc.toml

看到 login to server successstart proxy success 就说明连上了。

 

部署 frps(FRP 服务端)

frps 装在VPS 上,负责接收公网请求并转发给内网的 frpc。

1. 安装 frps

在 VPS 上装个宝塔面板(也可以不装,直接命令行操作),然后软件商店搜索 frp → 安装 frps 服务端

配置文件在 /usr/local/frps/frps.toml

2. 配置 frps

cat > /usr/local/frps/frps.toml << 'EOF'
bindPort = 15443
auth.token = "和客户端一样的密码"

vhostHTTPPort = 18080
vhostHTTPSPort = 443
EOF

关键点:vhostHTTPSPort = 443

这里直接让 frps 监听 443 端口。这样 frps 可以直接通过 SNI(域名)把 HTTPS 请求路由到对应的客户端,SSL 证书由内网的 nginx 自己处理,frps 只做透传,不用在 VPS 上配证书

3. VPS 上的 nginx 配置

如果 VPS 装了宝塔,nginx 默认会占用 80 和 443,需要调整:

  • 80 端口:配置反向代理,把请求转发给 frps 的 vhostHTTPPort

    在宝塔 → 网站 → 你的域名 → 反向代理 → 添加:

    • 目标 URL:http://127.0.0.1:18080
    • 发送域名:$host
  • 443 端口不要让 nginx 监听 443,把这个端口让给 frps

    在宝塔 → 网站 → 你的域名 → 设置里关掉 SSL 监听,同时检查默认站点的配置,把 listen 443 ssl 相关的行注释掉,否则会和 frps 抢端口。

4. 启动 frps

/usr/local/frps/frps -c /usr/local/frps/frps.toml

看到 frps started successfully 就 OK 了。

配置开机自启

服务端(VPS)

用 systemd 管理,崩溃自动重启:

cat > /etc/systemd/system/frps.service << 'EOF'
[Unit]
Description=frps service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/frps/frps -c /usr/local/frps/frps.toml
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable frps
systemctl start frps

客户端(内网)

用 crontab 实现开机自启:

(crontab -l 2>/dev/null; echo "@reboot sleep 10 && /usr/local/frpc/frpc -c /usr/local/frpc/frpc.toml > /dev/null 2>&1 &") | crontab -

防火墙配置

VPS 上只需要开放这几个端口:

端口 用途
22 SSH(用完可以关)
443 HTTPS 访问
15443 frps 控制连接
宝塔面板端口 管理用

内网 frps 的 18080、16337 等端口不要对外开放,它们只在本机 localhost 访问。

访问测试

配置完成后,访问 https://你的域名,请求的路径是这样的:

用户浏览器
  → https://你的域名:443(VPS 上的 frps)
  → 通过 frp 隧道转发到内网 frpc
  → 内网 nginx:443(处理 SSL,返回网页内容)
  → 原路返回给用户

整个过程对你网站的用户来说是完全透明的,他们看到的就是一个正常的 HTTPS 网站。

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容