支持IPV6了,来点有趣的

因为国内普及了IPV6,很多时候不需要再买云服务器也可以自己搭建一些有趣的服务,本篇文章里记载了一些实用的Docker镜像或者是折腾技巧。前提条件一定是通了IPV6,如何判定是否具备IPV6的环境呢? https://test-ipv6.com/index.html.zh_CN 而且有一个可以24小时不关机的小主机,不过要跑较多的服务的话最好内存大点,我开始8G然后又加了16G,无论是开虚拟机还是容器绝对是够用了。

私有云平台

可以安装 StarVCenter 的系统(基于CentOS7),StarVCenter如果是单机部署版本那几乎可以拿来当作虚拟机来使用,内置KVM以及Web管理,当然还有其他的私有云平台我暂未尝试。自行部署OpenStack也是OK的,但是StarVCenter简单易用,个人比较推荐,比较烦人的一点就是占用了80端口,需要进入SSH自行修改:

1/var/opt/apache-tomcat-8.0.28

修改tomcat的端口即可,另外还自带了MySQL,需要重置一下MySQL的Root账户密码。

不过很多时候对于运营商来说80和443端口容易封闭,需要把光猫改为桥接模式,直接使用支持IPV6的路由器(现在几乎稍微好一点的路由器都支持IPV6,小米4A这么便宜的路由器都支持)进行PPPOE拨号,另外还需要关闭路由的防火墙才能外网访问。

硬件推荐

小米路由器AX3000、 Redmi 路由器 AX5400

i3 10105(TDP65W)、 七彩虹(Colorful)CVN H510I GAMING、ITX200W电源 + Mini机箱、256G固态 + 2T东芝机械硬盘、32GB 3000Mhz内存 (简直实惠套餐)

TP-LINK 8口千兆交换机(网口若不够用可以买这个)

Docker镜像

DDNS-Go

https://github.com/jeessy2/ddns-go

简单好用的DDNS。自动更新域名解析到公网IP(支持百度云、阿里云、腾讯云dnspod、Cloudflare、华为云) 。域名转到阿里云底下,再通过阿里云提供的DNS解析API,动态变更DNS,这样域名所指定的IPV6地址始终是家里的主机地址。

Portainer

https://hub.docker.com/r/portainer/portainer

在任何云、数据中心或设备上内置对 Docker、Kubernetes、Swarm 和 Nomad 的支持,在几分钟内轻松配置、监控和保护容器。 方便管理Docker,直接浏览器操作了。

Dnsmasq

https://hub.docker.com/r/strm/dnsmasq https://hub.docker.com/r/jpillora/dnsmasq

Dnsmasq是一个开源的轻量级DNS转发和DHCP、TFTP服务器(不过我只用到了它的DNS功能),使用C语言编写。Dnsmasq针对家庭局域网等小型局域网设计,资源占用低,易于配置。 这个镜像我用来居家办公比较方便,直接通过Docker建立一个DNS服务器,解析到公司测试环境、预发或线上环境。

Clash + Clash_webui

Clash推荐直接本地运行, https://github.com/Dreamacro/clash/releases ,Clash运行是需要配置文件,大致如下(分别是http代理、socket代理、LAN内Http代理、基于规则、日志级别、外部控制接口端口):

1port: 2340
2socks-port: 2341
3allow-lan: true
4mode: Rule
5log-level: info
6external-controller: :12090
7proxies:
8    ......

如果是自动托管的订阅,需要在这里给转换一下, 谷歌搜一下Clash订阅转yml即可:

https://converter.niallapi.top/

docker安装webui管理XClash,通过12090提供这个接口来管理:

https://hub.docker.com/r/haishanh/yacd

ClashWebUI,如果在Linux上安装了Clash服务,再搭配ClashWebUI作为一个管理面板非常不错。

把Clash安装在Linux上就不存在用户限制了,任何设备只要通过Linux走HTTP代理,即可让家里所有设备都可以访问机场的节点,只要是处于同一个局域网中的都可以,打开手机的HTTP代理,服务器填写Linux主机即可。

Cloudreve

https://github.com/cloudreve/Cloudreve

一个私有网盘系统,通过 Aria2 支持离线下载,可使用多个从机节点分担下载任务。可以设多用户,如果是多个人使用的话Cloudreve是一个不错的选择,如果没有个人隐私性文件感觉Cloudreve意义不大,因为直接设置SMB、Webdav共享即可,不必Cloudreve这么复杂。

https://hub.docker.com/r/deluan/navidrome

Navidrome 是一个开源的音乐平台,前提是你得把下载好的歌曲导入到里面。如果你听的音乐因为版权问题经常需要在QQ音乐、网易云、咪咕音乐……里面反复横跳的话,那么Navidrome绝对适合你。而且iOS、Android、Mac、Windows均有Navidrome的API提供了客户端,同时也支持网页端播放:

为知笔记

https://www.wiz.cn/zh-cn/docker.html

作为一款笔记软件,为知笔记是目前我用的最爽的笔记软件,之前一直使用有道云笔记和印象笔记,不是广告就是流量到达上限,为知笔记私自部署则不存在这些问题,想上传多大附件就上传多大,想插多少图片就插入多少图片,迁移也很方便,只需要把容器数据卷备份一下即可。

关键是Windows、Mac、Linux、Web、Android、iOS多平台支持,这点做的是真心好!

DrawIO

https://hub.docker.com/r/jgraph/drawio

可以看成是processon的开源替代版本,功能和processon差别不大,私服部署就不用担心作图的数量问题了。

Bitwarden

https://hub.docker.com/r/bitwardenrs/server

