接上半部分教程 https://www.nodeloc.com/d/23373
根据上半部分的讲述,已经让客户端有了(无需注册、无需域名、无需公网简称三无)访问服务器资源的能力,而且在本地顺利建立了TUN接口,也就是所谓的第三层(网络层)。有了这层那么处理IP数据包就会变得得心应手,那么除了TUN还是其它什么玩法吗?
根据功能描述这个项目还有将服务器(TCP、UDP)映射至本地的能力,在本地直接访问服务器上一切可以访问的资源。
客户端配置
{
"client": {
"cdn-ip": "fast-fast.asuscomm.com",
"cdn-port": 443,
"scheme": "wss",
"global-url": "********.trycloudflare.com",
"tun": {
"enable": true,
"name": "tun443",
"ipv4": "10.20.30.40",
"ipv6": "2001::10:20:30:40",
"mtu": 1500,
"routes2": [
"0.0.0.0/0",
"::/1"
]
},
"tunnels": [
{
"listen": "127.0.0.1:20022",
"remote": "127.0.0.1:22",
"protocol": "tcp"
},
{
"listen": ":2096",
"remote": "8.8.8.8:443",
"protocol": "tcp"
},
{
"listen": "127.0.0.1:25201",
"remote": "37.19.203.1:5201",
"protocol": "tcp"
},
{
"listen": "127.0.0.1:25201",
"remote": "37.19.203.1:5201",
"protocol": "udp",
"timeout": 30
},
{
"listen": "127.0.0.1:21000",
"remote": "127.0.0.1:1000",
"protocol": "udp",
"timeout": 30
}
]
}
}
tun已经讲过就不多说了,主要看tunnels这个节点。
这个配置实现了以下几个功能:
1.将服务器的【22】端口映射至本地【20022】端口,通过ssh可直接连接至服务器(TCP)
ssh -p 20022 127.0.0.1
2.在本地通过【2096】端口访问8.8.8.8的【443】端口 (TCP)
curl -k --http2 -H 'accept: application/dns-json' https://127.0.0.1:2096/resolve?name=cloudflare.com
3.将iperf3的第三方测试地址映射至本地【25201】端口进行测试使用(TCP、UDP)
iperf3 -c 127.0.0.1 -p 25201 -u
4.将服务器的UDP【1000】端口映射到本地UDP【21000】(UDP)
socat -v UDP-LISTEN:1000,fork PIPE
在客户端使用下面的命令进行UDP测试
socat - UDP:127.0.0.1:21000
输入什么就会回显什么(回车确认),说明在转发UDP理论上是成功的。
总而言之这个开源项目我个人感觉还是比较大而全的(最大的好处应该还是免费而且速度快),就看后续更新维护如何了。
最后请大佬们多多指点,也希望能和大佬们多多交流,实现大家共同进步。
Good luck to all