内网穿透

内网穿透
青夢内网穿透
%% 内网穿透原理图 sequenceDiagram title 内网穿透原理图 participant A as 外网用户 participant B as 云服务器<br/>(FRP Server) rect dashed #e0e0e0 note right of C: 内网环境 participant C as FRP Client<br/>(内网客户端) participant D as 内网服务<br/>(NAS/Web等) end A->>B: 请求 B->>C: 转发 C->>D: 访问 D-->>C: 数据 C-->>B: 返回 B-->>A: 响应
内网穿透服务器推荐
- 个人开发者/家庭极轻度使用 (访问 NAS, 调试 Web):
- 云服务器:入门档 (如 1 vCPU, 1GB RAM, 系统盘 40GB)
- 带宽:10Mbps - 20Mbps (峰值)
- 流量:100GB - 500GB/月
- 系统:Ubuntu 22.04 LTS
- 软件:FRP (启用 token 认证,非 Web 服务尽量用 stcp/xtcp)
- 重点:安全配置!便宜带宽套餐。
- 小团队协作/远程办公 (多用户 RDP, 文件共享):
- 云服务器:轻量应用级 (如 2 vCPU, 2GB RAM, 系统盘 50-80GB)
- 带宽:30Mbps - 50Mbps (峰值)
- 流量:500GB - 2TB/月
- 系统:Ubuntu/Debian/CentOS Stream
- 软件:FRP / nps (启用所有认证)
- 重点:足够带宽、BGP线路、流量监控、强安全策略。
- 提供对外服务/高流量应用 (视频流、API 中转等):
- 云服务器:计算优化型 (如 4 vCPU, 4-8GB RAM 或更高)
- 带宽:100Mbps 或更高 (按需选择,甚至需要弹性带宽/负载均衡)
- 流量:5TB+/月 (按量付费或超大流量包)
- 系统:稳定 Linux 发行版
- 软件:FRP (精细配置)
- 重点:高性能带宽、可能需多节点负载均衡、严格的 DDoS 防护、全面的安全审计与监控。
内网穿透方案对比
特性 | FRP | WireGuard | ZeroTier | EasyTier |
---|---|---|---|---|
工作原理 | 反向代理,依赖公网服务器中转流量 | 基于UDP的现代VPN协议,内核级加密隧道 | P2P组网,中心服务器协调节点连接 | 去中心化P2P网络,支持智能路由与NAT穿透 |
配置复杂度 | ★★☆ 中等(需配置服务端/客户端) | ★☆☆ 简单(仅需交换公钥) | ★★☆ 简单(网页控制台管理) | ★★★ 复杂(需手动配置节点/路由) |
性能 | ▼▼ 受中转服务器带宽限制 | ▲▲▲ 高(内核集成,低延迟) | ▲▲ 中等(依赖P2P成功率) | ▲▲▲ 高(多路径智能选路) |
安全性 | ▼ 依赖传输层加密 | ▲▲▲ 强(ChaCha20/Curve25519加密) | ▲▲ 中(AES-256,中心化风险) | ▲▲ 中(可选WireGuard或AES-GCM) |
跨平台支持 | Windows/Linux/树莓派等 | 全平台(Linux/Windows/iOS/Android) | 全平台(含NAS设备) | 全平台(需手动编译) |
中心化依赖 | ▼▼ 强(必须公网服务器) | ▼ 弱(仅初始连接需端点) | ▼▼ 中(依赖根服务器协调) | ▲ 无(完全去中心化) |
关键优势 | 1. 支持TCP/HTTP协议穿透 2. 配置灵活 |
1. 低资源占用🚀 2. 抗网络波动(漫游支持) 3. 代码精简(仅4000行)🔍 |
1. 部署简易 2. 免费版支持100设备 |
1. 无单点故障🔒 2. 子网代理(点对网) 3. IPv6支持 |
主要缺点 | 1. 中转流量成本高💸 2. 延迟显著 |
1. NAT穿透能力弱(需中继) 2. 无内置用户管理🔑 |
1. 国内延迟高(根服务器在国外)🌏 2. 安卓端限制(需第三方修复) |
1. 文档不完善📖 2. 社区资源少 3. 配置复杂 |
典型场景 | 临时外网访问Web服务 | 服务器间加密通信/远程办公 | 小型物联网设备组网🌐 | 企业级跨地域网络(高可用需求)🏢 |
补充说明 | 适合简单场景,但长期使用需承担服务器成本;延迟和安全性是其瓶颈。 | 性能与安全兼顾,适合技术团队部署,但需额外工具解决NAT穿透问题(如中继服务器)。 | 用户体验友好,但国内稳定性依赖自建Moon节点;免费版设备数限制可能影响扩展。 | 去中心化架构适合复杂网络,但学习曲线陡峭,且开源生态不成熟可能增加维护成本。 |
💎 选择建议:
- 追求易用性 → ZeroTier;
- 需要高性能加密 → WireGuard;
- 无公网服务器且需去中心化 → EasyTier;
- 临时HTTP服务暴露 → FRP。
FRP内网穿透
Server
安装
frp
1
2
3wget https://raw.githubusercontent.com/mvscode/frps-onekey/master/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install设置后台运行
1
nohup ./frps -c frps.ini >/dev/null 2>&1 &
防火墙相关
1
2
3
4
5Debian或Ubuntu系统放行端口:
ufw allow 端口号
iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
CentOS系统放行端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanentFRP常用命令
1
2
3
4
5
6
7
8
9
10
11
12开启FRP
frps start
停止FRP
frps stop
重启FRP
frps restart
打开配置文件
frps config
查看FRP版本
frps version
检查FRP运行状态
frps status
Client
WireGuard内网穿透
Server
wireguard在centos中无法使用,推荐使用ubuntu/debian
更新apt及下载软件源
1
2
3
4
5
6apt-get update
apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release安装docker
添加docker官方的GPG密钥
1
2mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg设置存储库
1
2
3echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null安装docker引擎
1
2apt-get update
apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
安装wireguard
执行结束之后记录wireguard服务端配置(包含了wireguard管理地址和端口、登录用户和密码等配置)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17docker run -d \
--name=wg-easy \
-e WG_HOST=123.123.123.123 (?这里输入服务器的公网IP或解析好的域名) \
-e PASSWORD=passwd123 (?这里输入你的密码) \
-e WG_DEFAULT_ADDRESS=10.0.8.x (?默认IP地址)\
-e WG_DEFAULT_DNS=114.114.114.114,233.5.5.5 (?默认DNS)\
-e WG_ALLOWED_IPS=10.0.8.0/24 (?允许连接的IP段)\
-e WG_PERSISTENT_KEEPALIVE=25 (?重连间隔)\
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easydocker管理命令
1
2
3
4systemctl start docker #启动容器
systemctl enable docker #开机自启
systemctl status docker #查看状态
docker --version #查看docker版本更新wirefguard新版本
1
2
3
4docker stop wg-easy
docker rm wg-easy
docker pull weejewel/wg-easy
再次重新执行`安装wireguard`
Client
- 下载对应的wireguard客户端
- 访问wireguard管理地址,添加客户端,获取对应的配置文件
- 将配置文件导入对应的客户端中
Zerotier内网穿透
Server
安装ZeroTier
1
docker run --restart=on-failure:3 -d --name ztncui -e HTTP_PORT=4000 -e HTTP_ALL_INTERFACES=yes -e ZTNCUI_PASSWD=mrdoc.fun -p 4000:4000 keynetworks/ztncui
放行TCP端口4000/9993/3180和UDP端口9993
面板
http://ip:4000
配置:设置完密码后——点击Networks(网络)——点击Add network(添加网络)——自定义一个名称——点击Easy setup(设置简单)——点击Generate network address(生成网络地址),这里也可以自定义——点击Submit(提交)在服务器上创建moon服务器
1
docker run --name zerotier-moon -d -p 9993:9993 -p 9993:9993/udp -v /etc/ztconf/:/var/lib/zerotier-one jonnyan404/zerotier-moon -4 服务器IP
查看moonID
1
docker logs zerotier-moon
Client
下载对应的Zerotier客户端
加入添加的面板创建生成的网络地址
以管理员的身份,在
C:\ProgramData\ZeroTier\One
运行cmd加入moon服务器
1
zerotier-cli orbit moonID
检查是否加入moon服务器
1
zerotier-cli listpeers
EasyTier内网穿透
Server
Client
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果