Category: newest
-

Centos日志时区差8小时UTC改为CST
[root@zhzl tinyproxy]# date Fri Jul 9 01:12:23 UTC 2021 [root@zhzl tinyproxy]# timedatectl Local time: Fri 2021-07-09 01:13:15 UTC Universal time: Fri 2021-07-09 01:13:15 UTC RTC time: Fri 2021-07-09 01:13:15 Time zone: UTC (UTC, +0000) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a [root@zhzl tinyproxy]# ls -l /etc/localtime lrwxrwxrwx. 1…
-

vim粘贴取消自动缩进
一劳永逸的办法: 下面是旧文,可以不用看。 Vim作为最好用的文本编辑器之一,使用vim来编文档,写代码实在是很惬意的事情。每当学会了vim的一个新功能,就会很大地提高工作效率。有人使用vim几 十年,还没有完全掌握vim的功能,这也说明了vim的强大。而这样何尝不是一件好事呢,只要有的学习,就有的提高。最近使用Vim来写博客,发现在Vim中粘贴Python代码后,缩进就全乱了。仔细研究了以下,原来是自动缩进的缘故,于是做如下设置::set noai nosi取消了自动缩进和智能缩进,这样粘贴就不会错行了。但在有的vim中不行,还是排版错乱。后来发现了更好用的设置: :set paste进入paste模式以后,可以在插入模式下粘贴内容,也可以:textwidth设置为0wrapmargin设置为0set noaiset nosisofttabstop设置为0revins重置ruler重置showmatch重置formatoptions使用空值下面的选项值不变,但却被禁用:lispindentexprcindent 使用键盘映射设置:::map <F10> :set paste<CR> :map <F11> :set nopaste<CR> 这样在粘贴前按F10键启动paste模式,粘贴后按F11取消paste模式即可。其实,paste有一个切换paste开关的选项,这就是pastetoggle。通过它可以绑定快捷键来激活/取消 paste模式。比如:::set pastetoggle=<F11>这样减少了一个快捷键的占用,使用起来也更方便。
-

修改mysql 5.7.27日志时区从UTC到SYSTEM(数据库时间 和 日志记录时间不一样解决办法)
问题:mysql的日志显示时间少8个小时,明显是时区问题。 先查看数据库时间是对的: mysql> select now(); +———————+ | now() | +———————+ | 2021-07-03 11:03:15 | +———————+ 1 row in set (0.01 sec) 再次查看默认的系统时区system_time_zone是CST,time_zone是跟随SYSTEM,所以也是CST,mysql数据库采用的时区没有问题,都是中国时区的时间。 mysql> show variables like “%time_zone%”; +——————+——–+ | Variable_name | Value | +——————+——–+ | system_time_zone | CST | | time_zone | SYSTEM | +——————+——–+ 2 rows in set (0.01 sec) 但是mysql的日志时间是不对的,比正常时间晚了8个小时,查看日志采用的时区log_timestamps,发现是UTC mysql> SHOW global…
-

人性化定制修改GItlab的502错误Whoops, GitLab is taking too much time to respond
Gitlab日常维护备份时,系统不可用。报错如下: 如未提前告知开发人员,导致误会。个性化定制一下。 找到502页面所在位置 /opt/gitlab/embedded/service/gitlab-rails/public/502.html 修改即可: 修改后的提示比较明确:
-

ubuntu安装dns bind9 服务器
1 Install BIND Install bind9 with apt. sudo apt-get install -y bind9 2 Configuration Private network address is 172.16.11.0/24. Private network name is moneyslow.com. IP address of DNS server for private network is 172.16.11.70. This DNS server uses recursive query. IP address of client is 172.16.11.250. IP address of DNS server for internet is 172.16.11.1.…
-

bind dns错误日志 (network unreachable) error ipv6地址
报错日志: Oct 23 11:39:03 server named[1585]: error (network unreachable) resolving ‘./DNSKEY/IN’: 2001:503:ba3e::2:30#53Oct 23 11:39:03 server named[1585]: error (network unreachable) resolving ‘./NS/IN’: 2001:503:ba3e::2:30#53Oct 23 11:39:03 server named[1585]: error (network unreachable) resolving ‘dlv.isc.org/DNSKEY/IN’: 2001:500:48::1#53Oct 23 11:39:03 server named[1585]: error (network unreachable) resolving ‘dlv.isc.org/DNSKEY/IN’: 2001:4f8:0:2::19#53Oct 23 11:39:03 server named[1585]: error (network unreachable) resolving ‘ns.isc.afilias-nst.info/A/IN’: 2001:500:2f::f#53Oct 23 11:39:03 server…
-

-

-

-

