构建思路:
!!!! tailscale 能访问网段需要 添加 –accept-routes 才能访问,wireguard的route添加无问题,所以之前想的端口转发的方式是可行的,记得ipforward.
前置断电和重启
设置bios
设置ac loss 为自动重启,
设置定时开机。
设置tailscale
curl -fsSL https://tailscale.com/install.sh | sh
systemctl enable tailscaled
tailscale up
配置内容
wireguard
南通这边:构建一个私有网络,配置openwrt(客户端)。配置wireguard服务端(e2)的机子。
用4G网模拟远程连接。
远程的openwrt也是用wg,达到内网直接访问的结果。(通过服务端中转)
zerotier
配置moon节点,只能dmz。远程的机器也可以作为路由节点
nps
建议dmz机器。op作为客户端,而且这个不定port的。
frps
建议dmz机器,偷懒可以不配
windows 或者linux的todesk,向日葵
保证至少三台?
配置完成后备份
这个IP会出现变化,所以要在每个部分用saltstack或者ansible-ssh(操作op)进行,
这个直接用nomad调用脚本运行。如果是远端,上传特定值或者saltstack执行。
如果是两地异地,都有ipv6的地址的话,可以直接用zerotier,或者wg加域名就好了。
可以完全挂机的版本 http://xue.798ka.cn/vps.html?class=1
注意 justhost也就是这个价钱,200M的话价格多些,就是网络有些不好。
https://idc.hongchen.gold/vps.html?class=30 NAT的价格
zerotier
curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi
配置zerotier
然后添加值到路由上
nps
安装下载
curl -O https://ghproxy.com/https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_amd64_server.tar.gz
drop 80 和443 端口
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 80 -j DROP
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 443 -j DROP
###/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 22 -j DROP
不能drop 22 ,不然内网都连不上了。。
/sbin/iptables -D INPUT -i eth0 -p tcp --destination-port 22 -j DROP
这个Append 改成Delete删除上一条的命令就可以了。
需要drop 端口,
需要save。
更新,不需要Drop,外网自动将80段口和443和常见的端口屏蔽了。
配置op的ddns
需要额外安装包
其他如dnspod,digitalocean也是这样。?? 不对看到已经安装了。
配置不成功的原因是需要读取对应域名的值,由于使用的是v6,然后配置的dns是0.2,将ipv6的去掉了,于是一直无法获取值。
v6也要适配很多地方。
!!! 配置,需要1.域名处使用@分割域名。
2.使用Cloudflare的GlobalKey,不能使用apitoken,权限较高。
3.需要通过smartDNS最快获取可用的DNS。DNS的分发速度很慢,cf的只有1.0.0.1和外网的8.8.8.8快,国内的速度慢,223.5.5.5慢很多,119.29.29.29好些。
dns的问题
发现电信自带的dns,国外的域名请求不会更新,只有指定服务器才会进行更新。
所以熟悉op的dns,或者相关dns
在微服务架构中,服务注册的方式其实大体上也只有两种,一种是使用 Zookeeper 和 etcd 等配置管理中心,另一种是使用 DNS 服务,比如说 Kubernetes 中的 CoreDNS 服务。
使用 DNS 在集群中做服务发现其实是一件比较容易的事情,这主要是因为绝大多数的计算机上都会安装 DNS 服务,所以这其实就是一种内置的、默认的服务发现方式,不过使用 DNS 做服务发现也会有一些问题,因为在默认情况下 DNS 记录的失效时间是 600s,这对于集群来讲其实并不是一个可以接受的时间,在实践中我们往往会启动单独的 DNS 服务满足服务发现的需求。
设置了双栈,应该是查询salt.zte 直接走了ipv6分配的dns。
注意上图,设置的Global 为空,所以默认就走了fe80的网络。
其他的机子Global都是设定了192.168.0.2的参数。
op上的dnsmaq
可以设定指定的dns只走这个namesever
server=/baidu.com/8.8.8.8#53
server=/taobao.com/114.114.114.114#53
server=/qq.com/8.8.4.4#53
server=/google.com/127.0.0.1#5300
address=/msy.com/192.168.0.1
设置ubuntu的默认resolver
就是将resolverctl的Gobal值换成自己需要的但是,eth0的dns没有换。
- 更新
/etc/systemd/resolved.conf
[Resolve]
DNS=1.1.1.1 8.8.8.8
FallbackDNS=8.8.4.4
- 重启系统解决:
service systemd-resolved restart
- 跑
systemd-resolve --status
输出应如下所示:
Global
DNS Servers: 1.1.1.1
8.8.8.8
...
还有systemd-resolved
在systemd-resolved中,好像v6的值只走v6的dns。。
dns的解析污染问题
强制将dns的解析走代理。。。如果代理失效,那么就是外网直接无法访问。
smartDNS
好像是返回查询结果中访问速度最快的IP?
DNS分流。
双栈
如果国外的直接访问速度慢,那就快速转成v4,达到快速访问的目的。
IPv4、IPv6 双栈 IP 优选功能如何使用?
目前 IPv6 已经开始普及,但 IPv6 网络在速度上,某些情况下还不如 IPv4。为在双栈网络下获得较好的体验,SmartDNS 提供来双栈IP优选机制,同一个域名,若 IPv4 的速度远快与 IPv6,那么 SmartDNS 就会阻止IPv6的解析、使用 IPv4 访问。可在配置文件中通过设置
dualstack-ip-selection yes
启用此功能,通过dualstack-ip-selection-threshold [time]
来修改阈值。如果要完全禁止 IPv6 AAAA记录解析,可设置force-AAAA-SOA yes
。
我选择的方案是:以adguard-home接管53号端口的UDP请求;把dnsmasq置入adguard中作为私域服务器处理内网有关事务,在adguard中设置上游服务器为smartdns以处理外网事务;在smartdns中设置多个(10个左右)上流公共DNS服务器(其中有UDP方式的,TCP的,DoH, DoT的),并且分组处理国内外的域名,达到高效目的。设置科学软件不对域名解析做特殊处理,全交给路由器的UDP53号口(它以为是dnsmasq,实际是adguardhome)处理。 这么选择的好处是,每个APP都能发挥它们的功能,客户机的DNS请求必须经过以上的APP处理,不能绕过,但也不会重复处理。坏处是,以上APP任一个掉链子,就会造成DNS请求无法完成,一般表现为上不了网。
https://www.right.com.cn/forum/thread-8180876-1-1.html
分组在自定义设置里面,bind就是将第一个服务器分组成china,然后填写pw上面的分组
使用bypass信息被更新了。。替换成了dnsmasq,可能bypass的smartdns也是内部的和op上的不兼容。
走了5553端口,和op上的smartdns不同。
新添加的v6,smartdns只是将v6的域名直解析v6的请求。添加的内容需要配置选项组china或者guowai,这里只解析国内的ipv6值,所以只是用china解析。
测试了国外的ipv6的值,好像dns直接不返回值。(这个ip要是国内的ip),
- 本帖的核心很简单,SmartDNS 分两组,一组上游全是国内 DNS,一组上游全是 DoT 或 DoH 的国外 DNS,分别作为富强软件的内外上游,懂得这个核心逻辑,自己捣鼓不会出大错的,我也可能有疏漏,不要完全相信我说的。
smartdns 在国外的访问
这里注意,默认情况下,smartdns添加内容只到5335(6053)第一个服务器端口,所以只要是国内网段,完全可以只用dnsmasq的53端口访问。
第二服务器是国外服务器端口,解析国外的域名时(指ip为国外),使用7053端口。
然而国外的访问大多数都是用v4代理,而且目前国外访问用的是单独的bypass的域名解析,所以思路可以是,指定域名内的几个值为白名单,
!!! 停用bypass后,域名解析可以访问AAAA,说明bypass将smartdns的流量都劫持了。包括国内的v6的域名。
如果添加不走代理的域名,就不会走代理,例如添加ipapi.co
dig xxx AAAA就成功了。
关闭Bypass前后netstat端口和pid对比,说明bypass是单独的smart。
查看配置文件发现,每次开启的时候Bypass和smartdns都会重写ps后指定的配置文件,而且文件内容是不同的配置。
@@@@ ChinaDNS-NG和相关的会强制劫持53端口。
zerotier的更新
可以用consul的key-value来作为分发机制?
考虑nacos作dns的分发。其实甚至基本的值可以用用TXT的dns来代替。。。
CPU挂了是不是动了机子。。
nomad的UI
nomad的ui没有认证,直接传到公网上去了。不安全,还是先关了吧
如果用orbit
可能需要和zerotier外主机连接判断。更好的方式是分发moons文件。单独生成一个文件夹,然后oss上传上去,接着op上和其他的客户端获取这个文件夹。
op的分发
这里其实没有必要用saltstack或者ansible,因为传递方式可以有很多种,这里,直接写python或shell脚本完成部署就可以了。文件传递可用rclone。。
op的关系,手动配置rclone的conf文件,然后写脚本获取moons。
adhome 直接和bypass在一起
ipv6设置成允许,就没问题了。但是这样国外的网站访问v6字段,和预期不符合。
!!!! bypass 重启前需要先关闭adhome,然后换连接端口。
再开,显示ChinaNG冲突。 主要因为chinaNG会劫持53端口,adhome也会劫持53端口。
使用oss
注意,生成一个用户,然后再单一bucket下授权,完全控制,rclone访问的时候必须要强制使用对象的桶,才能不报错。
DMZ
DMZ只针对ipv4,ipv6不走这个通道,然后最高上传60M,哪怕是转发,用iperf3也能跑满,
全双工是指两边同时收发可以跑满,所以iperf3,转发是全部跑满,60Mbps。
说明家里的线应该是5e的线,所以速度只能上下行合起来千兆。
就用这个100M网口的做DMZ
有设置变动了wan口的入站数据,居然是拒绝,不知道哪个应用搞得。,转为接受后变成FullCone NAT。