惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

D
Docker
Simon Willison's Weblog
Simon Willison's Weblog
H
Help Net Security
F
Fortinet All Blogs
H
Heimdal Security Blog
S
Schneier on Security
L
LangChain Blog
博客园 - Franky
酷 壳 – CoolShell
酷 壳 – CoolShell
NISL@THU
NISL@THU
P
Palo Alto Networks Blog
J
Java Code Geeks
博客园 - 【当耐特】
The Last Watchdog
The Last Watchdog
W
WeLiveSecurity
www.infosecurity-magazine.com
www.infosecurity-magazine.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
I
InfoQ
Recorded Future
Recorded Future
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
CERT Recently Published Vulnerability Notes
T
Tenable Blog
腾讯CDC
C
Check Point Blog
量子位
M
MIT News - Artificial intelligence
GbyAI
GbyAI
罗磊的独立博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog
小众软件
小众软件
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
CXSECURITY Database RSS Feed - CXSecurity.com
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
V2EX - 技术
V2EX - 技术
T
Threatpost
Engineering at Meta
Engineering at Meta
Attack and Defense Labs
Attack and Defense Labs
T
Tailwind CSS Blog
S
Securelist
The Cloudflare Blog
博客园 - 叶小钗
L
LINUX DO - 最新话题
T
Troy Hunt's Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
爱范儿
爱范儿

林中阴影

