首页
About Me
推荐
weibo
github
Search
1
linuxea:gitlab-ci之docker镜像质量品质报告
49,451 阅读
2
linuxea:如何复现查看docker run参数命令
23,044 阅读
3
Graylog收集文件日志实例
18,580 阅读
4
linuxea:jenkins+pipeline+gitlab+ansible快速安装配置(1)
18,275 阅读
5
git+jenkins发布和回滚示例
18,181 阅读
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack/logs
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
登录
Search
标签搜索
kubernetes
docker
zabbix
Golang
mariadb
持续集成工具
白话容器
elk
linux基础
nginx
dockerfile
Gitlab-ci/cd
最后的净土
基础命令
gitops
jenkins
docker-compose
Istio
haproxy
saltstack
marksugar
累计撰写
690
篇文章
累计收到
139
条评论
首页
栏目
ops
Openvpn
Sys Basics
rsync
Mail
NFS
Other
Network
HeartBeat
server 08
Code
Awk
Shell
Python
Golang
virtualization
KVM
Docker
openstack
Xen
kubernetes
kubernetes-cni
Service Mesh
Data
Mariadb
PostgreSQL
MongoDB
Redis
MQ
Ceph
TimescaleDB
kafka
surveillance system
zabbix
ELK Stack/logs
Open-Falcon
Prometheus
victoriaMetrics
Web
apache
Tomcat
Nginx
自动化
Puppet
Ansible
saltstack
Proxy
HAproxy
Lvs
varnish
更多
互联咨询
最后的净土
软件交付
持续集成
gitops
devops
页面
About Me
推荐
weibo
github
搜索到
67
篇与
的结果
2022-06-15
linuxea:curl常用命令
curl常用命令time_connect : 建立到服务器的 TCP 连接所用的时间time_starttransfer: 在发出请求之后,Web 服务器返回数据的第一个字节所用的时间time_total: 完成请求所用的时间在 发出请求之后,Web 服务器处理请求并开始发回数据所用的时间是(time_starttransfer)1.044 - (time_connect)0.244 = 0.8 秒客户机从服务器下载数据所用的时间是(time_total)2.672 - (time_starttransfer)1.044 = 1.682 秒指定特定主机IP地址访问网站 curl -x 61.1315.169.105:80 http://www.baidu.com curl -x 61.1315.169.125:80 http://www.baidu.com网页响应时间curl -o /dev/null -s -w "time_connect: %{time_connect}\ntime_starttransfer: %{time_starttransfer}\ntime_total: %{time_total}\n" "http://www.linuxea.com" time_connect: 0.009 time_starttransfer: 0.357 time_total: 0.358状态返回码curl -s -w %{http_code} "http://www.baidu.com"完成请求所用的时间curl -o /dev/null -s -w '%{time_total}' http://www.linuxea.com 0.456或者如下curl -o /dev/null -s -w "%{http_code}\n%{time_connect}\n%{time_starttransfer}\n%{time_total}" http://www.baidu.com 200 0.038 0.071 0.071文件创建一个新文件 curl-format.txt,然后粘贴: time_namelookup: %{time_namelookup}s\n time_connect: %{time_connect}s\n time_appconnect: %{time_appconnect}s\n time_pretransfer: %{time_pretransfer}s\n time_redirect: %{time_redirect}s\n time_starttransfer: %{time_starttransfer}s\n ----------\n time_total: %{time_total}s\n发出请求: curl -w "@curl-format.txt" -o /dev/null -s "http://wordpress.com/"或者在 Windows 上,它是... curl -w "@curl-format.txt" -o NUL -s "http://wordpress.com/"这是做什么的:-w "@curl-format.txt"告诉 cURL 使用我们的格式文件-o /dev/null将请求的输出重定向到 /dev/null-s 告诉 cURL 不要显示进度表"http://wordpress.com/"是我们请求的 URL。如果您的 URL 具有“&”查询字符串参数,请特别使用引号输出 time_namelookup: 0.001s time_connect: 0.037s time_appconnect: 0.000s time_pretransfer: 0.037s time_redirect: 0.000s time_starttransfer: 0.092s ---------- time_total: 0.164s制作 Linux/Mac 快捷方式(别名)alias curltime="curl -w \"@$HOME/.curl-format.txt\" -o /dev/null -s "然后你可以简单地调用...curltime wordpress.org
2022年06月15日
1,724 阅读
0 评论
0 点赞
2022-04-02
linuxea:centos7.9使用trojan加速拉取代码
我们经常使用github或者其他的仓库,特别慢的时候,可以使用其他的浏览器插件来解决。但是,假设你已经购买了trojan,并且想在linux上使用,就可以考虑如下办法首先,在trojan下载一个版本即可,而后参考trojan的方式将配置文件导入到config.json中现在你有一个已经在页面生成好的配置文件,而后修改验证修改verify和verify_hostname为false,这在trojan的github上并没有得到解决,于是我们就不验证即可 "ssl": { "verify": false, "verify_hostname": false, "cert": "",直接运行起来~/trojan-1.15]# ./trojan -c config.json Welcome to trojan 1.15.1 [2022-04-02 11:38:01] [WARN] trojan service (client) started at 127.0.0.1:1080而后配置一个privoxyyum install privoxy -y添加配置文件listen-address 127.0.0.1:1081 toggle 0 show-on-task-bar 0 activity-animation 0 forward-socks5 / 127.0.0.1:1080 . hide-console并启动systemctl start privoxy.serviceexport http_proxy=http://localhost:1081/ export https_proxy=http://localhost:1081/打开一下谷歌# curl -o /dev/null -s -w "%{http_code}" www.google.com && echo 200返回追踪下日志# ./trojan -c config.json Welcome to trojan 1.15.1 [2022-04-02 11:38:01] [WARN] trojan service (client) started at 127.0.0.1:1080 [2022-04-02 11:39:21] [INFO] 127.0.0.1:42136 requested connection to www.google.com:80 [2022-04-02 11:39:22] [INFO] 127.0.0.1:42136 disconnected, 14790 bytes received, 78 bytes sent, lasted for 1 seconds [2022-04-02 11:39:37] [INFO] 127.0.0.1:42302 requested connection to www.google.com:80 [2022-04-02 11:39:57] [ERROR] 127.0.0.1:42302 cannot resolve remote server hostname de1-1.nigirocloud.com: Host not found (authoritative) [2022-04-02 11:39:57] [INFO] 127.0.0.1:42302 disconnected, 0 bytes received, 78 bytes sent, lasted for 20 seconds [2022-04-02 11:40:54] [INFO] 127.0.0.1:43156 requested connection to www.google.com:80 [2022-04-02 11:41:04] [ERROR] 127.0.0.1:43156 cannot resolve remote server hostname de1-1.nigirocloud.com: Host not found (authoritative) [2022-04-02 11:41:04] [INFO] 127.0.0.1:43156 disconnected, 0 bytes received, 78 bytes sent, lasted for 10 seconds [2022-04-02 11:41:14] [INFO] 127.0.0.1:43380 requested connection to www.google.com:80 [2022-04-02 11:41:15] [INFO] 127.0.0.1:43380 disconnected, 14783 bytes received, 78 bytes sent, lasted for 1 seconds [2022-04-02 11:41:32] [INFO] 127.0.0.1:43596 requested connection to www.google.com:80 [2022-04-02 11:41:33] [INFO] 127.0.0.1:43596 disconnected, 14806 bytes received, 78 bytes sent, lasted for 1 seconds [2022-04-02 11:41:35] [INFO] 127.0.0.1:43626 requested connection to www.google.com:80 [2022-04-02 11:41:41] [INFO] 127.0.0.1:43626 disconnected, 14805 bytes received, 78 bytes sent, lasted for 6 seconds [2022-04-02 11:41:44] [INFO] 127.0.0.1:43734 requested connection to www.google.com:80 [2022-04-02 11:41:45] [INFO] 127.0.0.1:43734 disconnected, 14823 bytes received, 78 bytes sent, lasted for 1 seconds [2022-04-02 11:41:51] [INFO] 127.0.0.1:43830 requested connection to www.google.com:80 [2022-04-02 11:41:52] [INFO] 127.0.0.1:43830 disconnected, 14759 bytes received, 78 bytes sent, lasted for 1 seconds现在就可以发起http的请求
2022年04月02日
2,126 阅读
0 评论
0 点赞
2022-02-23
linuxea:docker-compose vsftpd 3.0.3快速配置
VSFTPD 代表“非常安全的 FTP 守护程序”,是一个 GPL 许可的 UNIX 系统 FTP 服务器。它是根据 GNU 通用公共许可证获得许可的。它支持 IPv6 和 SSL。vsftpd 支持显式(自 2.0.0 起)和隐式(自 2.1.0 起)FTPS。vsftpd 是 Ubuntu、CentOS、Fedora、NimbleX、Slackware 和 RHEL Linux 发行版中的默认 FTP 服务器。它安全且速度极快。它是稳定的。VSFTPD 是一个成熟且值得信赖的解决方案,它通过 PAM(可插入身份验证模块)支持虚拟用户。虚拟用户是在 /etc/passwd 和 /etc/shadow 文件中不作为系统上的真实登录存在的用户登录。因此,虚拟用户可以比真实用户更安全,因为被入侵的帐户只能使用 FTP 服务器,但不能登录系统使用其他服务,例如 SSH 或 SMTP。2011 年 7 月,发现可从主站点下载的 VSFTPD 版本 2.3.4 已被入侵。登录受感染的 vsftpd-2.3.4 服务器的用户可能会发出“:)”笑脸作为用户名,并在端口 6200 上获得命令 shell。这不是 VSFTPD 中的安全漏洞问题,而是有人上传了包含后门的不同版本的 VSFTPD。从那时起,该网站被移至 Google App Engine。特征尽管出于速度和安全性的目的很小,但使用 vsftpd 可以实现许多更复杂的 FTP 设置!vsftpd 可以处理:虚拟 IP 配置虚拟用户独立或 inetd 操作强大的每用户可配置性带宽限制每源 IP 可配置性每源 IP 限制docker我们使用的是 markhobson/vsftpd:3.0.3的docker镜像这个 Docker 容器实现了一个 vsftpd 服务器,具有以下特性:Centos 8 基础镜像。vsftpd 3.0虚拟用户被动模式记录到文件或 STDOUT。支持的环境变量如下:环境变量此图像使用环境变量来允许在运行时配置一些参数:变量名:FTP_USER默认值:管理员接受的值:任何字符串。避免使用空格和特殊字符。说明:默认 FTP 帐户的用户名。如果在运行时没有通过FTP_USER环境变量指定admin,默认会使用。变量名:FTP_PASS默认值:随机字符串。接受的值:任何字符串。说明:如果不通过 指定默认FTP账号的密码,FTP_PASS会自动生成一个16个字符的随机字符串。你可以通过容器日志获取该值。变量名:PASV_ADDRESS默认值:Docker 主机 IP / 主机名。接受的值:任何 IPv4 地址或主机名(请参阅 PASV_ADDRESS_RESOLVE)。说明:如果你不指定要在被动模式下使用的 IP 地址,则将使用 Docker 主机的路由 IP 地址。请记住,这可能是本地地址。变量名:PASV_ADDR_RESOLVE默认值:否接受的值:<NO|YES>说明:如果你想在 PASV_ADDRESS 选项中使用主机名(而不是 IP 地址),请设置为 YES。变量名:PASV_ENABLE默认值:是接受的值:<NO|YES>说明:如果要禁止 PASV 方法获取数据连接,请设置为 NO。变量名:PASV_MIN_PORT默认值:21100接受的值:任何有效的端口号。说明:这将用作被动模式端口范围的下限。请记住使用docker -p参数发布你的端口。变量名:PASV_MAX_PORT默认值:21110接受的值:任何有效的端口号。说明:这将用作被动模式端口范围的上限。启动具有大量已发布端口的容器将需要更长的时间。变量名:XFERLOG_STD_FORMAT默认值:否接受的值:<NO|YES>说明:如果你希望传输日志文件以标准 xferlog 格式写入,请设置为 YES。变量名:LOG_STDOUT默认值:空字符串。接受的值:任何要启用的字符串、空字符串或未定义为禁用。说明:通过STDOUT输出vsftpd日志,以便通过容器日志访问。变量名:FILE_OPEN_MODE默认值:0666接受的值:文件系统权限。描述:创建上传文件的权限。Umasks 应用在这个值之上。如果你希望上传的文件可执行,你可能希望更改为 0777。变量名:LOCAL_UMASK默认值:077接受的值:文件系统权限。说明:为本地用户设置的用于文件创建的 umask 的值。笔记!如果要指定八进制值,请记住“0”前缀,否则该值将被视为以 10 为底的整数!变量名:REVERSE_LOOKUP_ENABLE默认值:是接受的值:<NO|YES>说明:如果你想避免名称服务器不响应反向查找的性能问题,请设置为 NO。变量名:PASV_PROMISCUOUS默认值:否接受的值:<NO|YES>说明:如果要禁用 PASV 安全检查以确保数据连接来自与控制连接相同的 IP 地址,请设置为 YES。仅当你知道自己在做什么时才启用!唯一合法的用途是某种形式的安全隧道方案,或者可能是为了促进 FXP 支持。变量名:PORT_PROMISCUOUS默认值:否接受的值:<NO|YES>说明:如果要禁用 PORT 安全检查以确保传出数据连接只能连接到客户端,请设置为 YES。仅当你知道自己在做什么时才启用!对此的合法用途是促进 FXP 支持。变量名:SSL_ENABLE默认值:否接受值:YES 或 NO。说明:如果要启用 SSL 加密,请设置为 YES - 制作 FTPS 服务器。变量名:TLS_CERT默认值:cert.pem接受的值:任何字符串表示文件名的扩展名说明:应位于/etc/vsftpd/cert/容器中的证书文件名。变量名:TLS_KEY默认值:key.pem接受的值:任何字符串表示文件名的扩展名描述:应该位于/etc/vsftpd/cert/容器中的密钥文件名。暴露的端口和卷该图像暴露了端口20和21. 此外,导出三个卷:/home/vsftpd,包含用户主目录,/var/log/vsftpd,用于存储日志和/etc/vsftpd/cert,为容器提供 SSL 证书。在主机和容器 ( /home/vsftpd) 之间共享主目录时,所有者用户 ID 和组 ID 应分别为 14 和 50。这对应于容器上的 ftp 用户和 ftp 组,但可能与主机上的其他内容匹配。docker-compose ftpversion: '2.4' services: rabbitmq: image: markhobson/vsftpd:3.0.3 container_name: vsftpd restart: always hostname: "vsftp" network_mode: "host" environment: - FTP_USER=marksugar - FTP_PASS=linuxea - PASV_ADDRESS=IPADRESS #- PASV_ADDR_RESOLVE=YES - PASV_MIN_PORT=21100 - PASV_MAX_PORT=21110 - FASV_MAX_PER_IP=20000 - FASV_MAX_CLIENTS=200000 #- FILE_OPEN_MODE=0666 #- LOCAL_UMASK=077 #- REVERSE_LOOKUP_ENABLE=NO volumes: - /data/vsftp:/home/vsftpd mem_limit: 2048m而后runing起来docker-compose -f vsftpd.yaml up -dftp客户端工具对于客户端工具可以考虑sftp和FileZilla,更推荐FileZilla我们需要注意下字符集传输,一般默认即可,特殊情况需要修改字符集的情况,特别是中文的时候filezillasftp断点续传
2022年02月23日
2,181 阅读
0 评论
0 点赞
2022-02-21
linuxea:局域网ntp和chronyd时间同步的简单配置
在某些环境下,我们需要ntp服务器,同时我们可能还需要配置chronyd来同步我们的节点时间,而在k8s的环境中,服务器的时间是需要同步的,并且在一些警报中是会检测,为了解决这个问题,在一些局域网内没有互联网的情况下,就需要手动配置ntp通过yum install 方式来安装ntp服务,而后我们配置一个server 192.168.5.26 iburstprefer:优先使用该时间服务器burst:当一个运程NTP服务器可用时,向它发送一系列的并发包进行检测。iburst:当一个运程NTP服务器不可用时,向它发送一系列的并发包进行检测。“iburst” 选项作用是如果在一个标准的轮询间隔内没有应答,客户端会发送一定数量的包(八个包而不是通常的一个)给 NTP 服务器。如果在短时间内呼叫 NTP 服务器几次,没有出现可辨识的应答,那么本地时间将不会变化通常情况,大多数只是在没有公网环境的情况下配置一个内网的,小局域网内的一个环境使用/etc/ntp.confdriftfile /var/lib/ntp/ntp.drift statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server ntp1.aliyun.com prefer server 192.168.5.26 iburst server ntp.aliyun.com prefer server 2.centos.pool.ntp.org iburst server 3.centos.pool.ntp.org iburst #server ntp.ubuntu.com server 127.127.1.0 fudge 127.127.1.0 stratum 5 restrict -4 default kod notrap nomodify nopeer noquery restrict -6 default kod notrap nomodify nopeer noquery restrict 17.168.0.0 mask 255.255.255.0 nomodify restrict 127.0.0.1 restrict ::1 #https://www.jianshu.com/p/e5e486c8e365而后开启即可systemctl start ntpd systemctl enable ntpdchronydChrony是一个开源的自由软件,如果在chrony配置文件中指定了ntp服务器的地址,那么chrony就是一台客户端,会去同步ntp服务器的时间,如果在chrony配置了允许某些客户端来向自己同步时间,则chrony也充当了一台服务器,所以,安装了chrony即可充当客户端也可以充当服务端。Chrony有两个核心组件,分别是:chronyd:是守护进程,主要用于调整内核中运行的系统时间和时间服务器同步。它确定计算机增减时间的比率,并对此进行调整补偿。chronyc:提供一个用户界面,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可以在一台不同的远程计算机上工作。ntpd同步时间某些时候需要长时间来同步时间,在Centos7中的chrony也实现时间同步hrony兼容ntpd监听在udp123端口上,另外还监听在udp的323端口上。我们通过yum install -y chrony进行安装通常k8s在时间同步上是使用的是chronyd来判断的,NTP synchronized,如下~ # timedatectl Local time: 五 2021-10-29 15:05:00 CST Universal time: 五 2021-10-29 07:05:00 UTC RTC time: 五 2021-10-29 07:05:09 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: no RTC in local TZ: no DST active: n/a我们停掉ntpd systemctl stop ntpd cp /etc/chrony.conf{,.bak} systemctl stop ntpd配置一个基于阿里云ntp.aliyun.com的chrony的地址,我们假设上面的ntp就是chrond要使用的服务器,如下cp /etc/chrony.conf{,.bak} cat > /etc/chrony.conf << EOF server 192.168.5.26 server ntp1.aliyun.com server ntp2.aliyun.com driftfile /var/lib/chrony/drift makestep 1.0 3 rtcsync logdir /var/log/chrony EOF systemctl enable --now chronyd systemctl restart chronyd chronyc activity chronyc sources firewall-cmd --add-service=ntp --permanent firewall-cmd --reload而后配置开机启动,兵重启systemctl enable --now chronyd systemctl restart chronyd chronyc activity chronyc sources firewall-cmd --add-service=ntp --permanent firewall-cmd --reload查看她的状态[root@linuxea.com ~]# chronyc activity 200 OK 1 sources online 0 sources offline 0 sources doing burst (return to online) 0 sources doing burst (return to offline) 0 sources with unknown address [root@linuxea.com ~]# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^? 17.168.0.165 3 6 3 12 -4527us[-4527us] +/- 51ms[root@linuxea.com ~]# chronyc sources -v 210 Number of sources = 1 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 17.168.0.165 3 6 7 14 -5642ns[ -33.3s] +/- 62ms[root@linuxea.com ~]# chronyc tracking Reference ID : 11A800A5 (17.168.0.165) Stratum : 4 Ref time (UTC) : Fri Oct 29 07:09:14 2021 System time : 0.000000000 seconds slow of NTP time Last offset : -33.251636505 seconds RMS offset : 33.251636505 seconds Frequency : 10.242 ppm slow Residual freq : -0.000 ppm Skew : 63.129 ppm Root delay : 0.048810445 seconds Root dispersion : 0.042059928 seconds Update interval : 0.0 seconds Leap status : Normal最后我们在观察,这里的NTP synchronized: 已经是yes`状态[root@linuxea.com ~]# timedatectl Local time: 五 2021-10-29 15:10:56 CST Universal time: 五 2021-10-29 07:10:56 UTC RTC time: 五 2021-10-29 07:10:32 Time zone: Asia/Shanghai (CST, +0800) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a参考Chrony-替换你的NTP服务
2022年02月21日
2,139 阅读
0 评论
0 点赞
2020-11-25
linuxea:firewall简单使用笔记
FirewallD使用服务和区域的概念,而不是iptables规则和链。使用它,您可以配置应该允许或禁止与系统之间的通信。FirewallD使用firewall-cmd实用程序来管理防火墙配置。LinuxEA # firewall-cmd --list-all FirewallD is not running启动并启用LinuxEA # systemctl start firewalld LinuxEA # systemctl enable firewalld Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service. Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.状态已经运行LinuxEA # firewall-cmd --state running以下是FirewallD中包含的预定义区域:这些可以使用firewall-cmd --get-zones来获取drop –丢弃所有传入连接,不作任何答复,只允许传出连接。block –与区域删除相同,但所有传入连接均使用icmp-host- prohibited或icmp6-adm-prohibited消息阻止。public -它代表不可靠的公共区域。external -防火墙用作网关的外部网络。因为它是为NAT伪装而配置的,所以内部网络将保持私有但可访问。internal –仅接受选定的传入连接,用于内部网络。dmz –非军事区,内部网络可公开访问,访问受限,并且仅接受选定的传入连接。work –用于工作机。home -使用的家用机。trusted -接受所有网络连接。使用FirewallD配置防火墙默认情况下,public域是启用防火墙服务后的默认区域。LinuxEA # firewall-cmd --get-default-zone public使用--get-zones可以看到所有区域LinuxEA # firewall-cmd --get-zones block dmz drop external home internal public trusted work--get-active-zones 查看网络接口使用了哪些区域LinuxEA # firewall-cmd --get-active-zones public interfaces: eth0可以使用--set-default-zone=""和--get-default-zone来设置和查看# firewall-cmd --set-default-zone=drop 比如更改为home域或者drop域 # firewall-cmd --get-default-zone对外开放服务打开http和https临时打开对外开放http和httpsLinuxEA # firewall-cmd --zone=drop --add-service=http success LinuxEA # firewall-cmd --zone=drop --add-service=https success永久写入: --permanentLinuxEA # firewall-cmd --zone=drop --permanent --add-service=http success LinuxEA # firewall-cmd --zone=drop --permanent --add-service=https success或者这样LinuxEA # firewall-cmd --zone=drop --permanent --add-port 80/tcp success LinuxEA # firewall-cmd --zone=drop --permanent --add-port 443/tcp success如果有多个端口,比如开启:80到100端口LinuxEA # firewall-cmd --zone=drop --permanent --add-port 80-100/tcpORLinuxEA # firewall-cmd --zone=drop --permanent --add-port={80/tcp,443/tcp,8080/tcp,9000-9086/tcp} success如果有多个服务LinuxEA # firewall-cmd --zone=drop --permanent --add-service={http,https,dns,jenkins} success如果要查看这些端口,则可以使用--info-service=NAME,这些信息预置在/usr/lib/firewalld/services目录下。如下:LinuxEA # firewall-cmd --info-service=jenkins jenkins ports: 8080/tcp protocols: source-ports: modules: destination: includes: helpers: 而后重新加载LinuxEA # firewall-cmd --reload success使用--list-all查看LinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dns http https jenkins ports: 80/tcp 443/tcp 8080/tcp 9000-9086/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 删除规则LinuxEA # firewall-cmd --zone=drop --permanent --remove-service=http success LinuxEA # firewall-cmd --zone=drop --permanent --remove-service=https success或者LinuxEA # firewall-cmd --zone=drop --permanent --remove-port 80/tcp success LinuxEA # firewall-cmd --zone=drop --permanent --remove-port 443/tcp successLinuxEA # firewall-cmd --reload successLinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dns jenkins ports: 8080/tcp 9000-9086/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: 源ip地址管理可以将区域绑定到网络接口和地址: 对于drop区域,放行172.16.100.0/24网段LinuxEA # firewall-cmd --permanent --zone=drop --add-source=172.16.100.0/24 success LinuxEA # firewall-cmd --reload success移除--remove-sourceLinuxEA # firewall-cmd --permanent --zone=drop --remove-source=172.16.100.0/24 success LinuxEA # firewall-cmd --reload success LinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:还有修改-change-source可以对Mac地址进行管理 firewall-cmd --permanent --zone=drop --add-source=80-FA-5B-25-3B-1A丰富的Rich Rules由于rich规则所使用的语法很难记住,因此请记住man firewalld.richlanguage命令和最后的“示例”部分。格式如下:firewall-cmd --add-rich-rule 'rule ...'允许172.16.100.107所有的连接请求。--add-rich-rulefirewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" accept" log 可以使用log选项记录日志到 /var/log/messagesfirewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" log accept" 使用--list-allLinuxEA # firewall-cmd --list-all drop (active) target: DROP icmp-block-inversion: no interfaces: ens33 sources: services: dns jenkins ports: 8080/tcp 9000-9086/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="172.16.100.107" accept rule family="ipv4" source address="172.16.100.107" log accept或者这样添加ip段 172.16.100.0/24LinuxEA # firewall-cmd --permanent --zone=drop --add-rich-rule='rule family="ipv4" source address="172.16.100.0/24" port port="22-23" protocol="tcp" accept' success LinuxEA # firewall-cmd --reload success删除允许172.16.100.107所有的连接请求。 --remove-rich-rulefirewall-cmd --permanent --zone=drop --remove-rich-rule="rule family="ipv4" source address="172.16.100.107" accept" 允许ip和拒绝ip# 根据ip接受所有端口 firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" accept" # 根据ip拒绝所有端口 firewall-cmd --permanent --zone=drop --add-rich-rule="rule family="ipv4" source address="172.16.100.107" drop" 禁用pingfirewall-cmd --permanent --zone=drop --add-rich-rule='rule protocol value=icmp drop'删除zone删除/etc/firewalld/zones下的zone命名的xml文件而后重新加载即可Direct rulesfirewall-cmd工具中的--direct选项可以在运行时添加和删除链。直接接口模式可以让服务或者程序在运行时候添加特定的防火墙。作用于文件 /etc/firewalld/direct.xml将规则添加到INPUT链,放行8090端口LinuxEA # firewall-cmd --direct --permanent --zone=drop --add-rule ipv4 filter INPUT 0 -p tcp --dport 8090 -j ACCEPT success查看iptablesLinuxEA # iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090用firewall查看LinuxEA # firewall-cmd --direct --get-all-rules ipv4 filter INPUT 0 -p tcp --dport 8090 -j ACCEPT请注意,此命令(该--get-rules选项)仅列出以前使用该--add-rule选项添加的规则。它没有列出通过其他方式添加的现有iptables规则。删除LinuxEA # firewall-cmd --direct --permanent --zone=drop --remove-rule ipv4 filter INPUT 0 -p tcp --dport 8090 -j ACCEPT如果你在初始化系统这条命令可以放行sshfirewall-offline-cmd --direct --add-rule ipv4 filter INPUT 0 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPTip set管理firewall有ipset的功能。 ipset是一组IP地址或网络。不同的区域类别,属于hash:ip或hash:net。配置黑名单ip创建ip组:blacklist1LinuxEA # firewall-cmd --permanent --zone=drop --new-ipset=blacklist1 --type=hash:ip success LinuxEA # firewall-cmd --reload success添加ip成员注意:添加--option=family=inet6以创建IPv6 ipset。LinuxEA # firewall-cmd --permanent --ipset=blacklist1 --add-entry=172.16.100.101 success LinuxEA # firewall-cmd --permanent --ipset=blacklist1 --add-entry=172.16.100.3 success添加拒绝规则LinuxEA # firewall-cmd --permanent --add-rich-rule='rule source ipset=blacklist1 drop' success获取blacklist1成员LinuxEA # firewall-cmd --info-ipset=blacklist1 blacklist1 type: hash:ip options: entries: 172.16.100.101 172.16.100.3删除组内ip成员LinuxEA # firewall-cmd --ipset=blacklist1 --remove-entry=172.16.100.101 success LinuxEA # firewall-cmd --ipset=blacklist1 --get-entries 172.16.100.3配置黑名单ip段创建新的黑名单netblacklist,类型hash:netLinuxEA # firewall-cmd --permanent --new-ipset=netblacklist --type=hash:net --option=family=inet --option=hashsize=4096 --option=maxelem=200000 successLinuxEA # firewall-cmd --reload successLinuxEA # firewall-cmd --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 添加两个网段LinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entry=172.16.100.0/24 successLinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entry=192.168.2.0/24 successLinuxEA # firewall-cmd --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 172.16.100.0/24 192.168.2.0/24或者添加一个ip文件列表LinuxEA # cat > iplist.txt <<EOL > 10.10.1.0/23 > 192.168.0.3 > 172.16.100.0/24 > 172.16.90.0/24 > EOL--add-entries-from-file添加,改成--remove-entries-from-file就删除LinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entries-from-file=iplist.txt successfirewall-cmd --permanent --ipset=netblacklist --remove-entries-from-file=iplist.txt单个添加和单个删除LinuxEA # firewall-cmd --permanent --ipset=netblacklist --add-entry=172.16.100.118 successfirewall-cmd --permanent --ipset=netblacklist --remove-entry=172.16.100.118LinuxEA # firewall-cmd --reload successLinuxEA # firewall-cmd --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 172.16.100.0/24 192.168.2.0/24 10.10.1.0/23 192.168.0.3 172.16.90.0/24没有丢弃参数,没有iptables命令,也没有与IP数据包相关的内容。这是因为使用的是firewalld的源功能,当一个IP地址与源(源接口,源IP甚至源MAC地址)匹配时,上述规则会将IP地址重定向到特定区域,在这种情况下为“阻止”。作用到某个区域firewall-cmd --permanent --zone=drop --add-source=ipset:netblacklist从区域内删除firewall-cmd --permanent --zone=drop --remove-source=ipset:netblacklist管理命令查看ipsetLinuxEA # firewall-cmd --permanent --get-ipsets blacklist1 netblacklist查看ipset表LinuxEA # firewall-cmd --permanent --info-ipset=netblacklist netblacklist type: hash:net options: family=inet hashsize=4096 maxelem=200000 entries: 172.16.100.0/24 192.168.2.0/24 10.10.1.0/23 192.168.0.3 172.16.90.0/24LinuxEA # firewall-cmd --permanent --info-ipset=blacklist1 blacklist1 type: hash:ip options: entries: 端口转发sysctl -w net.ipv4.ip_forward=1如果防火墙是您的网络网关,并且不希望所有人都知道您的内部地址,则可以设置两个区域,一个称为内部区域,另一个称为外部区域,并在外部区域上配置伪装。 这样,所有数据包都将获取您的防火墙IP地址作为源地址。端口转发是一种将特定端口的入站网络流量转发到另一个内部地址或备用端口的方法端口转发需要masquerading ,因此创建LinuxEA # firewall-cmd --zone=external --add-masquerade success如果希望暂时将所有要发送给端口22的数据包转发到端口tcp 3753LinuxEA # firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753 success把80端口转发到后端的172.25.100.2 8080firewall-cmd --permanent --add-forward port=80:proto=tcp:toaddr=172.25.100.2:toport=8080要删除端口转发,使用-remove-forward-port选项firewall-cmd --zone=external --remove-forward-port=port=22:proto=tcp:toport=3753如果要定义目标IP地址:LinuxEA # firewall-cmd --permanent --zone=external --add-forward-port=port=22:proto=tcp:toport=3753:toaddr=172.16.100.101 success LinuxEA # firewall-cmd --reload success--permanent永久生效示例:假如现在希望通过SSH从public (10.10.1.0/24)访问dmz网络(10.8.8.0/24)上的服务器。为此,我们需要放置一些端口转发规则。以下规则配置端口转发,以便将与10.10.1.79:2271的连接转发到10.8.8.71:22,并进行SSH日志记录# firewall-cmd --permanent --zone=public --add-forward-port='port=2271:proto=tcp:toport=22:toaddr=10.8.8.71' # firewall-cmd --permanent --zone=public --add-rich-rule='rule service name=ssh log prefix="SSH_" level="debug" limit value=1/m reject' # firewall-cmd --reload普通配置示例# 创建linuxea区域 firewall-cmd --permanent --new-zone=linuxea firewall-cmd --reload删除zone只需要删除/etc/firewalld/zones下的zone命名的xml文件而后重新加载即可# 修改默认域为linuxea firewall-cmd --set-default-zone=linuxea # 放行https,http firewall-cmd --permanent --zone=linuxea --add-service={http,https} # 运行172.16.100.101登录ssh firewall-cmd --permanent --zone=linuxea --add-rich-rule='rule family="ipv4" source address="172.16.100.101" port port="22" protocol="tcp" accept' # 允许10.100.10.0/24网段访问8080端口 firewall-cmd --permanent --zone=linuxea --add-rich-rule='rule family="ipv4" source address="10.100.10.0/24" port port="8080" protocol="tcp" accept' # 拒绝10.100.100.4访问80端口 firewall-cmd --permanent --zone=linuxea --add-rich-rule='rule family="ipv4" source address="10.100.100.4" port port="80" protocol="tcp" drop'# 重载 LinuxEA # firewall-cmd --reload success # 查看规则 LinuxEA # firewall-cmd --list-all linuxea (active) target: default icmp-block-inversion: no interfaces: ens33 sources: services: http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules: rule family="ipv4" source address="172.16.100.101" port port="22" protocol="tcp" accept rule family="ipv4" source address="10.100.100.4" port port="80" protocol="tcp" drop rule family="ipv4" source address="10.100.10.0/24" port port="8080" protocol="tcp" accept紧急模式firewall-cmd --panic-on 执行端口所有连接 firewall-cmd --panic-off 关闭 firewall-cmd --query-panic 查询
2020年11月25日
2,925 阅读
0 评论
0 点赞
2017-08-30
PV unknown device VG处理
如:WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter PV unknown device VG MKVG lvm2 [100.00 GiB / 100.00 GiB free][root@linuxea-Node49 ~]# vgscan -P PARTIAL MODE. Incomplete logical volumes will be processed. Reading all physical volumes. This may take a while... WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. Found volume group "MKVG" using metadata type lvm2查看[root@linuxea-Node49 ~]# pvscan -P PARTIAL MODE. Incomplete logical volumes will be processed. WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. PV /dev/xvda2 VG MKVG lvm2 [14.50 GiB / 0 free] PV unknown device VG MKVG lvm2 [100.00 GiB / 100.00 GiB free] PV unknown device VG MKVG lvm2 [20.01 GiB / 20.01 GiB free] PV unknown device VG MKVG lvm2 [20.01 GiB / 20.01 GiB free] Total: 4 [154.51 GiB] / in use: 4 [154.51 GiB] / in no VG: 0 [0 ]直接--removemissing[root@linuxea-Node49 ~]# vgreduce --removemissing -v MKVG Finding volume group "MKVG" WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. There are 3 physical volumes missing. There are 3 physical volumes missing. Trying to open VG MKVG for recovery... Found same device /dev/xvda2 with same pvid jIyyxh6U9R3ev3PcOApJognXuKPlWkWQ WARNING: Device for PV ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi not found or rejected by a filter. WARNING: Device for PV L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld not found or rejected by a filter. WARNING: Device for PV W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE not found or rejected by a filter. There are 3 physical volumes missing. There are 3 physical volumes missing. Archiving volume group "MKVG" metadata (seqno 8). Removing PV with UUID ZKBljh-qpd7-IhOp-9pSg-1270-kOe0-HZOuYi from VG MKVG Removing PV with UUID L1x9c0-sItt-Wk79-NfGN-dkE8-fl4T-46oJld from VG MKVG Removing PV with UUID W8c11Z-bZiH-NzYf-edTw-fghk-uhiK-oKmRXE from VG MKVG Creating volume group backup "/etc/lvm/backup/MKVG" (seqno 9). Wrote out consistent volume group MKVG在查看[root@linuxea-Node49 ~]# vgscan -P PARTIAL MODE. Incomplete logical volumes will be processed. Reading all physical volumes. This may take a while... Found volume group "MKVG" using metadata type lvm2
2017年08月30日
11,834 阅读
0 评论
0 点赞
2016-12-29
shell中/dev/null 2>&1是什么
高级用法重定向绑定好了,在有了以上知识的基础上,我们再来看开头提到的>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。/dev/null这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。2>&1这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。/dev/null 2>&1 VS 2>&1 >/dev/null弄反了>/dev/null和2>&1拼装的顺序,导致出了一点小问题。乍眼看这两条命令貌似是等同的,但其实大为不同。刚才提到了,linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令。那么我们同样从左到右地来分析2>&1 >/dev/null:2>&1,将错误输出绑定到标准输出上。由于此时的标准输出是默认值,也就是输出到屏幕,所以错误输出会输出到屏幕。/dev/null,将标准输出1重定向到/dev/null中。我们用一个表格来更好地说明这两条命令的区别:命令 标准输出 错误输出/dev/null 2>&1 丢弃 丢弃2>&1 >/dev/null 丢弃 屏幕/dev/null 2>&1 VS >/dev/null 2>/dev/null那么可能会有些同学会疑问,为什么要用重定向绑定,而不是像>/dev/null 2>/dev/null这样子重复一遍呢。为了回答这个问题,我们回到刚才介绍输出重定向的场景。我们尝试将标准输出和错误输出都定向到out文件中:# ls a.txt b.txt >out 2>out # cat out a.txt�法访问b.txt: 没有那个文件或目录WTF?竟然出现了乱码,这是为啥呢?这是因为采用这种写法,标准输出和错误输出会抢占往out文件的管道,所以可能会导致输出内容的时候出现缺失、覆盖等情况。现在是出现了乱码,有时候也有可能出现只有error信息或者只有正常信息的情况。不管怎么说,采用这种写法,最后的情况是无法预估的。而且,由于out文件被打开了两次,两个文件描述符会抢占性的往文件中输出内容,所以整体IO效率不如>/dev/null 2>&1来得高。nohup结合我们经常使用nohup command &命令形式来启动一些后台程序,比如一些java服务:# nohup java -jar xxxx.jar &为了不让一些执行信息输出到前台(控制台),我们还会加上刚才提到的>/dev/null 2>&1命令来丢弃所有的输出:# nohup java -jar xxxx.jar >/dev/null 2>&1 &总结本文主要介绍了linux重定向的原理以及一些基本命令,并且详细地分析了>/dev/null 2>&1这个命令以及一些注意点。总而言之,在工作中用到最多的就是nohup command >/dev/null 2>&1 &命令,希望大家能够好好掌握。
2016年12月29日
3,359 阅读
0 评论
0 点赞
1
2
...
10