前言
公网IP是个好东西,但是可遇而不可求,好在现在家宽IPv6
已经广泛可用了,但是在外面不总是有IPv6
环境的,你会说套一层Cloudflare
做转换呀,但是有个局限就是只能用HTTP
服务,那么有没有办法绕过这个限制,最大限度的薅Cloudflare
的羊毛呢
当然有,那就是Chisel
,Chisel
是一个端口转发以及流量转换工具,能将TCP
和UDP
流量用WebSocket
协议转发,关于Chisel
教程可以参考我写的这篇 Chisel - 强大的端口转发和网络隧道工具
准备工作
Cloudflare配置
1、在Cloudflare
的控制台配置地址解析,将你的域名解析到你的IPv6
地址上
2、在SSl/TLS
选项内选择源服务器
,创建源服务器证书
,将证书和密钥下载到内网服务器上,假设文件名为key.pem
和cert.pem
3、然后在规则
的Origin Rules
中创建规则,将所有传入请求重写到11443
因为家宽的
443
和80
等端口一般是封锁的,所以只能换其他端口
内网服务配置
在内网服务器上安装Chisel
,然后执行下面的命令:
chisel server -p 11443 --keepalive 10s --socks5 --reverse --auth 'user:password' --tls-key key.pem --tls-cert cert.pem
这里指定
Chisel
的服务端口为11443
,和上面Cloudflare
中定义的规则一致
用户名密码'user:password'根据情况调整,客户端也要保持一致
Chisel教程参考这个:Chisel - 强大的端口转发和网络隧道工具
开始使用
现在假如你在外面,只需要在电脑上执行下面这个命令:
chisel client -v --auth 'user:password' https://你的域名:443 \
22:localhost:22 \
8080:localhost:8080
这里映射了一个
SSH
端口和一个Web
端口你的域名
改成实际的域名地址
端口443
是Cloudflare
暴露的地址
然后在浏览器输入localhost:8080
,即可访问内网服务器上的8080
端口
执行ssh user@localhost
,即可SSH
连接到内网服务器