本文档部分方案作者没验证,只停在理论上,如果有朋友按文章操作,有什么问题可以发出来,大家一起讨论,谢谢
没有固定的外网IP,如何将公有云的公网IP绑定到公司内网服务器,或者如何在公有云云服务器 访问公司内网服务器
如果你公司没有固定的公网 IP,但你有一台公有云的云服务器(如阿里云、腾讯云、AWS 等),你可以通过以下几种方式实现:
方案一:使用 NAT 网关 / 云企业网(CEN)(推荐)(frp已验证)
适用场景:
公司内网服务器无法直接访问公网
你有公有云上的云服务器(带公网 IP)
需要从云服务器访问公司内网服务
实现方式:
在公有云中创建 NAT 网关或云企业网(CEN)
例如,在阿里云中可以使用 NAT 网关 或 云企业网(CEN) 来打通私网和公网。
配置 VPC 路由表,将公司内网流量路由到云服务器。
在公司内网服务器上部署一个服务(如 SSH、Web、API)
该服务监听在内网 IP 上(如 192.168.x.x)
在云服务器上配置反向代理或端口转发
使用 iptables、socat、nginx 或 frp 将请求转发到公司内网服务器。
示例:使用 frp 实现内网穿透
步骤如下:
在云服务器上安装 frp(作为服务端)
mkdir ~/`date +%F`
cd ~/`date +%F`
wget https://github.com/fatedier/frp/releases/download/v0.66.0/frp_0.66.0_linux_amd64.tar.gz
tar -zxvf frp_0.66.0_linux_amd64.tar.gz
cd frp_0.66.0_linux_amd64
#配置文件
cat frps.toml
bindPort = 2000
#启动
./frps -c frps.toml
在公司内网服务器上安装 frp(客户端)
mkdir ~/`date +%F`
cd ~/`date +%F`
wget https://github.com/fatedier/frp/releases/download/v0.66.0/frp_0.66.0_linux_amd64.tar.gz
tar -zxvf frp_0.66.0_linux_amd64.tar.gz
cd frp_0.66.0_linux_amd64
# 配置文件
cat frpc.toml
serverAddr = "外网服务器ip"
serverPort = 2000 # 需要与服务器配置的端口一致
[[proxies]]
name = "test-tcp" # 自定义
type = "tcp" # 因为要连接的是22端口,是tcp协议
localIP = "内网服务器ip"
localPort = 22
remotePort = 2100 # 外网服务器从这个端口连接到内网的 22 端口
启动客户端:
./frpc -c ./frpc.ini
从外网连接到内网
ssh root@119.29.216.169 -p 2100

✅ 方案二:使用 SSH 隧道(适合临时访问)
适用场景:
你需要临时访问公司内网服务器
公有云服务器有公网 IP
公司内网服务器可以访问公有云服务器(或通过防火墙允许)
步骤如下:
在公司内网服务器上启动 SSH 客户端连接到云服务器
ssh -R 8080:192.168.1.100:80 user@<云服务器IP>
这会将云服务器的 8080 端口映射到公司内网的 80 端口。
在云服务器上访问内网服务
✅ 方案三:使用 VPC 对等连接 / 专线接入(高级方案)
适用场景:
公司有私有网络(VPC)
你有公有云的 VPC
需要安全地打通两个网络
实现方式:
在阿里云/腾讯云中创建 VPC 对等连接
在阿里云中称为 VPC 对等连接(Peering Connection)
在腾讯云中称为 跨地域 VPC 对等连接
配置路由表
在公司 VPC 中添加一条路由规则,将云服务器所在的 VPC 网段指向对等连接。
在云服务器上访问公司内网服务
通过内网 IP 直接访问公司内网服务器(如 192.168.x.x)
📌 总结对比
方法 是否需要公网 IP 是否复杂 推荐场景
NAT 网关 / CEN ❌ ⭐⭐⭐⭐ 公司内网与云服务器互通
frp 内网穿透 ❌ ⭐⭐⭐ 快速访问内网服务
SSH 隧道 ❌ ⭐⭐ 临时访问
VPC 对等连接 ❌ ⭐⭐⭐⭐⭐ 高级、安全、长期使用