现在各大运营商对家宽开放WEB的监管越加严格
很多地区都有人在开放WEB服务后被运营商断网警告
可以预见的未来家宽开WEB只会越来越难
我给出我使用过的几种方案来避开此类风险
云服务器转发(不推荐)
狭义上的VPN(较推荐)
虚拟局域网(较推荐)
代理分流(推荐)
云服务器转发
代表方案:Frp
实现难度:简单
现成教程极多,基本有手就行访问延迟:设备至云服务器+云服务器至家中服务器
买就近地区的云服务器一般来说延迟不会超过50ms,延迟尚可访问速度:一般
一般国内的服务器都是小水管,1M,3M,5M,8M,只能说看看网页还行,看视频同步文件啥的别想感知度:无感~强烈感知
不需要设备进行任何额外操作,但是带宽不够时感知强烈安全性:一般
毕竟你的服务还在公网摆着,如果有漏洞可能成为别人的跳板来侵入局域网其他问题:云服务器目前也不允许WEB服务绑定域名,只能使用IP+端口方式,申请[免费]IP证书较麻烦,不然只能使用HTTP,有潜在的安全风险
绑定多个服务时需要配置多个文件PS:Cloudflare的Tunnels也被归为此类,由于延迟太高,非常不推荐国内使用
狭义上的VPN
代表方案IPsec
实现难度:简单
现成方案极多,有手就行访问延迟:设备至家中服务器
直连到家延迟自然没话说
访问速度:极快
家里带宽多少就是多少感知度:无感~强烈感知
一般来说这类工具都需要你在用的时候打开,不用的时候关闭,即全局代理
不过有些客户端支持网段转发,只有目标网段才会被转发到服务器,可以算作无感回家安全性:强
只要你自己不泄露信息没人可以访问到你的内网,配合久经考验的算法应该值得信赖其他问题:
刚需公网IP
一般来说与代理软件不兼容
权限精细控制较难
虚拟组网
代表方案:Zerotier,N2N,Tailscale
实现难度:中等
高阶玩法可能需要一点网络知识,个人部署服务还要一些Linux知识访问延迟:极低~薛定谔
如果你的设备有公网IP或者NAT类型是1(理论上1-3都行),那么你的延迟就是直连
但是NAT是2-4,很有可能打洞不成功,需要走服务器中转,Zerotier的官方服务器在国外,速度懂得都懂,但是也可以自建Moon服务器来解决访问速度:薛定谔~极高
同上一条,如果打洞成功就是带宽上限,失败就听天由命感知度:无感~强烈感知
同上一条,打洞失败了就体验极差安全性:强
由于加入虚拟局域网需要自己确认,所以一般认为无安全风险(前提是服务提供商可以信任)
其他问题:如果不会配置网络路由,那么局域网的每台设备都要安装才能方便的访问
这类服务主要采用UDP连接,流量大时有被运营商暂时QOS的风险
一般来说这类软件在手机上运行时与代理不兼容,算是一个毒点
多个局域网时优势巨大
代理分流
代表方案:Null
似乎没看过成系统的方案实现难度:较难
需要一些Linux知识,以及编写V2ray/Xray/Clash等代理软件的配置文件访问延迟:极低~无法连接
本方案刚需公网IP/NAT1类型网络访问速度:无法连接~极高
同上一条,如果网络类型好就是带宽上限,不好就是无法连接感知度:无感~轻微感知
基于代理软件的分流,可以做到24H开启代理无感回家,可能会增加一点耗电安全性:强
代理要能通过防火墙,安全性应该是可以相信的其他问题:
代理分流配置示例
服务端我采用的V2ray/Xray(配置基本通用)
服务端配置最简化,这个配置完全没有权限控制
相当于服务器整个网段对客户端透明,只推荐个人使用,也没有使用TLS,反正默认auto加密够用了
{
"dns": {
"hosts": {
"x.com": "192.168.31.10"
}
},
"inbounds": [{
"port": 23333,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "UUID"
}
]
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIP" //启用内置hosts
}
}]
}
客户端我习惯使用Clash.meta(Mihomo)(实验性支持了IP4P,可以用NAT1类型回家)
增加一个启用IP4P的配置
引入一个节点用于连接服务器
增加一个代理组用于控制是否启用代理回家
rules增加需要的局域网及内网域名并指向代理组把这些规则放在最前面,防止被局域网规则跳过
experimental:
dialer-ip4p-convert: true
proxies:
- { name: '🇨🇳 服务器专用', type: vmess, server: x.com, port: 23333, uuid: UUID, alterId: 0, cipher: auto, network: tcp }
proxy-groups:
- { name: '🖥️ 专用服务', type: select, proxies: ['🇨🇳 服务器专用', DIRECT], url: 'https://connect.rom.miui.com/generate_204', interval: 60 }
rules:
- 'IP-CIDR,192.168.31.1/24,🖥️ 专用服务'
- 'DOMAIN-SUFFIX,x.com,🖥️ 专用服务'