小主机加固态挂网心云回本实录

前言

前几天在小黄鱼搞了个4005U的小主机,直接刷了openwrt,网卡为AR9382,可惜找不到无线网卡驱动,于是拆开想看下换块网卡,可惜和我台式机的不兼容,比台式机的小了一半,恰巧发现背板上留了个stata支架,貌似还可以扩充个stata硬盘,然后看了下主板的接口,群里的大佬说买根ph2.0的线转接成硬盘的电源线就行,不过没有闲置的硬盘,感觉买来也大概率闲置,就不管了。

后来在折腾openwrt过程中知道了网心云容器魔方这个docker项目,就是把自己闲置的硬盘和宽带共享给别人进行边缘计算,然后就试着布置了下,收益有点低啊,感觉我来晚了,看贴吧说以前高。但是单口小主机真不方便,于是买了usb转网卡的接线,想扩充一个网口,然后又下单了一个可能兼容的无线网卡(有点后悔,应该加点钱买多网口小主机的),然后某次看到这个stata固态,咦这价格还挺香,买来挂网心云,假如每天收入1块5,那也只要半年就白得一块固态硬盘,真香,于是开搞,买ph2.0的线,但是看介绍说接线注意电压,我这没电压表,于是想着能不能用arduino测电压,于是找到了这个帖子:使用arduino测量电压的超级简单的方法

/*
 *使用俩个相同的电阻串联,并将其中一个电阻的两端分别接入arduino的A0接口与GND接口实现电压的测量
 *注意所测的电压不能超过"串联电阻数量"乘"5V",否则可能会烧掉!!!!!!!!!!!!
 *注意所测的电压不能超过"串联电阻数量"乘"5V",否则可能会烧掉!!!!!!!!!!!!
 *注意所测的电压不能超过"串联电阻数量"乘"5V",否则可能会烧掉!!!!!!!!!!!!
 *注意所测的电压不能超过"串联电阻数量"乘"5V",否则可能会烧掉!!!!!!!!!!!!
 *注意所测的电压不能超过"串联电阻数量"乘"5V",否则可能会烧掉!!!!!!!!!!!!
 */



#define BV 0.0048875855327468   //analog将5V分成了1023个单位——5/1023
#define num 2;                  //串联所接的电阻的数量
int v;                          //定义analog所测得的数字(1~1023)
long double lv;                 //定义所测电阻的电压
double zv;                      //定义整个电路的电压
void setup() {
  Serial.begin(9600);
  pinMode(A0,INPUT);

}

void loop() {
  v = analogRead(A0);
  lv = v * BV;
  zv = lv * num;                //因为两个电阻是一样的大小,所以直接相乘就可以得到所测电压的大小
  Serial.println(zv);
}

后来线到了,实际也没测,想着应该只要接口对应,就不会有啥问题,于是直接插了上去,能用,就是网卡,还是找不到能用的驱动,也懒得退了,先不管了,安装网心云docker容器实例代码

部署容器魔方

基于虚拟网卡的多开

docker run -d --name=wxedge --restart=always --privileged --net=host --tmpfs /run --tmpfs /tmp -v /media/wxedge_storage:/storage:rw registry.hub.docker.com/onething1/wxedge:latest

然后在浏览器输入宿主机ip:18888进入后台管理界面

必选参数说明:

–privileged 必须打开(爱快docker不支持)。

–net 目前只支持host(推荐)和macvlan两种网络模式(不熟悉docker和网络知识的用户不要尝试macvlan,非常复杂!)。

“磁盘路径”是磁盘的目录,请根据自己实际磁盘目录更改,必须挂载到容器内的/storage目录,推荐磁盘是ext4文件系统,至少需要50G以上的空间,建议是固态硬盘。

可选参数说明(建议新手都不要设置):

-e NIC=eth0 有多网卡多线路时,可以使用该参数指定路由网卡,不配置会自动选默认路由网卡,如果是openwrt系统,可以使用-e NIC=br-lan,业务申请到和局域网同一个网段的IP。

-e REC=false 第一次安装设置为false时,不会启动默认任务,默认为true,仅第一次安装有效。

-e LISTEN_ADDR=”0.0.0.0:28888″ 支持设置绑定页面的监听地址和端口,监听全地址设置-e LISTEN_ADDR=”:28888″,默认监听全地址18888端口。多开容器也可以参考用该参数,比如容器A使用参数-e LISTEN_ADDR=”:18888″,容器B使用参数 -e LISTEN_ADDR=”:28888″(已经实现同一业务可多次添加,不建议多开容器)

-v 磁盘路径:/var/lib/containerd 如果系统盘较小时,可以增加该参数修改安装路径,注意“磁盘路径”修改成自己的磁盘目录。

如果想安装第二个同样的容器实例,可以使用macvlan网络的创建方法,首先创建网络环境

docker network create -d macvlan --subnet=192.168.1.199/24 --gateway=192.168.1.1 -o parent=eth0 macvlan

参数含义:

  • –subnet=192.168.1.99/24 网段,这个地方要修改成你创建docker的设备的IP段,比如设备IP是192.168.1.200,那这个地方参数就是192.168.1.199
  • –gateway=192.168.1.1 网关,这个地方要修改成你创建docker的设备的网关
  • -o parent=etho 这个地方vmbr0要修改成你设备中使用的网卡名称
  • 其他参数默认

创建好macvlan网络之后

docker run -d --name=wxedge3 --restart=always --privileged --net=macvlan --ip=192.168.1.88 --tmpfs /run --tmpfs /tmp -v /docker/wxedge_storage3:/storage:rw registry.hub.docker.com/onething1/wxedge:latest
  • #name=wxedge2 因为是第二个,所以添加数字2
  • #ip=192.168.3.66 macvlan网络可以指定容器IP , 这里修改成你要指定的IP,建议指定,这样方便web管理。
  • #/media/wxedge_storage2 因为是第二个容器, 所以缓存目录要添加数字2

