0%

什么是链路类型?

  • 接入链路(access link)指的交换机到用户设备的链路,即是接入到户,可以理解为由交换机向用户的链路。由于大多数电脑不能发送带vlan tag的帧,所以这段链路可以理解为不带vlan tag的链路。
  • 干道链路(trunk link)指的交换机到上层设备如路由器的链路,可以理解为向广域网走的链路。这段链路由于要靠vlan来区分用户或者服务,所以一般都带有vlan tag

端口链路类型介绍

  • ACCESS:该端口只能划分到一个VLAN中,端口的出口规则强制为不加Tag一般用于连接计算机。
  • TRUNK:该端口可以划分到多个VLAN中,可以接收和发送多个VLAN的报文,端口的出口规则强制为加Tag一般用于连接交换机
  • GENERAL:该端口可以划分到多个VLAN中,可以接收和发送多个VLAN的报文,端口的出口规则可以根据端口连接设备的实际情况灵活配置为加Tag或不加Tag。可以连交换机也可以连接计算机

PVID与VLAN数据包处理关系介绍

  • PVID:当交换机端口接收到的报文不带有VLAN Tag时,交换机会自动为该报文分配一个VID,这个VID就是端口的默认VLAN ID,简称PVID。

端口链路类型本质上是交换机对出入端口的VLAN Tag的处理方式,详细规则如下表。

Server

  • frps.toml
bindPort = 7000
  • docker 运行服务端
# localhub.deri.org.cn:8443/library/snowdreamtech/frps
docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps

Client

  • frpc.toml
[common]
server_addr = 1.1.1.1
server_port = 7000
token = xxxxxx
[[proxies]]
name="ssh"
type = tcp
local_ip = 2.2.2.2
local_port = 1000
remote_port = 1000
  • docker 运行客户端
# localhub.deri.org.cn:8443/library/snowdreamtech/frpc
docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc

portainer

一款简单流行的 docker ui 工具.

portainer安装

# 9443 TLS端口,也可暴露 9000 http端口。 8000是edge agent端口,可选。
docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:2.21.5

agent安装

docker run -d   -p 9001:9001   --name portainer_agent   --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/lib/docker/volumes:/var/lib/docker/volumes  \
  -v /:/host   portainer/agent:2.21.5

安装helm仓库

helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm repo update

安装 NFS Client Provisioner

helm install nfs-client nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
  --namespace nfs-storage  --create-namespace\
  --set nfs.server=<NFS_SERVER_IP> \
  --set nfs.path=<NFS_SHARED_PATH>

其他一些推荐配置:

--set image.repository=registry.cn-beijing.aliyuncs.com/kubesphereio/nfs-subdir-external-provisioner
--set image.tag=v4.0.2
--set storageClass.defaultClass=true
--set storageClass.name=nfs-client

验证安装

kubectl get storageclass

如果helm包下载不下来可以提前下载,然后从本地目录安装

helm install <release-name> /path/to/mychart-0.1.0.tgz
  • 安装未打包的 Chart 文件夹
helm install <release-name> /path/to/mychart/

例如 helm install nfs-client .

  • 使用 -f 指定自定义值文件:
helm install my-release ./mychart-0.1.0.tgz -f values.yaml

生成 .htpasswd 文件

htpasswd -c /etc/nginx/.htpasswd user

这里的参数解释:

  • -c:表示创建新的 .htpasswd 文件(如果文件已经存在,使用该选项会覆盖文件)。
  • /etc/nginx/.htpasswd:这是 .htpasswd 文件的存储位置,你可以根据需要修改这个路径。
  • user:你要创建的用户名。

执行命令后,它会提示你输入并确认密码。输入密码后,htpasswd 工具会自动将其加密并保存到 .htpasswd 文件中。

配置 Nginx 使用基本认证

server {
    listen 80;

    location / {
        auth_basic "Restricted Area";           # 提示消息
        auth_basic_user_file /etc/nginx/.htpasswd;  # 指定 .htpasswd 文件路径
    }
}

代码中使用认证

  1. 拼接用户名和密码
    首先,你需要将用户名和密码拼接成一个字符串,格式为 username:password。例如:
username:password
  1. 对 username:password 字符串进行 Base64 编码
echo -n "user:password123" | base64

输出将是类似以下的 Base64 编码:

dXNlcjpwYXNzd29yZDEyMw==
  1. 在 Authorization 头中使用
    生成的 Base64 编码字符串可以直接用于 HTTP 请求的 Authorization 头中,如下所示:
Authorization: Basic dXNlcjpwYXNzd29yZDEyMw==

使用命令行解码 Base64 编码: echo "dXNlcjpwYXNzd29yZDEyMw==" | base64 --decode