林中阴影 | 关于蓝光刻录的一些调查 林中阴影 | 与IPv6地址战斗 林中阴影 | 半年前的NAS升级 林中阴影 | “智能” 家居笔记:一→两年后的回顾 林中阴影 | 旧手机做RDP客户端的一些尝试 林中阴影 | 一些矿渣的耗电量 林中阴影 | 穷人的IP-KVM远程访问 林中阴影 | “智能”家居笔记,其之二 林中阴影 | “智能”家居笔记,其之一 林中阴影 | 仅IPv6家庭内网服务实现v6+v4双栈访问 林中阴影 | 下载装小蜜监理拍摄的图片 林中阴影 | 几物互联 林中阴影 | 整了个“新”平板 林中阴影 | 获取招商信用卡账单的另一种方法 林中阴影 | 我在GitHub的⭐ 林中阴影 | Python与光学计算,2021 林中阴影 | 你可能并不需要内网穿透 林中阴影 | 2020 林中阴影 | 和(基本上)什么也不能连的电脑传递信息 林中阴影 | 我将贻笑于大方之家 林中阴影 | 一个新主题 林中阴影 | 2019过去了,我…… 林中阴影 | Beancount试用,半年后 林中阴影 | 自动输入剪贴板中的内容 林中阴影 | Unicode与数学公式 林中阴影 | Python中光学计算相关的库/Awesome Python for Optics 林中阴影 | 一本厕纸小说 林中阴影 | 震惊!为了在Windows上访问EXT4分区,他竟然做出了这样的事! 林中阴影 | 我的2018 林中阴影 | 笔记软件踩雷 林中阴影 | 关于BitMEX的杠杆 林中阴影 | 用Cloudflare的v4 API实现动态DNS(DDNS) 林中阴影 | 随机性从哪里来? 林中阴影 | 这次是纽约公共图书馆……而且居然还有第三部分? 林中阴影 | 这次是纽约公共图书馆……的第二天! 林中阴影 | 这次是纽约公共图书馆…… History Data for Bitcoin and Altcoins 林中阴影 | 幂律分布与Zipf's Law 林中阴影 | 学习笔记:神经网络的优化策略 林中阴影 | 最近对博客的改动 林中阴影 | 换了个新域名 林中阴影 | VPS初始化checklist 林中阴影 | 利用kcpraw流量加速 Aeolipile boiling: Your blog (with code and formula) on Steem! Aeolipile update: new theme, link generator and more! 林中阴影 | 离 林中阴影 | 社交恐惧症患者也想用Steem,所以我做了Aeolipile Aeolipile: your code and formula on Steem 林中阴影 | 2017年的fontconfig设置 林中阴影 | 为hugo加入数学公式支持 林中阴影 | 更琐碎的编辑器细节 / Some more trival details about Steemit 林中阴影 | 对Steem的一些细节考察 / A closer look to Steem 林中阴影 | 在Hugo中折叠部分内容 Brave New World: Firefox to Quantum Yesterday Once More: Firefox to Waterfox 林中阴影 | 首都图书馆半日游 林中阴影 | 关于那个IME helper Auto-Switch IME in Vim-Mode-Plus for Atom Editor 林中阴影 | 短消息:联通IPV6 林中阴影 | 迁移到hugo,第三部分:可是我想要更多的feed地址… 林中阴影 | 由wordpress到hugo:I 林中阴影 | 迁移到hugo,第二部分:部署到github 林中阴影 | Dota 2里,什么技能的冷却时间最短? 林中阴影 | 五年 林中阴影 | 为什么已经在Word里用M$的EMF格式了,图像还是不清楚? 林中阴影 | 用nethogs实时监控每个程序的流量使用 林中阴影 | shadowsocks 2016: 一次性认证,KCP及其他 林中阴影 | Deus ex machina 林中阴影 | QArt:更漂亮的QR码 林中阴影 | 我失去了heysh.tk域名 林中阴影 | 一个简单的在线LRC编辑器 林中阴影 | 野路子科研工具二则 林中阴影 | 我有显示器辣 林中阴影 | pentadactyl 和 Firefox 43 林中阴影 | 2014年的总结 林中阴影 | shadowsocks,ipv6和便宜的VPS,还有OpenVPN 林中阴影 | 红色楼梯 林中阴影 | 用于OPENWRT的流量监控脚本:wrtbwmon 林中阴影 | SFW:治疗拖延症的一次有益尝试 林中阴影 | 木漏れ日 林中阴影 | 一次奇怪的firefox故障,还有,一个普通市民是怎么修电脑的 林中阴影 | Mortal 林中阴影 | vim again 林中阴影 | 邪恶的Archlinux 林中阴影 | 十一年前,以及今天 林中阴影 | 贺叶霜的树 林中阴影 | Limited Gear Works 林中阴影 | 永生,其二 林中阴影 | 我的云上逃亡,或,google reader的替代品 林中阴影 | 如果你像我一样主力使用xfce但又觉得GNOME3也许会变得好一点于是安装之后才发现果然还是无法接受 林中阴影 | CATIA是个好软件 林中阴影 | blog再次复活 林中阴影 | 2012-2013 林中阴影 | Texlive 在archlinux上的安装,以及中文字体的设置 林中阴影 | phpwind论坛刷分脚本(可用于openwrt) 林中阴影 | THU课程表导出,油猴脚本,输出vcal 林中阴影 | html5-世界变动率计数器(仮) 林中阴影 | 总结:简单的vCal/iCalendar/.ics格式说明 林中阴影 | Hello Again~ 林中阴影 | chicken
林中阴影 | 内网访问第三季:在运营商的CGNAT网络下
2023-05-10 · via 林中阴影

是的,在这次这次之后,在酒店里百无聊赖的现在,我又开始折腾起VPN来了。

是的,在酒店里仍然没有IPv6地址。

为什么

正如前文所述,无论是Tailscale/Headscale、Nebula或Netmaker,原理均大同小异,都是在Wireguard基础上,用类STUN协议来穿越NAT,或利用TURN(DERP)服务器进行转发。在国内家庭宽带网络环境下,一般存在路由器、光猫、运营商三重NAT防火墙,STUN需要跨越多重阻碍,自动穿越希望渺茫;另一方面,公开转发服务多在国外,延迟高居不下,而国内私有云价格亦是高不可攀,自建服务并非经济的选择。

然而,三重NAT也并非坚不可摧。光猫一级,只要改为桥接,便可迎刃而解;路由一级,可以通过端口映射来绕过;而运营商级多为NAT1,通过Natternatmap,可以获得近似公网的效果。这样,使用纯粹的Wireguard,也能够直接回到家庭网络内部,免去国外中转的烦恼。

从广东联通到北京联通。