基于host改端口的多开

第一个容器命令

docker run -d --name=wxedge1 --restart=always --privileged --net=host  --tmpfs /run --tmpfs /tmp -e REC=false -v /docker/wxedge_storage1:/storage:rw registry.hub.docker.com/onething1/wxedge:latest

默认端口18888

第二个容器命令

docker run -d --name=wxedge5 --restart=always --privileged --net=host -e LISTEN_ADDR="192.168.1.200:28888" --tmpfs /run --tmpfs /tmp -e REC=false -v /mnt/sdb1/wxedge_storage4:/storage:rw registry.hub.docker.com/onething1/wxedge:latest

改端口为28888

查看业务信息文件

创建容器时挂载的目录/.onething_data/task/你的cg任务名/logs/server.log,cg任务名我这边是ba开头的,不好区分的话可以手动加几个,根据后缀判断,同一业务第n个就是_n

网络相关

修改docker0默认网段

docker0 默认网段和我的校园网认证页面的网段冲突,导致安装docker后无法认证,从而无法上网,所以可以修改docker0网段。

解决办法:改路由比较办法,可以一开始就将docker配置的bip改成169.254.0.1/24,可以避免冲突。在daemon配置文件里加个”bip”:“169.254.0.1/24”,重启docker就可以了

[root@st-dev6 ~]# vim /etc/docker/daemon.json
{
"bip":"169.254.0.1/24"
}

NAT类型检测

NAT全称“Network Address Translation”,意思是“网络地址转换”。通过NAT可以让局域网内的众多主机使用一个公网IP访问Internet。由于IPV4紧缺,家用网络大部分都在NAT环境中。目前NAT分为4个类型:NAT1、NAT2、NAT3、NAT4,具体的:

NAT1:Full Cone NAT(全锥形NAT);

NAT2:Address Restricted Cone NAT(受限锥型NAT);

NAT3:Port Restricted Cone NAT(端口受限锥型NAT);

NAT4:Symmetric NAT(对称型NAT);

从NAT1到NAT4限制越多,而家用网络最常见的是NAT3和NAT4。怎么测试网络nat类型呢?我推荐2个实用工具:

Windows系统可以使用nattypetester,如果软件默认的STUN server地址不可用,可以填写国内小米的服务器stun.miwifi.com。点击Test按钮然后在RFC 3489可以看到NAT类型数据。

Linux可以使用pystun3(如果是python2环境,可使用pystun),pystun3基于python可用pip安装:

pip install pystun3
pystun3

然后即可返回NAT类型结果:

我把pystun3安装到我的红米2小主机上,只要连上局域网wifi,检测非常方便。

NAT类型主要影响游戏延时(数据转发次数越多延时越高,网络波动越明显),和一些远程软件的数据连接。一般来说NAT3还能接受,NAT4可以换网络服务商了。

ubuntu修改dns设置让应用使用全锥网络

在使用ubuntu过程中,我发现,即使使用以上方法检测到网络类型为full-nat,但是部署docker网心云后网络类型变成了未知,所以前期我的docker容器魔方一般都是部署在openwrt里,这样感觉多了很多不需要的动能,并且使用也不方便,后来经过不断的探索,终于有人推荐了一篇文章:

温馨提示: 此处内容需要在文末评论本文并刷新页面后才能查看.

,于是按照文章指导,成功解决了问题,感谢这位作者。

问题:
ubuntu18.04LTS搭建k8s coredns组件报错
因为/etc/resolve.conf中存在 nameserver 127.0.0.53回环地址造成循环引用
手动修改无果,每次重启依旧会覆盖

原因:
ubuntu17.0之后特有,systemd-resolvd服务会一直覆盖

解决办法:

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
sudo apt install unbound
sudo rm -rf /etc/resolv.conf
sudo vim /etc/NetworkManager/NetworkManager.conf

在[main]
下面添加
dns=unbound
将dns服务替换为unbound
reboot
重启电脑即可,开机查看resolve.conf发现nameserver自动配置

WIN10/WIN11开启UPNP

  • 1、按下“Win+R”打开运行,输入“services.msc”点击确定打开“服务”;
  • 2、双击打开“Funtion Discovery Resource Publication”,将其启动类型修改为“自动”,点击应用,点击启用,点击确定;
  • 3、按照此方法按顺序将“SSDP Discovery Service”、“UPnP Device Host”服务进行设置即可!

评论

  1. 匿名
    Windows Chrome 122.0.0.0
    51 秒前
    2024-4-06 15:28:18

    111113人生巅峰

  2. 匿名
    Windows Chrome 121.0.0.0
    2 月前
    2024-2-18 23:44:34

    学习一下

  3. 匿名
    Windows Chrome 120.0.0.0
    4 月前
    2023-12-14 15:09:08

    学习一下,我也遇到NAT未知的问题

  4. silverbaby
    Windows Chrome 115.0.0.0
    9 月前
    2023-7-25 12:19:07

    看看怎么解决未知网络的问题

  5. 匿名
    Windows Chrome 115.0.0.0
    9 月前
    2023-7-25 12:18:40

    看看怎么解决未知网络的问题

  6. ChienHo
    Macintosh Chrome 112.0.0.0
    11 月前
    2023-4-28 22:47:28

    看看怎么解决未知网络的问题

  7. 匿名
    Macintosh Chrome 112.0.0.0
    11 月前
    2023-4-28 22:43:13

    太厉害了

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