一款密码管理工具,功能比较全面,支持浏览器、Windows、Mac、Linux、iOS、Android上的客户端,不过需要受信任的HTTPS连接。 可以生成密码,保存密码。如果平台是有很多需要记住密码但是又不想密码重复的情况下可以用此工具来解决困扰!

Samba

https://hub.docker.com/r/dperson/samba

1docker run -it --name samba -p 139:139 -p 445:445 -v /root/hdd:/mount -d dperson/samba -u "myusername;mypasssword" -s "shared;/mount/;yes;no;no;all;none"

/root/hdd 是需要共享的位置,即mount命令挂在的位置 myusername;mypasssword 是smb的用户名和密码 shared 是此共享的名称

OpenWRT

树莓派作为主路由的设置方式,重点是打开IPV6,并且设置为服务器模式:

下游路由器的IPV6网络设置为Native模式即可。

Webdav

Webdav是基于HTTP的,相对于SAMBA更具备通用性,所以直接一键部署Webdav吧:

1docker run --restart always -v /root/wk:/var/lib/dav/data -e AUTH_TYPE=Digest -e USERNAME=myusername -e PASSWORD=mypasssword --publish 8888:80 -d bytemark/webdav

https://hub.docker.com/r/bytemark/webdav

百度云

如果希望百度云直接下载到磁盘的话,那么使用Docker运行百度云是个不错的选择:

1docker create --name=baidunetdisk -p 5800:5800 -p 5900:5900 -v /root/baidu_config:/config -v /root/wk/data/BaiduNetDisk:/config/baidunetdiskdownload -e GROUP_ID=1000 -e USER_ID=1000 -e ENABLE_CJK_FONT=1 -e VNC_PASSWORD=XXXXXXX --restart unless-stopped johngong/baidunetdisk:latest

https://hub.docker.com/r/johngong/baidunetdisk

WebSSH

有时候需要SSH也Web化用于解决移动宽带不支持SSH的22号端口,所以需要有一个把SSH转为WebSocket的工具,顺便通过WebSocket代理把ipv6转为ipv4也能访问的服务,此时 jrohy/webssh 工具正好能做到这一点:

1docker run -d --net=host --log-driver json-file --log-opt max-file=1 --log-opt max-size=100m --restart always --name webssh -e TZ=Asia/Shanghai -e savePass=true jrohy/webssh

这款工具不但具备WebSSH的功能,还带上了SFTP协议的功能,属于强烈推荐的!

https://hub.docker.com/r/jrohy/webssh

Memos

Memos是一个可以部署在Docker上的小型备忘录平台,可以拿它做很多事情,记录一下要做的事情,或者生活中的趣事等等。它的好处就是,免费、易维护、安全、方便使用。 而且有Android与iOS客户端,虽然我用不着^-^

1docker run -d --name memos -p 5230:5230 -v ../physics/memos/:/var/opt/memos neosmemo/memos:latest

frpc

1docker run -d --restart always --network host --name frpc -v /mnt/ssd/docker/frpc/frpc.ini:/etc/frp/frpc.ini -v /mnt/ssd/docker/frpc:/etc/frp snowdreamtech/frpc

百度云下载

有时候难免会从百度云下载东西,所以直接跑一个Linux版本的百度云即可,通过web-nvc操作:

1docker run -d \
2--name=baidunetdisk \
3-p 5800:5800 \
4-p 5900:5900 \
5-v /mnt/ssd/docker/baidu_netdisk/config:/config \
6-v /mnt/sata2/media/Download:/config/downloads \
7-e VNC_PASSWORD=xxxx \
8--restart unless-stopped \
9johngong/baidunetdisk:latest

还是推荐用下面这个稳定一些,web访问端口6080

1docker run -d \
2--name=baidunetdisk \
3-p 6080:6080 \
4-p 5900:5901 -e vnc_password=xxxx \
5-v /mnt/sata2/media/Download:/home/baidu/baidunetdiskdownload/ \
6johnshine/baidunetdisk-crossover-vnc:latest

IPV4访问解决方案

如果你的环境只支持IPV4的话,你部署的服务是无法访问到的,所以需要通过CDN来进行一个V6转V4的操作,个人推荐百度云的内容分发网络CDN, https://console.bce.baidu.com/cdn ,优点如下:

1、支持源站 IPV6,也就是说百度云的机房可以支持源站是IPV6;

2、支持自定义源站端口,因为很多宽带虽然给了你公网IPV6,但是80、443、8080等都是封闭的;

3、支持动态HTTP,其实相当于支持了JSP、ASP、PHP、WebSocket等多种动态加速,我愿意称之为正向代理;

基于以上优点,百度CDN秒杀国内阿里云、腾讯云、七牛云、又拍云等厂商的CDN服务!

使用百度CND的注意点:

1、如果需要是部署的非静态资源网站,那么建议缓存过期时间配置为0S;

2、如果需要用到WebSocket等,需要开启动态加速;

Frp内网穿透服务

其实说实话百度云CDN真坑!基本不适合个人用户使用!

用了IPV6一段时间了,其实很多时候IPV6的稳定性确实拉跨(我用的联通的网络,IPV6速度感人),稳定性不如内网穿透,目前对于我的自建Web服务来说3-5M的带宽完全够用,如果是看视频的话,NAS就自带了这种功能,最近在使用绿联云的DX4600,其实对于新的NAS厂商来说,绿联云做的还是很垃圾的,所以买回来就刷了Debian系统,绿联云DX4600我主要看上他硬件了,是真漂亮!!下面列一些常见的小厂FRP,都很便宜随时更换:

https://chickfrp.com/ 每个月100G流量,40Mbps的带宽 image.png

https://www.ddnsto.com 8Mbps的带宽一年才52,真的是非常良心了 image.png