【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'
    }
  }
})
相关推荐
tedcloud1236 小时前
DeepSeek-TUI部署教程:打造CLI AI助手环境
服务器·人工智能·word·excel·dreamweaver
上海云盾-小余6 小时前
BGP 高防 IP 与 CDN 混合部署:攻防场景选型实战指南
网络·网络协议·tcp/ip
无情的西瓜皮7 小时前
MCP协议实战:用Python从零搭建一个AI Agent工具服务器(保姆级教程)
服务器·人工智能·python·mcp
万能的知了7 小时前
服务器托管 vs 云主机 vs 裸金属:一个决策故事
运维·服务器·云计算
茫忙然10 小时前
U 盘搭建免驱 Linux 便携系统教程
linux·服务器
lihao lihao11 小时前
linux匿名管道
linux·运维·服务器
STDD11 小时前
Glances:跨平台系统资源监控,浏览器实时查看服务器状态
运维·服务器
Forget_855012 小时前
HCIA——计算机网络诞生与发展
服务器·网络·计算机网络
xiaoshuaishuai812 小时前
C# AvaloniaUI 资源找不到报错
java·服务器·前端·windows·c#
zzipeng12 小时前
Linux LCD驱动
linux·运维·服务器