Dry Realm

Get busy living

Category

  • DevOps
  • Javascript
  • Review
  • 一些技巧
  • 其它
  • 学习过程中的所感所想
  • 拼命学习
  • 那些年的所见所闻
  • 随笔

Tags

  • Node.js
  • MongoDB
  • HTTP
  • linux
  • express
  • es6
  • docker
  • 面试总结
  • typescript
  • 运维
  • 文字
  • 南京
  • 年度总结
  • 西安
  • 新博客框架
  • 3rd-lib
  • 大黑猫
  • vscode
  • jenkins pipeline
  • linux指令
  • 网络
  • k8s
  • 数据库连接
  • Git
  • 第三方库
  • webpack
  • 子网掩码
  • new life
  • MySQL
  • git
  • review
  • ntzyz大佬
  • 数据库
  • 本地版博客
  • 数学
  • Css
  • eslint
  • 负数
  • 正则表达式
  • 语句
  • javascript
  • wsl2
  • devcontainer
  • docker swarm
  • 离别
  • 下载youtube
  • Gitlab Api
  • ECMA

Recent replies

  • xzdry 发表于「使用ffmpeg和youtube-dl下载youtube视频」

友链

ntzyz double

我

真诚
很看重自己在乎的人
希望能越来越好
爱蛋蛋

子网掩码学习

2021 年 6 月 12 日分类:DevOps#子网掩码#网络

定义

子网掩码(subnet mask)是用来划分子网网段和遮掩部分IP地址。定义为用来划分IP地址中哪一部分是网络号,哪一部分是机器号
简单的理解,就是用一个xxx.xxx.xxx.xxx,其中xxx是0~255之间的数值,转换成二进制就是一个32位的二进制数,通过二进制中的0来达到遮掩部分IP地址的目的。如果两个IP被遮掩后IP地址相同,那么这两个IP地址就处于同一个网段。就可以直接进行通信。当然,掩码的形式是有一些限制的,下面仔细讲讲

掩码定义

类别 子网掩码的二进制数值 子网掩码的十进制数值
A 11111111 00000000 00000000 00000000 255.0.0.0
B 11111111 11111111 00000000 00000000 255.255.0.0
C 11111111 11111111 11111111 00000000 255.255.255.0

上面是一个默认子网掩码示例。子网掩码的设定必须遵循下面几个规则:

  • 子网掩码是一个32位二进制地址
  • 1和0必须连续,比如255.255.255.193(后八位1100 0001)就不能用作子网掩码
  • 左边是1,右边是0。1表示网络位长度,0表示主机位长度。这么做是为了让掩码与IP运算(按位与)时用0遮住原主机数,保留网络数

通过上述最后一条规则,可以很容易通过0的位数确定子网的主机数,即2的主机位数次方-2。去掉两个是因为,主机号全为0时表示该网络的网络号。全为1时表示该网络的广播地址
子网掩码除了屏蔽IP的一部分以区别网络标识和主机标识,还说明该IP地址是在局域网上,还是在远程网上。另外还用于将一个大的IP网络划分为若干小的自网络

例子

示例1

类别 十进制 二进制
IP地址 192.168.1.129 1100 0000.1010 1000.0000 0001.1000 0001
子网掩码 255.255.255.0 1111 1111.1111 1111.1111 1111.0000 0000
按位与(&) 11111111 11111111 11111111 00000000 1100 0000.1010 1000.0000 0001.0000 0000

可以看到进行按位与之后,前面的网络位是不变的,机器位被后面八个0遮掩了,把&的结果转换为10进制得192.168.1.0。也就是说,192.168.1.(0~255)都会被掩码遮掩掉。于是这些ip地址可以分给不同的机器(0~255),除去广播地址(192.168.1.255)和网络号(192.168.1.0)。可以分配给254台机器,这些机器可以直接进行通信。另一种写法是192.168.1.0/24

示例2

类别 十进制 二进制
IP地址 192.168.1.188 1100 0000.1010 1000.0000 0001.1011 1100
子网掩码 255.255.255.224 1111 1111.1111 1111.1111 1111.1110 0000
按位与(&) 11111111 11111111 11111111 00000000 1100 0000.1010 1000.0000 0001.1010 0000

按位与之后得到192.168.1.160因此新的子网掩码只能遮住后面5位,因此新的范围为(00000~11111),即192.168.1.160~192.168.1.255。这其中的ip也可以写成192.168.188/27