从广东联通到北京联通。

从广东联通经北京联通到甘肃移动。个人觉得,在这种延迟下追求Full Mesh也不再重要了。

从广东联通经北京联通到甘肃移动。个人觉得,在这种延迟下追求Full Mesh也不再重要了。

怎么做

在开始之前,首先检查是否满足以下要求:

  1. 一台长期开启的设备。

    既然有远程访问的要求,远处有一台服务器是很自然的吧。

  2. 光猫处于桥接状态。
  3. 主路由是OpenWRT,或者内网里有DMZ主机。

    或者,你是端口转发专家,可以从光猫外侧一路转发到最内部。

  4. 没有公网IPv4,但在路由器处测试NAT类型为NAT1。

    这里可以用Natter自带的功能来测试。如果你有公网IPv4的话,直接打开端口就好,而且我会很羡慕你。

  5. 一个自己的域名,最好是在Cloudflare上托管的。

    需要DDNS功能实时更新域名。如果没有域名的话,可能需要一些别的手段来实时得到端口。

具体配置部分已经有人写的很详细了。首先按照WireGuard Point to Site Configuration设置点到站点的连接,然后按照natmap Wiki设置NATMap即可。注意,在路由器上操作的时候,一定要记得在防火墙中打开对应端口

完成以上步骤之后,应该已经可以从移动网络访问内网的Wireguard Peer了。

一点问题

由于运营商网关不受我们控制,外网的IP和端口号都是随机分配的,每当地址变化时,NATMap将执行自定义脚本。在上面的Wiki中,利用DDNS,把IPv4地址和端口编码进IPv6的AAAA记录中。这并不是一种标准的技术,不过既然2001::就是给teredo使用的,在这里随便用用也无所谓。

对于Windows下的Wireguard客户端,我(和ChatGPT一起)写了一个PowerShell脚本,能够自动修改配置文件的Endpoint并调用wireguard.exe进行连接。

使用方法:

  1. 安装wireguard-windows,用客户端连接测试成功。
  2. 在文件夹C:\example下建立wg.ps1nat.conf,粘贴Gist内容。
  3. 按照实际情况修改nat.conf,以及wg.ps1$Hostname部分。Endpoint不必修改。
  4. 以管理员身份运行PowerShell
  5. 设置ps1脚本运行权限:Set-ExecutionPolicy RemoteSigned(或Unrestricted)
  6. 启动、重启Wireguard:C:\example\wg.ps1 -up
  7. 停止Wireguard:C:\example\wg.ps1 -down

在Windows 11, Powershell 5.1.22621.963测试通过,也可以配合Windows下的sudo使用。

另外,在Android下,也可以用termux运行nm-echo.sh来获得IP地址,手动修改Wireguard官方客户端中的IP。甚至,可以使用你喜欢的代理客户端(比如NB4A),配置好Wireguard Outbond和路由就可以了~

我这里最近一次分配的端口坚持了18天,所以应该不必时常刷新。

我这里最近一次分配的端口坚持了18天,所以应该不必时常刷新。

如果需要更为稳定的访问,可以参考reresolve-dns.ps1,这个脚本可以在上一次握手时间过久时刷新DNS,但是因为要添加计划任务,有一点过于复杂了。

Bonus

Natmap的另一种用法是映射BT客户端,从而使外来连接能够主动发起连接,获得所谓的High ID。见wits-fe/bittorrent-NAT-hole-punching。在PT站做种的时候应该会很有用。

附:性能测试

随便找了一个公共WiFi,用手机(一加7T)上Termux中的iperf3测速。

由于多层NAT的限制,Nebula类组网工具必须部署在路由器位置。可以看出,对路由器(万元级,K3)带来的压力还是比较大的。

WireGuard for Android

WireGuard for Android

NB4A提供的Wireguard Outbound

NB4A提供的Wireguard Outbound

Nebula,对端部署在路由器上

Nebula,对端部署在路由器上

很难想象,对于访问内网这样一个简单的需求,我居然花费了如此多的精力。不过,这次应该算是当前比较满意的方案,应该能坚持到下次水逆开始。