zhangguanzhang's Blog

zhangguanzhang's Blog

站在巨人的肩膀上

docker容器访问宿主机
有时候使用docker容器的时候经常有需要访问宿主机ip的需求,虽然可以用宿主机网卡的ip访问,但是有时候有些人的宿主机ip是dhcp方式通用方法就是给宿主机加个不可达的回环地址,然后容器的host指向这个回环地址(容器host这步是可选的)(PS:1.1.1.1这个地址在2018/04初成为了公共DNS所以能ping通了,不过思路还是一样的)环境如下 123456[root@guanvps ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@guanvps ~]# uname -aLin...
docker容器网络互联
官方文档说–link将来会被废弃,而且确实很鸡肋,有时候还要进去容器改东西。在 1-2 年前,Docker 所有容器都连接于默认的桥接网络上,也就是很多老文章鼓捣的 docker0 桥接网卡。因此实际上默认情况下所有容器都是可以互联的,没有隔离,当然这样安全性不好。而服务发现,是在这种环境下发展出来的,通过修改容器内的 /etc/hosts 文件来完成的。凡是 --link 的主机的别名就会出现于 /etc/hosts 中,其地址由 Docker 引擎维护。因此容器间才可以通过别名互访。但是这种办法并不是好的解决方案,Docker 早在一年多以前就已经使用自定义网络了。在同一个网络中的容...
Linux 上 iptables ipset 白名单
关于Linux 上 ipset 和 iptables 配合做 ip 白名单 安装123456789# rpm 系列 osyum install ipset ipset-service -ysed -ri '/^IPSET_SAVE_ON_STOP=/s#no#yes#' /etc/sysconfig/ipset-configsystemctl enable --now ipset# apt 系列 osapt update && apt install -y ipset-persistent iptables-persistent 配置123# 黑白名...
centos桥接测试
需求机器上的虚拟机桥接宿主机的网卡上网,类似于 vmware workstation,宿主机和虚拟机都接网桥上,虚拟机和宿主机同一个网段。 原有配置centos7 1234567891011cat ifcfg-eth0TYPE="Ethernet"BOOTPROTO="static"DEFROUTE="yes"NAME="eth0"DEVICE="eth0"ONBOOT="yes"IPADDR=192.168.2.51NETMASK=255.255.255.0GATE...
使用 dd 利用 iso 文件制作 USB 启动盘
命令1234# bs ,每个块的填充字节,不足用空(NUL) 字符对齐# sync 直接写磁盘,不写缓存dd if=xxx.iso of=/dev/xxx bs=8M 可以利用 watch -n 5 每 5s 发送信号触发 dd 命令打印进度 1watch -n 5 pkill -USR1 ^dd$ 块大小不带的速度对比1234567891011121314151617181920212223242526272829303132333435363738394041$ dd if=xxxxx.iso of=/dev/sdc oflag=sync2937+0 records in29...
windows 笔记
激活相关win server 123https://docs.microsoft.com/zh-cn/windows-server/get-started/kms-client-activation-keyshttp://www.kaixinit.com/info/os/1128.html
centos7 的一些常见软件的安装 mirror
centos 7git 2centos 7 自带的 git 版本很低: 12$ git versiongit version 1.8.3.1 安装 git 2 123yum -y install \ https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm \ && yum install -y git keepalived 2方式1: 12yum install -y http://www.nosuchhost.net/~cheese/fedora/packa...
lua列出所有upsteam
需要在http的路由上暴露出所有的upsteam配置段 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758upstream names{ server 127.0.0.1:8050 ; server 127.0.0.1:8060 ;}upstream tuling { server 127.0.0.1:8051 weight=5; server 127.0.0....
bash自定义补全
总结下bash的补全 终端下按两次tab就是补全 补全常见的分为下面几种场景: 第一部分的命令补全 命令补全后补全路径到文件 变量补全 类似systemctl命令的选项补全 当然bash支持自定义补全,也就是让我们实现和systemctl命令那样补全 假设我们要systemctl disable --now firewalldsystemctl空格后按tab键会显示systemctl的第二个部分的所有支持的选项此时继续输入di按tab键会补全成systemctl disable,输入--now(相似的太多了,所以基本输入完)补全,当然最后的服务名此时补全不了,因为systemctl的...
shell脚本的选项和参数处理
在写shell脚本时经常会用到命令行选项、参数处理方式,如: 1./test.sh -f 5 -rF --host-file=/etc/hosts 其中-f和-rF都是短选项,–host-file是长选项短选项又分为可选参数和必选参数,不需要参数的短选项可以合着写例如cat和tail的-n有默认值10在shell中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景 手工处理方式 getopts getopt 手工处理不说了,手工处理高度依赖于你在命令行上所传参数的位置,所以一般都只用来处理较简单的参数下面我们依次讨论这后两种处理方式getopts是shell内置的,只支...
rpm包的制作笔记
文章写于 2021-08-02,防止排列在前面,所以 markdown 里的时间改成 2017-05-15 。 rpm 一些知识建议起个 centos:7 的容器里去制作 Linux 里的 so用白话说,就是类似于 windows 的 dll 文件,通常是底层库,或者经常用到的 c 函数。比如说 curl 命令和 wget 命令,他们很多的底层例如 http 请求,dns 解析,hosts 解析这块逻辑是一样的。如果他们全部打包在二进制文件里(也就是静态编译)会造成二进制体积很大(golang 一般都是静态编译的)。如果共用(共用的一个其中原因是因为早期的系统硬盘容量很小)的话体积会很小...