示例3

将B类IP地址168.195.0.0划分成27个子网 1.27=bx11011,去N=5 2.将B类地址的子网掩码前五位置1,得到255.255.248.0 即将168.195.0.0划分为27的子网的子网掩码为255.255.248.0

示例4

因此新的docker服务网段service_default IP地址为10.20.0.0/16。即16位未被遮掩,遮掩了后16位,因此理论可用范围为2^16-2=65534可以分配65534台机器

vscode远程开发总结

2021 年 3 月 4 日分类:DevOps#devcontainer#docker#vscode
提示:在继续阅读之前,请注意此文章最后更新于 1570 天前,其中的部分内容可能已经无效或过时。

在公司转到linux下开发已经有一年多了,通过docker进行容器化开发也有一段时间了。借着这次自己电脑重装系统,准备由原来的win下开发转换到和在公司相同的wsl2+docker容器化开发环境。顺便将本地的blog切换到wsl2,mongodb数据库切换到docker
也借机将之前随手写的一些踩坑记录整理一下,以备下次查用

安装vscode远程插件

vscode远程化开发真的是太棒了。中间因为学习groovy的原因,下载过IntelliJ。也不知道是否是我不会用,体验比起vscode差太多了
首先Extensions里搜索remote,排名前几的统统安装。

MORE

docker安装和踩坑记录

2021 年 1 月 7 日分类:DevOps#docker#docker swarm#运维
提示:在继续阅读之前,请注意此文章最后更新于 1626 天前,其中的部分内容可能已经无效或过时。

安装Docker

ubuntu

sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
 
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
 
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
 
sudo apt-get -y update
sudo apt-get -y install docker-ce

centos

# 第一步
sudo yum install -y yum-utils
# 第二步
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 第三步
sudo yum install docker-ce docker-ce-cli containerd.io
# 第四步
systemctl restart docker
# 第五步docker version看到输出信息即安装成功

这里没有用官网给的网址,因为被墙了。如果第三步安装仍然报404。就删除/etc/yum.repos.d下的docker-ce.repo download.docker.com_linux_centos_docker-ce.repo.repo然后重复第二步第三步

  • 也可以直接下 docker desktop
https://download.docker.com/win/edge/40807/Docker%20Desktop%20Installer.exe

离线安装

wget https://download.docker.com/linux/static/stable/x86_64/docker-20.10.2.tgz
tar -zvxf docker-20.10.2.tgz
cp docker/* /usr/bin/
 
# systemctl运行
sudo vim /etc/systemd/system/docker.service
####### 输入下面这些内容########
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
 
[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target
############################
 
# 设置可执行权限
chmod +x /etc/systemd/system/docker.service
 
# 常用命令
systemctl daemon-reload   //重载配置文件
systemctl start docker    //启动Docker
systemctl stop docker    //关闭docker
systemctl restart  docker    //重启docker
systemctl enable docker.service   //设置开机自启
systemctl status docker    //查看Docker状态
 
# 很多时候在我们挂载磁盘后不想用docker默认目录 可 -g 修改目录 (docker 默认目录在/var/lib/docker下,包括 pull下来的镜像都在该目录下)
ExecStart=/usr/bin/dockerd --data-root=/data/docker

docker集群需要开启相应的端口

比如docker集群启动在2377端口,如果其它机器要加入,需要防火墙开启这个端口

# 查看防火墙开启的端口
firewall-cmd --list-ports
 
# 如果没有2377端口则开启
firewall-cmd --zone=public --add-port=2377/tcp --permanent
firewall-cmd --reload
# 看到success后再次查看端口列表,可以看到2377已开启。另一台机器顺利加入集群

wsl2采坑记录

2021 年 1 月 4 日分类:DevOps#linux#wsl2
提示:在继续阅读之前,请注意此文章最后更新于 1629 天前,其中的部分内容可能已经无效或过时。

安装wsl2

前置条件:

  • 更新windows到2004: https://go.microsoft.com/fwlink/?LinkID=799445
  • 启用wsl2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
MORE

Css复习

2020 年 12 月 6 日分类:Javascript#Css
这是一个受密码保护的文章,请点击下放的更多按钮,并提供密码。
MORE
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • »
Copyright © 2016-2018 ntzyz. All rights reversed.
Except where otherwise noted, content on this blog is licensed under CC-BY 2.0.