背景

拷贝了linux虚拟机的时候,每台机器的sshd密钥是一样,需要重新生成一下密钥
(密钥的路径配置在sshd的配置文件中,配置项为HostKey,默认值是在/etc/ssh/目录下)

命令

mkdir keys_backup && cp /etc/ssh/ssh_host_* keys_backup/ && rm -f /etc/ssh/ssh_host_*
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
ll /etc/ssh/ssh_host_*
systemctl restart sshd
exit

序言

在家整了一套k8s集群,用了calico来当cni组件,想把容器网络和家里内网打通,在几种网络方案中还是倾向于走路由的方式,一是性能更高,二是pod ip可见即可通,整体思路如下:

  1. 部署k8s,安装calico
  2. 家庭网络增加静态路由,pod的cidr指向到随便一个node (会有容灾问题,家庭网络暂且不论)
  3. 包到了node上后,node根据本身calico维护的路由信息转到目的pod的node,再转入pod内中的服务

方案简介

设备定义

局域网内PC: A
Openwrt旁路由: B
k8s Node节点1(旁路POD CIDR的下一跳): C
k8s Node节点2(目的POD所在节点): D

目标路由

正常路由应该为: A -> B -> C -> D

涉及知识点

  • IP路由
  • Iptables(net_filter)
  • rp_filter



- 阅读剩余部分 -

前言

现在生产Linux发行版基本都是在用基于RHEL8的各种版本了,每个大版本系统管理命令基本都是有变化,尤其是网络配置变化较大,本次记录一下过程信息

需求

最小化安装了Rocky Linux 9后需要配置一下静态IP

过程

  1. 基于原来RHEL7的经验,去/etc/sysconfig/network-scripts/ 下寻找网卡配置
  2. 发现下面没有网卡配置了,有一个ReadMe,指引现在的网卡配置使用了更先进的 NetworkManager
  3. 根据指引看man文档操作,发现似乎修改IP不生效
  4. 网上找,找到了官网文档,根据文档信息完成修改

总结

RHEL8 网卡配置文件

# 配置文件路径: /etc/NetworkManager/system-connections/

[connection]
id=ens18
type=ethernet
autoconnect-priority=-999
interface-name=ens18
timestamp=1699167522

[ethernet]

[ipv4]
method=manual
address1=192.168.1.213/24,192.168.1.200
dns=192.168.1.200

[ipv6]
addr-gen-mode=eui64
method=auto

[proxy]

配置修改方式

修改生效

新的版本生效方式已经不是 systemctl restart network 这种方式了,

而是使用了新的命令: nmcli (具体用法可以--help去看)

对于我的需求的命令:

# nmcli c reload
# nmcli c show        # 如果前面的配置文件有错误reload后这里是不会展示列表
NAME   UUID                                  TYPE      DEVICE
ens18  e04856f6-0cfe-3b52-a4a0-c1d4e3ef66cc  ethernet  ens18
lo     ef8ecc20-b49b-454d-b84a-5bb6785b9d8d  loopback  lo

# nmcli c down ens18  # 这里的值就是上面的NAME,也可以是UUId啥的
# nmcli c up ens18

参考信息

https://docs.rockylinux.org/zh/guides/network/basic_network_configuration/#networkmanager
https://zhuanlan.zhihu.com/p/426819359

导言

网上关于Git相关的资料教程已经一大堆,这里也只是记录一下个人常用的一些操作

命令

# 初始化一个Git仓库(本地)
$ git init

# 推送一个本地仓库到远端
$ git remote add origin https://xx.xxx.com/test.git
$ git push --set-upstream origin --all
$ git push --set-upstream origin --tags

# 克隆一个仓库到本地
$ git clone https://xx.xxx.com/test.git

# 把当前工作区内容加入暂存区
$ git add .

# 放弃工作区的修改(添加的文件不能撤销),俩命令都行
$ git checkout .
$ git restore --worktree .

# 恢复暂存区的内容到工作区
$ git restore --staged .

# 提交内容
$ git commit -m 'feature: 本次提交的版本特性'

# 推送提交到远端
$ git push

# 更新远端仓库到本地(可能会有冲突,注意冲突问题)
$ git pull

# 查看分支
$ git branch -a

# 创建分支
$ git branch xxxxx

# 切换分支
$ git switch xxxxx_V4.0D0017

# 合并分支(先去到要合并到的分支)
$ git merge xxxx

# 查看提交日志
$ git log

# 重置版本(注意回滚后和本地工作区的冲突问题)
$ git reset 版本号

# 回滚版本(创建一个新的版本,新的版本不包含回滚的那个提交的内容)
$ git revert 版本号

参考资料

https://cloud.tencent.com/developer/article/1757064
https://blog.csdn.net/weixin_45346457/article/details/123706224
https://blog.csdn.net/lianshaohua/article/details/108336436
https://blog.csdn.net/qq_46106285/article/details/124744328

什么是组播?

组播(Multicast)是一种网络通信方式,它可以让一个或多个发送者同时向多个接收者发送消息,而不必为每个接收者单独发送消息。组播通常用于视频流、音频流、多人游戏和群聊等应用场景。

组播使用 IP 地址来标识一个多播组,可以在本地网络或跨网络广播消息。组播地址的范围是 224.0.0.0239.255.255.255,其中 224.0.0.0 是本地网络的保留地址,而 239.255.255.255 是全局广播地址。

- 阅读剩余部分 -