【DevOps】从零搭建:自建服务器公网 IP 部署指南

文章目录

一、简介

很多人想把自己电脑上跑通的各类服务、个人站点与应用项目对外开放,摆脱局域网仅限内网访问的局限。无论是自建博客、网盘、工具箱,还是各类自研业务服务,都希望借助公网 IP 实现全网可访问,随时随地远程连接使用。

但自建服务器从内网搭建到公网正式上线,涉及网络配置、端口规划、安全防护、服务映射等诸多细节,稍有不慎就会出现访问失败、端口占用、安全暴露等问题。本文就从实际部署角度,完整记录个人服务器搭载公网 IP、业务服务正式公网落地的全过程。

二、效果

以Vue打包好的dist 文件夹,纯净 Win11 服务器一键部署开始展示效果。

三、步骤

3.1、自建服务器部署网页

由于我是在 Windows服务器 上,选择最轻便的IIS,如果是考虑跨平台,建议使用nginx开源跨平台工具

3.1.1、开启 Win11 的 IIS 服务

在你的纯净 Win11 服务器上操作:

打开搜索 【启用或关闭 Windows 功能】 并打开

勾选以下选项(必须全勾):

Internet Information Services

展开它 → 勾选 【Web 管理工具】

展开它 → 勾选 【万维网服务】(默认子项全选)

点击 确定,等待安装完成 → 重启电脑

3.1.2、把 dist 文件夹放到服务器

在服务器随便建一个文件夹,比如:C:\web\vue-project

把你本地打包好的 dist 文件夹整个复制进去最终路径示例:C:\web\splat\dist

3.1.3、IIS 配置网站

搜索 【IIS 管理器】 并打开

左侧找到 【网站】 → 右键 【添加网站】

填写配置:

网站名称:随便填(如 vue-dist)

物理路径:选择你刚才的 dist 文件夹示例:C:\web\splat\dist

端口:填 80(默认网页端口)或 8080(不冲突就行)

点击 确定,网站直接启动

3.1.4、局域网访问网站

本地访问:浏览器打开 http://localhost(你设的端口)

局域网其他电脑访问:查服务器 IP → 打开 http://服务器IP(千万记得关防火墙或者配置出入站规则哈!)

3.2、给自建服务器整个公网IP

3.2.1、花生壳(最简单)

大部分人不愿意花钱,但是我还是提供一下这种简单的方式。(我也尝试过,但是没过多长时间过期了,不过确实简单)

下载 Windows 版,安装、注册、登录
2. 添加映射(核心)

打开客户端 → 内网穿透 → + 添加映射

应用名称:随便写(如:Vue12345)

应用类型:TCP(或 HTTP)

内网主机:127.0.0.1(本机)

内网端口:12345

外网域名:系统分配(免费)

外网端口:随机端口(免费)

点 确定 → 状态显示 在线 就成功了

拿到你的外网地址

示例(你实际会不一样):

http://xxxxxx.vicp.cc:32456

3.2.2、公网服务器 Frp 内网穿透

我有一台公网Ubuntu服务器,用 Ubuntu 服务器做 Frp 内网穿透,思路如下:

1.本地 Windows 服务器 ← 主动连接 → Ubuntu 公网服务器

2.外界访问 Ubuntu 公网 IP → 自动转发到本地的 Vue 项目

!!!注意:这里一定要注意frp的服务端和客户端的版本要一致(我这里用的0.58.1)

3.2.2.1、在 Ubuntu 公网服务器 上操作(服务端)

登录服务器

bash 复制代码
# 1. 下载 frp 服务端
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz

# 2. 解压
tar -zxvf frp_0.58.1_linux_amd64.tar.gz
cd frp_0.58.1_linux_amd64

# 3. 创建服务端配置
vim frps.toml

我的服务器frps.toml是这么配置的:

按 ESC → 输入 :wq 保存退出。

启动:

bash 复制代码
./frps -c frps.toml

这里可以查看下:

3.2.2.2、在 Windows 自建服务器 上操作(客户端)

下载windows 版 frpc:https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_windows_amd64.zip

如果这个太慢,可以用我上传到csdn的:
windows0.58.1客户端:https://download.csdn.net/download/u014597198/92835999

编辑,frpc.toml:

bash 复制代码
serverAddr = "你的Ubuntu公网IP"
serverPort = 7000

[[proxies]]
name = "vue-web"
type = "http"
localIP = "127.0.0.1"
localPort = 12345
customDomains = ["你的Ubuntu公网IP"]

双击启动 frpc.exe出现 start proxy success 就通了!

最终访问方式(全世界都能打开)

bash 复制代码
https://你的Ubuntu公网IP:8080

3.3、自建服务器解决"跨源隔离"

3.3.1、IIS 图形界面配置

打开 IIS 管理器 → 找到你部署 dist 的那个网站

中间功能视图里,双击 HTTP 响应头

右侧 操作 → 添加,依次加这 3 个头:

名称
Cross-Origin-Opener-Policy same-origin
Cross-Origin-Embedder-Policy require-corp
Cross-Origin-Resource-Policy same-origin

加完 直接刷新网页 就生效(不用重启 IIS / 网站)

3.3.2、vite.config.js

前端方面配置vite.config.js

js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

export default defineConfig({
  plugins: [vue()],
  server: {
    headers: {
      // 保留跨源隔离,但放宽 embed 策略(避免拦截合法资源)
      'Cross-Origin-Opener-Policy': 'same-origin',
      'Cross-Origin-Embedder-Policy': 'credentialless', // 替换 require-corp 为 credentialless
      'Cross-Origin-Resource-Policy': 'same-site'
    }
  }
})
相关推荐
www.021 小时前
通过 SSH 隧道将 GPT 调教为服务器专属 Agent(个人记录)
linux·服务器·vscode·gpt·大模型·ssh·api转发
祁_z1 小时前
Pydantic 数据校验 & 限流中间件(限制每个 IP 的请求频率,防止接口被刷爆)
网络协议·tcp/ip·中间件
张小姐的猫1 小时前
【Linux】多线程(中)—— 线程控制接口 | 线程库 | 线程局部存储
linux·运维·服务器
上海合宙LuatOS1 小时前
Air8000多网通信-NTP
服务器·arm开发·物联网·网络协议·luatos
打工人小夏1 小时前
使用finalshell在新服务器上部署前端页面
linux·服务器·前端·vue.js
故事还在继续吗1 小时前
嵌入式Linux基础知识
linux·运维·服务器
wangjialelele3 小时前
Linux mmap 机制:从 read/write 底层流程到手写 malloc 内存分配
linux·运维·服务器·mmap
草莓熊Lotso3 小时前
【Linux网络】UDP Socket 编程全解析:从回显服务到通用字典服务,从零实现工业级代码
linux·运维·服务器·数据库·c++·单片机·udp
Waay10 小时前
Linux Shell 知识点考评(一):grep 文本搜索(附答案)
linux·运维·服务器