3 网络技术
Discover what this Hugo theme is all about and the core-concepts behind it.
Discover what this Hugo theme is all about and the core-concepts behind it.
推荐到namesilo.com注册域名,安全、支持支付宝支付、价格便宜,没有陷阱。
注册6位及以上数字的xyz域名(比如456766.xyz),只要$0.99,续费$0.99,注册+续费它9年才$10不到,不用担心域名过期。这也是仅有的成本,简直不要太安逸了。
打开https://www.cloudflare.com/zh-cn,通过一个电子邮件地址即可注册Cloudflare账号
准备好github账户,不会注册的请自行bing搜索
进入项目主页,项目地址:https://github.com/cmliu/edgetunnel,点击fork,弹出页面之间而点Create fork。
等待构建和部署完成,然后点继续处理项目
上面添加的UUID变量,值可以随便填,不过还是最好稍微复杂一些。
自定义域激活生效可能要几分钟,先去重新部署一下代码,使之前添加的UUID生效
重新部署完成后,尝试访问一下,基本上应该可以正常访问了
最后将设置的UUID附加到后面访问,即可拿到节点链接,页面往下拉有vless节点链接,别的方式自己研究。
恭喜,到这里就结束了,剩下的自己研究吧,
若有不明白或遇到什么问题,请给我留言。
这篇文章是给想从公司通过ssh连接到家里面的linux服务器而写的,是基于一个已经刷了armbian系统的电视盒子。当然,通过Ha盒子也是可以实现的。因为我们已经实现了内网穿透,远程控制Ha Box了,可以参考远程控制Homeassistant盒子。只是控制HA Box是通过http协议,而本文是使用ssh协议。
Cloudflare支持很多协议,比如连接到家里Windows电脑的远程桌面,共享存储什么的,下面是它支持的协议。
您已经将域名托管到cloudflare
你使用我们提供的armbian盒子(目前已不再提供,实际上可以是任意一台电脑,Windows、Linux或者Mac OS)
root密码root1234
如果接有显示器,那么登陆后查看ip地址
如果没有接显示器,可以从路由器后台查看主机名为armbian的设备ip
进入https://one.dash.cloudflare.com/
导航到Networks > Tunnels
然后Create a tunnel
tunnel type就默认的cloudflare,然后next
然后设置tunnel name,然后save tunnel
**Choose an operating system:**Debian
**Choose an architecture:**arm64-bit
安装完成后,点击右下角save
再回到Tunnels列表,就可以看到刚才创建的Tunnel了,拉到右边有3个点,点它会弹出配置入口Configure
切换到Public Hostname
Add a public hostname
同样,在Public hostnames列表也是点右边的3个小点进入配置
切换到Private Network
CIDR:192.168.3.0/24 (根据自身情况填写)
Description:随便
ssh客户端的设备也要安装cloudflared
# 注意ssh客户端所在的系统平台,下面的代码是ubuntu,amd64架构
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
然后修改~/.ssh/config文件,没有就创建一个,内容如下,我这里配了两个,根据自己情况设置
Host ssh.456766.xyz
ProxyCommand cloudflared access ssh --hostname %h
Host ssh.ha-box.xyz
ProxyCommand cloudflared access ssh --hostname %h
开启一个终端,执行
如果一切顺利,就可以看到下面的信息
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
此方法适用于非lvm情景。
用到的命令:parted、resize2fs
特别说明:此方法仅适用于分区扩容(包括根分区),对于缩容的情况不适用,切记!
先确保需要扩容的目标分区后面有一段空白磁盘空间,然后使用磁盘分区工具parted先改变目标分区结束点。
这里假设需要扩容的分区为/dev/sda4,文件系统为ext4,挂载在根节点上,原来的分区结束点为21G ,新结束点为30G
sudo parted
这时进入parted 工具界面下,先用print /dev/sda 查看磁盘分区信息和扩容目标分区的编号
(parted)print /dev/sda
假如对应的编号为4,使用命令resizepart改变扩容目标分区的结束点
(parted)resizepart 4 警告: 分区 /dev/sda4 正被使用。你确定要继续吗? 是/Yes/否/No? yes 结束点? [21GB]? 30GB
回车,成功后输入quit退出parted 工具界面。
这时目标分区的大小已经变为了30G,但文件系统还未扩展,所以扩展的部分并不能实际使用,接下来使用命令resize2fs扩容文件系统。
sudo resize2fs /dev/sda4
这时会把文件系统扩容到增加的空间上。
扩容目标分区完成!
可以使用
df -h sudo fdisk -l
等命令查看。
最近一段时间 Docker 镜像一直是 Pull 不下来的状态,感觉除了挂🪜,想直连 Docker Hub 是几乎不可能的。更糟糕的是,很多原本可靠的国内镜像站,例如一些大厂和高校运营的,也陆续关停了,这对我们这些个人开发者和中小企业来说是挺难受的。之前,通过这些镜像站,我们可以快速、方便地获取所需的 Docker 镜像,现在这条路也不行了。感觉这次动作不小,以后想直接访问 Docker Hub 是不可能了。所以我们得想办法搭建自己的私有镜像仓库。
最近网上有很多解决 Docker Hub 镜像拉不下来的文章,我大概总结一下有以下几种办法:
利用 Github Action Job 将 Docker Hub 镜像重新打 Tag 推送到阿里云等其他公有云镜像仓库里,这对于需要单个镜像很方便,批量就稍微麻烦一些,如果没🪜Github 访问也是个问题。
使用 CloudFlare Worker 对 Docker Hub 的访问请求做中转,这种也是最近使用比较多的,因为个人用户的免费计划每天有10万次免费请求,足够个人和中小企业使用了,实在不够可以花 5$ 购买不限制的。Worker 脚本在网上有很多,随便搜索都有示例。
因为 CloudFlare Worker 默认分配的workers.dev
结尾的域名国内根本解析不了,所以要把域名托管在 CloudFlare 上才能正常使用,可以购买 .xyz
等其他费用合适的域名专门用来做代理访问。
但 CloudFlare Worker CDN 经常抽风,有时很快有时很慢,可以借助自选优选IP工具帮助获取访问 CloudFlare 延迟最低的IP,将其写入到你的本地 Hosts 文件中。
说到自建首先我想到的就是买个配置比较低国外的服务器,搭建个 Nginx 做代理,分享下我配置成功的 Nginx 配置文件:
server {
listen 443 ssl;
server_name 域名;
ssl_certificate 证书地址;
ssl_certificate_key 密钥地址;
ssl_session_timeout 24h;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
location / {
proxy_pass https://registry-1.docker.io; # Docker Hub 的官方镜像仓库
proxy_set_header Host registry-1.docker.io;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_intercept_errors on;
recursive_error_pages on;
error_page 301 302 307 = @handle_redirect;
}
location @handle_redirect {
resolver 1.1.1.1;
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
然后就可以直接用 docker pull 域名/library/nginx:latest
获取镜像了或者配置到 Docker 的daemon.json
中。
Nginx 代理的方案你需要能购买到合适的国外服务器,不然网络会很慢。
又或者在国外服务器上搭建 Registry、Nexus、Harbor等镜像仓库,它们具备镜像缓存功能,如果私有镜像仓库中不存在则会去代理服务中获取最新镜像。
所以对于个人用户、中小企业来说可以将上述的 CloudFlare Worker
+ 自建镜像仓库
融合起来,本地搭建 Registry、Nexus、Harbor等镜像仓库,在镜像仓库中配置上自己的 CloudFlare Worker
Nginx反代
等代理地址或者当前一些可用的其他代理,当本地不存在则会通过这些代理去获取镜像,代理不可用时本地依然能用。
搭建 Docker Registry 可以参考下述命令:
docker run -d --restart=always --name registry \
-p 443:443
-e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \ #代理的镜像仓库URL
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \ #监听地址
-e REGISTRY_HTTP_HOST=https://xxx.cn \ #访问域名
-e REGISTRY_HTTP_TLS_CERTIFICATE=/opt/cert/cert.pem \ #域名证书
-e REGISTRY_HTTP_TLS_KEY=/opt/cert/cert.key \ #域名证书
-v /opt/cert:/opt/cert \ #挂载本地证书到容器中
-v /data:/var/lib/registry \ #持久化数据目录
registry:2
可选择使用 Docker 命令搭建 Nexus。
docker run -d -p 8081:8081 --name nexus sonatype/nexus3
或者使用 Rainbond 应用商店一键安装。
搭建完成后正常登录 Nexus 页面,根据页面引导配置 Docker 相关的存储 Repository 及代理 Repository 即可。
可参考 Harbor文档 搭建或者使用 Rainbond 应用商店一键安装。
最近十来天我尝试了很多镜像加速站,整理了以下镜像站目前是可用状态,但可能随时会遇到不可用、关停、访问比较慢的状态,建议同时配置多个镜像源。
提供商 | 地址 | |
---|---|---|
DaoCloud | https://docker.m.daocloud.io | |
阿里云 | https://<your_code>.mirror.aliyuncs.com | 登录阿里云分配 |
Docker镜像代理 | https://dockerproxy.com | 看运气 |
百度云 | https://mirror.baidubce.com | |
南京大学 | https://docker.nju.edu.cn | |
中科院 | https://mirror.iscas.ac.cn |
近期 Rainbond 社区也接受到许多用户反馈 Docker 镜像拉不下来,不能构建、打包了,因此 Rainbond 也搭建了个镜像加速服务,采用 CloudFlare + 国外服务器 Nginx 反代
的方案为 Rainbond 社区的用户们提供镜像加速服务。
目前速度挺快的(未来不好说
1.直接获取 Docker Hub 镜像
docker pull docker.rainbond.cc/library/node:20
docker pull docker.rainbond.cc/rainbond/rainbond:v5.17.2-release-allinone
2.配置镜像加速器
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://docker.rainbond.cc"]
}
EOF
systemctl daemon-reload
systemctl restart docker
Cloudflare好像发布了新的用户协议,不让搞代理了。这个按教程部署完,访问时抛出522的错误,但是之前部署的还可以用
请参考Cloudflare Page搭建免费科学上网节点 来搭建,这种方式还可以用
推荐到namesilo.com注册域名,安全、支持支付宝支付、价格便宜,没有陷阱。
注册6位及以上数字的xyz域名(比如456766.xyz),只要$0.99,续费$0.99,注册+续费它9年才$10不到,不用担心域名过期。这也是仅有的成本,简直不要太安逸了。
打开https://www.cloudflare.com/zh-cn,通过一个电子邮件地址即可注册Cloudflare账号
https://github.com/zizifn/edgetunnel/blob/main/src/worker-vless.js
备用地址 (如果你打开不github的话,可以试试从onedrive下载worker-vless.js文件)
登陆Cloudflare,然后添加网站,就是将你刚注册的域名添加到这里
然后选择免费的方案就行,如下图,然后继续
此时我们先不添加DNS,先把域名解析服务器改到Cloudflare,点击左边栏 DNS,记下Cloudflare名称服务器地址,你看到的可能和我看到不一定一样,别弄错了。
去域名注册平台后台https://www.namesilo.com/account_domains.php
填入Cloudflare的名称服务器地址,然后提交(submit),名称服务器生效可能要等一段时间
回到Cloudflare,导航到Workers 和 Pages 创建应用程序
名称可以随意,完了点击部署按钮,代码先不管它
Worker部署成功
点击编辑代码,将https://github.com/zizifn/edgetunnel/blob/main/src/worker-vless.js代码复制过来,贴到编辑器里面替换原来的内容
修改两个地方:
1,第7行的userID,随便找个UUID替换,点击这里获取一个 4,注意用version4,否则会报UUID不合法。
2,第9行的proxyIP,可以找前辈们提供的,随便在下面的列表中找一个
cdn-all.xn--b6gac.eu.org cdn.xn--b6gac.eu.org cdn-b100.xn--b6gac.eu.org edgetunnel.anycast.eu.org cdn.anycast.eu.org
userID不用改也行 ,userID记在小本本上以后要用
proxyIP我测试了也可以不用改,空着就行
保存并部署(按钮在屏幕右上角)
自定义域前缀可以随意,根据自己需要填写然后点击“添加自定义域”,等一会儿生效后就可以用了。。。
在浏览器地址栏输入你刚配置的自定义域+代码中配置的userID,得到相应的科学上网的配置参数
比如:https://hi.cntv.chat/6efcf080-745f-42c0-a0e6-4b0f9a2f8f1c
复制图上标记的内容,到科学上网工具中通过剪贴板导入或手动输入配置参数,注意协议是VLESS。我PC端用的V2rayA,安卓手机用的V2rayNG
好了,本教程到此结束,快去享受免费、快速的、自由的网络去吧!
若有不明白或遇到什么问题,请给我留言。