华为vpn连接错误 无法启动虚拟网卡适配任务,在Windows Server 2012下禁止驱动程序强制签名
华为vpn连接报错: 原因: Windows有一个驱动程序签名功能,它的作用是为了保护系统的安全稳定,可以避免因为安装了未经许可的驱动程序从而导致系统不稳定更甚是崩溃的问题。 我这里使用VPN所需要的虚拟网卡恰好是没有许可证的,所以解决方法是需要禁止驱动程序强制签名。 解决方案: 一、前提,首先保证两个服务是可用的: 1、在Windows服务列表里找到名称为 “Workstation”的服务 解决办法: “开始”→“运行”→在“打开”位置输入 services.msc 命令,按“回车键”进入“服务”窗口,设置“Workstation” 服务为“自动启动”并启动该服务。 对于“Workstation”服务的描述: 创建和维护到远程服务的客户端网络连接。如果服务停止,这些连接将不可用。如果服务被禁用,任何直接依赖于此服务的服务将无法启动。 2、在Windows服务列表里找到名称为“Routing and Remote Access”服务没有启动。 解决办法: “开始”→“运行”→在“打开”位置输入 services.msc 命令,按“回车键”进入“服务”窗口,设置“Routing and Remote Access” 服务为“自动启动”并启动该服务。 二、windows2012如何禁止驱动程序强制签名 自 Windows 8 / Server 2012 开始,为了加快系统的启动速度,新的操作系统在启动过程上进行了很大的改进,因此用户无法再像原先那样在启动过程中按下F8键来调用系统的高级启动选项菜单。针对这样的设计微软官方好像是做过解释,大概是只有当系统出现异常时,启动过程才会自动出现高级启动选项菜单。除此之外就需要用户在当前系统上执行转到高级启动选项菜单的操作。 在 Windows 8 下要实现这一操作非常简单,用户可以调出超级按钮,点击“更改电脑设置”,之后在“常规”下找到“高级启动”,并点击“立即重启”。 之后系统就会很快速的进入到全新的高级启动选项菜单下,我们可以根据需要进行选择。 当然,我们也可以在搜索中直接键入高级启动,便可在设置下找到高级启动选项。 那么在 Windows Server 2012 上我们如何能进入高级启动选项菜单呢?通过以上的步骤肯定是行不通的,那么我们可以使用两种办法来实现。 命令行方式 – shutdown 命令,这种方式显而易见,需要在已经登录的系统中执行,当然这个方式也是最简单、最直接的!但是某些场景下可能不尽人意。 shutdown –r –o 经过测试,本命令有效,后面的步骤未验证: 修改…
-

convert 命令剪切合并图片
剪切和合并应用两个不同的参数分两次进行处理. 剪切图片使用的命令为: convert -crop MxN+a+b src.jpg dst.jpg 从原始图片中剪切出 M x N 尺寸(宽为M,高为N)的图片,+a+b 表示以左上角为坐标原点,右和下方向分别为X轴Y轴的点 (a,b) 位置开始。你也可以使用 -a-b 以右下角为坐标原点,左和上为XY轴的坐标系。 合并图片的命令为: convert -append 1.jpg 2.jpg dst.jpg 上面命令将图片1和图片2合并得到图片dst.jpg,左边对齐,垂直方向合并,假设 1.jpg 和 2.jpg 尺寸都为 300 x 400 那么合并得到的图片dst.jpg尺寸为 300 x 800。 使用 convert +append 1.jpg 2.jpg 3.jpg +append 图片在水片方向上合并,得到的图片3尺寸为 600 x 400 掌握上面用法就可以很方便的完成类似这样的任务:你分别扫描了身份证正面和反面两张照片,需要将身份证正反面合并到一张照片上去。
-

