type
Post
status
Published
date
May 7, 2024
slug
ipv4-ipv6
summary
tags
开发
必看精选
category
技术分享
icon
password
由于自建了家庭服务器,苦于移动没有ipv4的公网ip,于是开启了一系列的“内网穿透之旅”,本文仅做个人记录,并非详细的教程。
1、zerotier组建异地局域网
win平台以及移动平台,安装好即可使用,无任何使用门槛,这里不再赘述。
ubuntu一键安装
加入网络命令,操作成功则返回 “200 join OK”
设置zerotier自启动
然后登录zerotier官网,勾选设备后会自动分配ip,加入了同一个zerotier的设备可以互相访问,这时候ssh和docker暴露的端口就都可以直接通过zerotier远程访问了。
zerotier虽然简单快捷,带来的问题就是要连接的设备必须打开zerotier才能连接上对应的设备。
2、ipv6-ddns/STUN内网穿透
为了解决公网也可以访问内网的家庭服务器的问题,我为家里的主路由器红米AX6000安装了lucky后台,通过ddns实现ipv6级别的公网地址,以及自带的STUN内网穿透实现ipv4级别的公网地址。
lucky后台简单好用,基本一看就懂,ddns可以绑定域名实现定向访问,但是STUN的公网地址并不固定,于是我写了js脚本通过定时任务每天更新公网ip地址到mysql,并且写了个页面和接口以供我访问。
fun-online-all/fun-online-api/utils at master · lengsukq/fun-online-all (github.com)
3、CloudFlare Tunnel
为了解决ipv6-ddns和STUN内网穿透获取到的地址不一致的问题,我使用了cf大善人的Tunnel,免费且易用,只需要你有一个域名绑定到cf上即可,这样即使是ipv4还是ipv6都可以通过域名直接访问到内网的服务,并且还可以通过域名直接同一局域网的其他设备。
cf大善人的服务确实非常好,但是也有一个问题,即国内对于访问cf服务器的速度并不是很友好,并且穿透ssh和mysql时客户端也需要开启软件。
4、樱花内网穿透
这个方案的优点是可以绑定自己的域名访问tcp服务,免费用户可以拥有两条隧道。至于付费服务,我觉得倒不如自己买服务器自建内网穿透了。

樱花frp内网穿透的免费服务对于网站少的人来说也够用了,但是网站一多就明显不够用,比如我就有mysql、pgsql、alist、fun-online等等,于是我现在还是选择了自建内网穿透。
如果将nginx内网穿透,再通过nginx进行端口反代,貌似也可以通过一个端口访问服务器内部其他端口,理论上是可行的,未验证。
5、nps/npc自建内网穿透
我用的是国内的华为云服务器2C2G,带宽3Mbit/s,这个带宽也还够用,我的服务的图片基本上都是使用图床的,只是文本数据完全够了,只不过国内的服务器如果要绑定域名需要ipc备案,需要花费不少时间。
我使用的方案是云服务器安装nps,内网服务器安装npc,建立隧道,从而通过公网访问内网的设备。再通过Nginx Proxy Manager反代端口,实现二级域名访问我的各大网页服务。
自建内网穿透是我个人认为最好的一个方案,当然成本也是最高的,不过安装各个服务倒是不难,就是映射端口比较繁琐。