从全球ping测试IPv6网站速度(https://tools.keycdn.com/ipv6-ping)
如下图,可以通过网址 https://tools.keycdn.com/ipv6-ping 从全球10个节点测试你的ipv6网站ping速度。 如果想在IPv4环境下访问纯IPv6网站内容,可以通过 https://ipv6screen.moneyslow.com 进行验证。 使用 IPv6 Ping 测试 IPv6 Ping 测试与我们的Ping 测试工具非常相似,但在这种情况下,它允许您从不同位置同时 ping 一个 IPv6 主机或 IP。说到网站延迟, Ping 很重要。该工具将 ICMP 数据包发送到某个地址以查看响应速度。更快的 ping 意味着更灵敏的连接。 IPv6 地址示例 (www.google.com): 2a00:1450:400a:804::2004 如何在 CLI 上执行 IPv6 Ping? 只需使用命令ping6 tools.keycdn.com。可能需要使用参数指定接口-I eth0(用适当的接口替换 eth0)。
-

谷歌chrome浏览器出现“您的网页不适合在移动设备上浏览”解决办法
您的网页不适合在移动设备上浏览 去google官网查看具体原因,地址: https://search.google.com/test/mobile-friendly 出现如下提示错误,发现3点不适合移动设备的访问的错误原因: 1.文字太小,无法阅读; 2.未设置视口值; 3.可点击元素之间的距离太近; 解决方案,在代码中添加: <meta name=”viewport” content=”width=device-width”> 再次测试 浏览器中再次搜索ipv6代理测试,查看网站已经好了,没有出现错误:
-

Linux的dig命令如何使用?
dig 命令主要用来从 DNS 域名服务器查询主机地址信息。 查询单个域名的 DNS 信息 dig 命令最典型的用法就是查询单个主机的信息。 $ dig baidu.com dig 命令默认的输出信息比较丰富,大概可以分为 5 个部分。 第一部分显示 dig 命令的版本和输入的参数。 第二部分显示服务返回的一些技术详情,比较重要的是 status。如果 status 的值为 NOERROR 则说明本次查询成功结束。 第三部分中的 “QUESTION SECTION” 显示我们要查询的域名。 第四部分的 “ANSWER SECTION” 是查询到的结果。 第五部分则是本次查询的一些统计信息,比如用了多长时间,查询了哪个 DNS 服务器,在什么时间进行的查询等等。 默认情况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让我们先来了解一下常见的 DNS 记录类型。 常见 DNS 记录的类型 类型 目的 A 地址记录,用来指定域名的 IPv4…
-

在Linux Centos7下,如何定时对日志文件进行切割?
使用logrotate通用方法来切割日志:(1).logrotate的配置文件logrotate配置文件主要在两个地方:/etc/logrotate.conf以及/etc/logrotate.d/下的明细配置文件。其中/etc/logrotate.conf文件是主配置文件,/etc/logrotate.d/下的明细配置文件都会被读入/etc/logrotate.conf进行执行,所以请注意这里还涉及到了公有变量和私有变量。 logrotate的执行是由crond服务来调用的,其脚本是/etc/cron.daily/logrotate,每天自动执行。我们可以看一下脚本具体内容: [root@moneyslow.com ~]# cat /etc/cron.daily/logrotate#!/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.confEXITVALUE=$?if [ $EXITVALUE != 0 ]; then/usr/bin/logger -t logrotate “ALERT exited abnormally with [$EXITVALUE]”fiexit 0简单的说明:/usr/sbin/logrotate工具调用了/var/lib/logrotate/logrotate.status和/etc/logrotate.conf两个文件。然后将执行的结果(就是那个$?,成功为0,不成功为非0)进行判断,非0时执行/usr/bin/logger命令。最后退出。看完定时计划任务,我们再来看主配置文件/etc/logrotate.conf(也就是公有变量)。具体内容如下:[root@moneyslow.com ~]# grep -vE “^$|^#” /etc/logrotate.conf weekly //每周一次rotate(翻译是旋转,其实就是切割)rotate 4 //保留4份切割文件,多余删除,不计算新建日志文件create //结束后创建一个新的空白日志文件dateext //用日期作为切切割文件的后缀include /etc/logrotate.d //将/etc/logrotate.d目录下的文件都加载进来(全都执行)/var/log/wtmp { //仅针对/var/log/wtmp文件monthly //每月执行一次create 0664 root utmp //结束后创建新的空白日志,权限0664,所有者root,所属组utmpminsize 1M //切割文件最少需要1M,否则不执行rotate 1 //保留1份,多余删除,不计算新建日志文件}/var/log/btmp { //仅针对/var/log/btmpmissingok //丢失不报错monthly //每月执行一次create 0600 root utmp //结束后创建新的空白日志,权限0600,所有者root,所属组utmprotate 1 //保留1份,多余删除,不计算新建日志文件}配置文件参数说明:missingok 日志切割期间产生错误将被忽略(如果日志丢失,不报错继续切割)daily、weekly、monthly、yearly 每天、每周、每月、每年执行create MODE OWNER GROUP 切割后指定创建新的空白文件的属性nocreate 不建立新的日志文件rotate N 保留N份,多余删除,不计算新建日志文件dateext 用当前日期作为后缀命名格式(默认年月日)dateformat .%s 配合dateext使用,紧跟在下一行出现,定义切割后的文件名,只支持%Y,%m,%d,%ssize/minsize 达到指定大小才会切割,默认单位bytes,还可以是KB和MBcompress 切割结束后,归档并使用gzip格式压缩nocompress 解除compress参数delaycompress 总是与compress参数一起使用,指示logrotate不要将最近的归档压缩,压缩将在下一次切割进行。nodelaycompress 解除delaycompress参数ifempty 即使日志为空,也执行切割notifempty 如果日志为空,切割不执行prerotate/endscript 在所有其他指令之前执行prerotate和endscript之间的命令。postrotate/endscript 在所有其他指令完成后,postrotate和endscript之间的命令将被执行。sharescripts 所有日志切割后统一执行一次脚本,如果没有配置该参数,则每个日志切割后都会执行一次脚本。errors ADDRESS 切割时的错误信息发送到指定的Emial地址mail ADDRESS 切割日志发送到指定的Email地址nomail 切割日志不发送邮件olddir DIRECTORY 切割后的日志文件放入指定目录,必须与当前日志处在同一文件系统noolddir 切割后的日志文件与当前文件放在同一目录下copytruncate 用于还在打开中的日志文件,把当前日志备份并截断;先拷贝后清空,可能丢失部分日志nocopytruncate 备份日志文件,但不截断。(2).查看上次切割日志时间/var/lib/logrotate/logrotate.status中默认记录logrotate上次切割日志文件的时间 [root@moneyslow.com logrotate]# cat /var/lib/logrotate/logrotate.statuslogrotate state…
-

Linux获取公网出口IP或者私网IP地址
得到本机的公网IP(出口IP)的方法: 国内首选curl cip.cccurl myip.ipip.net 获取ipv6地址:curl http://6.ipv6screen.moneyslow.com 国外curl http://members.3322.org/dyndns/getipcurl ifconfig.mecurl ipinfo.iocurl -4/-6 icanhazip.comcurl ipinfo.io/ipcurl api.ipify.orgcurl checkip.dyndns.orgdig +short myip.opendns.com @resolver1.opendns.comhost myip.opendns.com resolver1.opendns.comcurl ident.mecurl bot.whatismyipaddress.comcurl ipecho.net/plainThe following commands will get you the private IP address of your interfaces: 获取本地私网ip地址的方法: ifconfig -aip addr (或者 ip a)hostname -I | awk ‘{print $1}’ip route get 1.2.3.4 | awk ‘{print $7}’nmcli -p…
-
linux安全高手必会的curl命令模拟浏览器
使用 curl 下载文件 你可以通过提供指向特定 URL 的链接来使用 curl 命令下载文件。如果你提供的 URL 默认为 index.html,那么将下载此页面,并将下载的文件显示在终端屏幕上。你可以将数据通过管道传递到 less、tail 或任何其它命令: $ curl “http://moneyslow.com” | tail -n 4 <h1>Example Domain</h1> <p>This domain is for use in illustrative moneyslow.com in documents. You may use this domain in literature without prior coordination or asking for permission.</p> <p><a href=”https://moneyslow.com/domains/example”>More information…</a></p> </div></body></html> 由于某些 URL 包含特殊字符,shell 通常会将其解释,因此最安全的做法用引号将 URL…
-

OpenSSL代替telnet测试端口通不通
telnet命令是最受欢迎的网络故障排除工具之一,从系统管理员到网络爱好者都可以使用。在网络计算的早期,telnet被用来连接到一个远程系统。你可以用telnet访问一个远程系统的端口,登录并在该主机上运行命令。 由于 telnet缺乏加密功能,它在很大程度上已经被 OpenSSL 取代了这项工作。然而,作为一种智能的ping,telnet的作用仍然存在(甚至在某些情况下至今仍然存在)。虽然ping命令是一个探测主机响应的好方法,但这是它能做的全部。另一方面,telnet不仅可以确认一个活动端口,而且还可以与该端口的服务进行交互。即便如此,由于大多数现代网络服务都是加密的,telnet的作用可能要小得多,这取决于你想实现什么。 OpenSSL s_client 对于大多数曾经需要 telnet的任务,我现在使用 OpenSSL 的s_client命令。(我在一些任务中使用curl,但那些情况下我可能无论如何也不会使用telnet)。大多数人都知道OpenSSL是一个加密的库和框架,但不是所有人都意识到它也是一个命令。openssl命令的s_client组件实现了一个通用的 SSL 或 TLS 客户端,帮助你使用 SSL 或 TLS 连接到远程主机。它是用来测试的,至少在内部使用与该库相同的功能。 安装 OpenSSL $ sudo dnf install openssl 在 Debian 或类似的系统上: $ sudo apt install openssl 安装后,验证它的响应是否符合预期: $ openssl version OpenSSL x.y.z FIPS 验证端口访问 最基本的 telnet用法是一个看起来像这样的任务 $ telnet mail.example.com 25 Trying 98.76.54.32… Connected to example.com. Escape character…
-

IPv6添加iptables防火墙
iptables是一种流行的实用程序,允许系统管理员配置Linux内核防火墙提供的表以及它存储的链和规则。它是用于IPv4流量的最常见且使用最广泛的Linux防火墙,它具有一个称为ip6tables的版本,用于ipv6流量。两种版本都需要单独配置。在本文中,我将介绍如何在Ubuntu 16.04系统中配置ip6tables。请注意,需要具备iptables,防火墙策略和IPv6的基本知识。 系统中的IPv6在配置ip6tables之前,请确保您的系统支持IPv6。要检查,请键入以下命令: [root@ss-0-4-centos ~]# cat /proc/net/if_inet6fe80000000000000505400fffe5e97dc 02 40 20 80 eth000000000000000000000000000000001 01 80 10 80 lo24024e00101369000000932ea9852d0c 02 80 00 80 eth0 如何文件为空,则可以尝试通过modprobe ipv6加载IPv6模块。 在新安装的Ubuntu服务器中,默认情况下防火墙链为空。要查看链和规则,IPv6的防火墙状态可以这样看:[root@VM-0-4-centos ~]# ip6tables -L -nChain INPUT (policy ACCEPT)target prot opt source destination Chain FORWARD (policy ACCEPT)target prot opt source destination Chain OUTPUT (policy ACCEPT)target prot opt source destination 所有链(INPUT,FORWARD,OUTPUT)都是空的,并且链的默认策略设置为ACCEPT。 只查看链的命令:ip6tables -S…
-

如何查到 APNIC(Asia-Pacific Network Information Centre,APNIC)分配给中国的IPv6地址?
用以下命令: curl -4sSkL ‘http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest’ | grep CN | grep ipv6 | awk -F ‘|’ ‘{printf(“%s/%d\n”, $4, $5)}’
-

IPv6子网掩码计算
网址:http://www.gestioip.net/cgi-bin/subnet_calculator.cgi 输入IPv6地址和掩码,得出计算,例如 240a:6000::/24
-
IPv6地址表示方法
IPv6优点: 1、IPv6使用更小的路由表。使得路由器转发数据包的速度更快。 2、IPv6增加了增强的组播支持以及对流的控制,对多媒体应用很有利,对服务质量(QoS)控制也很有利。 3、IPv6加入了对自动配置的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。 4、IPv6具有更高的安全性。用户可以对网络层的数据进行加密并对IP报文进行校验,极大地增强了网络的安全性。 5、IPv6具有更好的扩容能力。如果新的技术或应用需要时,IPV6允许协议进行扩充。 6、IPv6具有更好的头部格式。IPV6使用新的头部格式,就简化和加速了路由选择过程,提高了效率。 IPv6 地址数量:2的128次方。 如果以二进制来写,IPv6的地址是128位。太长了所以,通常用十六进制来写,也就缩短成32位。 32位会分为8组,每组4位。 所以,下面这样的,就是一个标准的、合法的IPv6地址示例: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 注意啦!IPv6的地址是可以简写的!每项数字前导的0可以省略。 例如,下面这个地址: 2001:0DB8:02de:0000:0000:0000:0000:0e13 红色的“0”,就可以省略,变成: 2001:DB8:2de:0:0:0:0:e13 更进一步的,如果有一组或连续几组都是0,那么可以简写成“::”,也就是: 2001:DB8:2de::e13 是不是很神奇? 注意,一个IPv6地址,只能有一个“::”。 为什么呢?很简单,你看下面这四个地址,如果缩写,会变成什么样? 2001:0000:0000:0000:0000:25de:0000:cade 2001:0000:0000:0000:25de:0000:0000:cade 2001:0000:0000:25de:0000:0000:0000:cade 2001:0000:25de:0000:0000:0000:0000:cade 是的,都是2001::25de::cade,冲突了。所以,这个地址是非法的,不允许存在的。
-

apt和apt-get命令之间的区别
apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。 apt与apt-get之间的区别 通过 apt 命令,用户可以在同一地方集中得到所有必要的工具,apt 的主要目的是提供一种以「让终端用户满意」的方式来处理 Linux 软件包的有效方式。 apt 具有更精减但足够的命令选项,而且参数选项的组织方式更为有效。除此之外,它默认启用的几个特性对最终用户也非常有帮助。例如,可以在使用 apt 命令安装或删除程序时看到进度条。 apt 还会在更新存储库数据库时提示用户可升级的软件包个数。 虽然 apt 与 apt-get 有一些类似的命令选项,但它并不能完全向下兼容 apt-get 命令。也就是说,可以用 apt 替换部分 apt-get 系列命令,但不是全部。 apt 命令 取代的命令 命令的功能 apt install apt-get install 安装软件包 apt remove apt-get remove 移除软件包 apt purge apt-get purge 移除软件包及配置文件 apt update apt-get update 刷新存储库索引 apt…
-

-

Gitlab升级之路10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.5.4 -> 13.10.3
Gitlab因存在漏洞,必须进行升级。 https://help.aliyun.com/noticelist/articleid/1060824788.html https://help.aliyun.com/noticelist/articleid/1060819310.html 本文以Gitlab的Omnibus方便版本来说明从低版本10.8.7 升级到13.10.3 的步骤 官方升级文档:https://docs.gitlab.com/omnibus/update/ 重点在这里,版本升级要按部就班,不能步子迈的太大,扯到蛋: https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations 于是最终决定的升级路径: 10.8.7 -> 11.11.8 -> 12.0.12 -> 12.1.17 -> 12.10.14 -> 13.0.14 -> 13.1.11 -> 13.5.4 -> 13.10.3 从下载地址把上面所有的安装包下载下来: https://packages.gitlab.com/gitlab/gitlab-ce 例如我的下载列表: gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm gitlab-ce-13.10.3-ce.0.el7.x86_64.rpm gitlab-ce-11.11.8-ce.0.el7.x86_64.rpm gitlab-ce-12.1.17-ce.0.el7.x86_64.rpm gitlab-ce-13.1.11-ce.0.el7.x86_64.rpm gitlab-ce-12.0.12-ce.0.el7.x86_64.rpm gitlab-ce-13.0.14-ce.0.el7.x86_64.rpm gitlab-ce-13.5.4-ce.0.el7.x86_64.rpm 在你有能力升级之前,请确定你先有能力备份恢复,并且亲自测试! 备份恢复的文档: https://docs.gitlab.com/ee/raketasks/backup_restore.html 备份恢复的重点是这些配置文件: For Omnibus: /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab.rb ####### 备份命令需要注意!,不同版本的命令不一样! ######### 在使用 Omnibus package的情况下: GitLab 12.2…
-

-

centos7和CentOS8 rc.local 开机不自动执行的解决方法
CentOS 运维过程中 在 /etc/rc.d/rc.local 写入开机需要运行的命令,是在CentOS5-CentOS6 中常见做法。但是在CentOS7中,却出现了 rc.local 中命令,系统启动后却不执行的情况。 原因分析 rc.local 是 Sysvinit技术用于CentOS5-6的”init”进程在启动过程中最后执行的任务。但是众所周知,CentOS7和CentOS8 是使用了Systemd技术启动,开机不会运行init进程。为了兼容,CentOS 7 官方提供的方法是默认提供了一个名为“rc-local” 的 systemd 服务,负责系统启动后执行 rc.local 中的命令。但是有一个前提: /etc/rc.d/rc.local 必须是可执行(默认是不可执行的)。 解决方案 “激活” systemd 的”rc-local” 服务 (1) 在 /etc/rc.d/rc.local 写入你需要执行的linux命令 # vim /etc/rc.d/rc.local #!/bin/bash # Please note that you must run ‘chmod +x /etc/rc.d/rc.local’ to ensure # that this script will be executed during…
-

ubuntu操作系统下使用ufw防火墙禁用封ip
10秒钟,读第一段就可以实操: 禁止ip语法:sudo ufw deny from {ip-address-here} to any 禁止来自 192.168.1.5 的所有包:sudo ufw deny from 192.168.1.5 to any 也可以拒绝来自 一个ip的 的包:sudo ufw reject from 202.54.5.7 to any 以上reject会返回拒绝的消息,但是drop没有任何信息。 先看ufw的顺序号:$ sudo ufw status numbered$ sudo ufw status 拒绝指定ip和端口:ufw deny from {ip-address-here} to any port {port-number-here}ufw deny from 202.54.1.5 to any port 80 To Action From– —— —-[…
-

Gitlab如何解锁用户
版本: cat /opt/gitlab/embedded/service/gitlab-rails/VERSION 12.0.12 开启一个 Ruby on Rails console 窗口,命令: gitlab-rails console production 通过邮箱找到用户 user = User.find_by(email: ‘asdf@moneyslow.com’) 以下命令为解锁: user.unlock_access!
-

gitlab调用sonar进行代码安全检查的CI/CD配置
sonar中建立token: http://8.8.8.8:9000/account/security/ 生成的串对应关系: SONAR_LOGIN 5164e9f1fde59212313123123123ee3cfc49212b0a4 SONAR_PROJECTKEY asfaffa-php-check gitlab设置CI/CD变量: gitlab项目中编写.gitlab-ci.yml 脚本: stages: – analysis sonar_code_analysis: stage: analysis image: emeraldsquad/sonar-scanner variables: SONAR_URL: http://8.8.8.8:9000 only: – master script: – sonar-scanner -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.analysis.mode=preview -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.projectKey=$SONAR_PROJECTKEY -Dsonar.sources=. -Dsonar.exclusions=vendor/**
-
哪些CA机构通过了WebTrust的认证?
Digicert继2017年收购Symantec(赛门铁克)后,成为全球首屈一指的互联网安全品牌,也是行业内最受认可和信任的SSL安全证书品牌,为用户和服务端之间提供安全的网络信息通道。
-

如何删除chrome和firefox浏览器上的HSTS设置并清除它们?
HSTS代表的是HTTPS严格传输安全协议,它是一个网络安全政策机制,能够强迫浏览器只通过安全的HTTPS连接(永远不能通过HTTP)与网站交互。这能够帮助防止协议降级攻击和cookie劫持。 在使用hsts的网站,可能遇到如下情况: “隐私错误:你的连接不是私人的”(NET::ERR_CERT_AUTHORITY_INVALID)。 或者“NET::ERR_CERT_COMMON_NAME_INVALID。” 有时候需要去掉hsts进行临时解决,以下是不同浏览器的解决方案。 一、如何删除Chrome中的HSTS设置: 1. 导航到chrome://net-internals/#hsts 这是Chrome用来管理你的浏览器的本地HSTS设置的UI的web界面。 2. 首先,为了确认Chrome记录了域名的HSTS设置,请在页面底部的查询域名部分输入主机名。点击查询。如果查询框返回已找到,且同时设置信息列举在了下面,那么域名的HSTS设置就保存在了你的浏览器中。 请注意,这是一个非常敏感的搜索。请只输入主机名,比如www.moneyslow.com或moneyslow.com,不要输入任何相关的协议或路径。 3. 在删除域名部分中输入相同的主机名并点击 你的浏览器将不再强迫这个网站进行HTTPS连接!你可以通过刷新或导航到页面来测试它是否能够正常工作。 请注意,根据网站所提供的HSTS设置,你可能需要指定恰当的子域名。例如,staging.yoursite.com的HSTS设置可能需要与yoursite.com区分开来,因此视情况而定,你可能需要重复这些步骤。 二、如何删除Firefox中的HSTS设置: 我们将讲述两种不同的删除Firefox中的HSTS设置的方式。第一种方式应当可以适用于大多数情况——但如果有需要,我们也包括了一个手动选项。 1. 关闭Firefox中所有打开的标签。 2. 利用键盘快捷键Ctrl + Shift + H(Mac上为Cmd + Shift + H)打开完整的历史窗口。在以下步骤中,你必须使用到这一窗口或侧边栏。 3. 找到你想要为之删除HSTS设置的网站——如果需要,你可以在右上角搜索该网站。 4. 从项目列表中右键点击该网站,并点击忘记这个网站(或者交清除此站点信息)。这将会清除这个域名的HSTS设置(以及其他缓存数据)。 5. 重启Firefox并访问该网站。你现在应当能够通过HTTP/中断的HTTPS访问这一网站了。如果这些说明行不通,那么你可以尝试以下手动方式: 针对Firefox的手动方式 如果上述步骤行不通,你可以尝试以下方式。 首先,通过你的操作系统的文件资源管理器来定位你的Firefox配置文件。你可以通过导航到about:support来找到Firefox的这一文件夹。 向下滚动到页面中部,在应用程序基本要素部分,你将看到配置文件夹。点击打开文件夹。 现在关闭Firefox,因此浏览器便不会覆盖我们将要进行修改的任何设置。 在你的配置文件夹中,找到并打开文件SiteSecurityServiceState.txt。该文件包含了你之前访问的域名的HSTS和HPKP(Key Pinning,一种独立的HTTPS机制)缓存设置。这些设置可能会有点杂乱无章。 搜索你想要为之清除HSTS设置的域名,并将它从文件中删除。每个条目都有域名。删除从想要的域名开始到下一个列出的域名中的所有的条目。还有一种方法,你可以将现有文件从a .txt重命名为a .bak(为了保存现有的文件,以防万一)并允许Firefox在下次启动时创建一个全新的文件。 以下是一个简单的HSTS列表示例。 www.thesslstore.com:HSTS 0 …
-

Discuz!3.4升级后,贴子内容使用Unicode编码会出现直接显示源码问题
转自:https://freexyz.cn/cms/78457.html 打开:source\function\function_core.php $string = str_replace(array(‘&’, ‘”‘, ‘<‘, ‘>’), array(‘&’, ‘”‘, ‘<‘, ‘>’), $string); 下面加入 if(strpos($string, ‘&#’) !== false) { $string = preg_replace(‘/&((#(\d{3,5}|x[a-fA-F0-9]{4}));)/’, ‘&\\1’, $string); } 保存文件 覆盖 更新缓存 刷新贴子
-

Discuz后台安全增强admin.php
本文转自 https://freexyz.cn/cms/19343.html Discuz!默认的后台路径是 http://你的域名/admin.php 因此很多站长不希望后台直接暴露出来让一些不法用户尝试登陆后台,造成一些安全隐患; 隐藏后台路径一般有两种思路,第一种就是直接修改admin.php文件名称,但是这种方式,前后台要修改的文件比较多,而且还会造成有时候安装插件无法使用; 另一种思路,就是对admin.php增加访问权限,这就是本文要讲的方法,具体操作如下: 修改文件:admin.php 一下几种修改方法按需要选择其中一种即可 A、必须在前台登录了,才能访问后台 在 $discuz->init(); 下方加入代码 if(!$_G[‘uid’]){ header(‘HTTP/1.1 404 Not Found’); header(“status: 404 Not Found”); echo ‘404 Not Found’; exit; } B、必须在前台登录了,且uid=1,才能访问后台 在 $discuz->init(); 下方加入代码 if($_G[‘uid’]!=1){ header(‘HTTP/1.1 404 Not Found’); header(“status: 404 Not Found”); echo ‘404 Not Found’; exit; } C、必须在前台登录了,且uid在指定范围,才能访问后台 在 $discuz->init(); 下方加入代码 $uids=array(1,2,3,99); if(in_array($_G[‘uid’],$uids)){ header(‘HTTP/1.1 404…
-

discuz创始人密码忘记重置方法
版权声明:本文为CSDN博主「土著人宁巴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lih062624/article/details/69384239 很多人由于不经常进入UCenter,过一段时间之后UCenter创始人密码就忘记了,本文介绍一种修改UCenter创始人密码的方法; 打开文件/uc_server/data/config.inc.php 找到 define(‘UC_FOUNDERPW’, ‘c4743ead3c62f0fda4a9e2a85827f097’); define(‘UC_FOUNDERSALT’, ‘V1OeJ3’); (*)这里注意,右侧的两个字符串每个网站不一样,您只需要找到UC_FOUNDERPW和UC_FOUNDERSALT对应的两行就行了; 接受一下,discuz密码加密采用salt加密(也叫椒盐加密),生成密码的方法: $pw = md5(md5($password).$salt); UC_FOUNDERPW定义的就是 $pw 值; <?php $password = “7gGasdfasdfas”; $salt = “as23sF”; $pw = md5(md5($password).$salt); echo $pw; ?> UC_FOUNDERSALT定义的就是字符串 $salt 的值; 懂php的按上面的方法重新生成一个密码,然后更换掉就行了,不懂php的朋友这里为您提供了另一种简单方法: 将上面找到的两行换成 define(‘UC_FOUNDERPW’, ‘c3fd517aa6ad758d7424c3463f440478’); define(‘UC_FOUNDERSALT’, ‘test88’); 然后上传文件覆盖; 这样您的UCenter创始人密码就改成了admin888 登陆后再在后台自行修改成其他的即可; 【特别提示】修改前请注意备份文件; ———————————————— 版权声明:本文为CSDN博主「土著人宁巴」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lih062624/article/details/69384239
-

php对输入的安全性处理函数trim、stripslashes、htmlspecialchars
PHP 验证表单数据,通过 PHP 的 htmlspecialchars() 函数传递所有变量。 在我们使用 htmlspecialchars() 函数后,如果用户试图在文本字段中提交以下内容: <script>location.href(‘http://www.moneyslow.com’)</script> – 代码不会执行,因为会被保存为转义代码,就像这样: <script>location.href(‘http://www.moneyslow.com’)</script> 现在这条代码显示在页面上或 e-mail 中是安全的。 在用户提交该表单时,我们还要做两件事: (通过 PHP trim() 函数)去除用户输入数据中不必要的字符(多余的空格、制表符、换行) (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\) 接下来我们创建一个检查函数提高效率,命名为 check_input()。 现在,我们能够通过 check_input() 函数检查每个 $_POST 变量: 实例 <?php // 定义变量并设置为空值 $name = $email = $gender = $comment = $website = “”; if ($_SERVER[“REQUEST_METHOD”] == “POST”) { $name = test_input($_POST[“name”]);…
-

Macos下Sublime Text 3 SFTP 插件使用方法
主要功能: 通过 FTP/SFTP 连接远程服务器并获取文件列表,可以选择下载编辑、重命名、删除等等操作,点下载编辑之后,可以打开这个文件进行修改。修改完成之后,保存一下会自动上传到远程的服务器上面。 实际流程: 使用 SFTP 插件打开文件 -> 使用 ST3 编辑修改文件 -> 保存文件 -> 刷新页面。 SFTP 安装和使用方法 Macos下安装这个插件,打开 Sublime Text 3 ,找到 Package Control 这个插件安装。 输入 “pci” 敲击回车,再输入 “sftp” 即可安装这个插件。安装完之后,就要开始配置服务器使用了。 第一步:配置 FTP/SFTP 服务器信息 安装完插件之后,找到 “文件” 菜单,找到 “SFTP/FTP” 选项,点击配置: 点击之后,会弹出一个新的窗口,这是一个配置文件 一般就是配置一下我箭头所指的四个参数,包括连接方式、服务器地址、用户名、密码等。如果你的服务器还有其他配置,你也可以对照注释设置一下。一般为了方便,还会设置一下“路径”,这样直接可以看到想要修改的文件列表。 配置完成之后,我们保存为一个文件。 第二步:连接服务器获取文件列表 还是点击 “文件” 选择 “SFTP/FTP” 中的查看服务器列表 会弹出刚刚配置好的服务器,我们可以点击需要连接的 FTP 服务器,这时候就链接上了并且弹出文件列表。这时候点击一个文件,就可以弹出一些选项 就可以根据你自己的需要,对文件编辑、重命名什么的了。点击编辑之后,会在本地打开,然后可以修改。 摁下 ctrl +…
-
docker的pull代理步骤
root@moneyslow.com:~# mkdir -p /etc/systemd/system/docker.service.d http代理: https代理: 重启docker: root@moneyslow.com:~# systemctl daemon-reloadroot@moneyslow.com:~# systemctl restart docker 然后再pull速度就快了。 设置 NO_PROXY如果你希望某些 IP 或域名不经过代理服务器直接访问,你可以在 http-proxy.conf 或 https-proxy.conf 文件中添加 NO_PROXY 环境变量。例如: 检查确认环境变量已经正确配置: sudo systemctl show –property=Environment docker 从 docker info 的结果中查看配置项。
-

virtualbox设置虚拟机是无法选用host-only的连接方式
使用virtualBox配置访问虚拟机网络时,需要配置仅主机(Host-Only)配置器,但界面名称,一直是未指定,不能保存, 解决方法: 在VirtualBox 菜单「管理」-「全局设定」-「网络」,为该模式增加一块网卡即可。 enp0s8: dhcp4: no dhcp6: no addresses: [192.168.56.110/24, ] gateway4: 192.168.56.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]