分类 Linux 下的文章

MySQL 8.0 默认创建的用户密码加密方式为:caching_sha2_password,有些应用在连接时由于不兼容会导致报错,可以修改为 MySQL 5 使用的加密方式:sha256_password。

创建用户:

create user "newuser"@"localhost" identified by "PASSWORD";

授予全部数据库权限:

grant all privileges on *.* to 'newuser'@'localhost';

修改成原来的加密方式:

alter user "newuser"@"localhost" identified with mysql_native_password by 'PASSWORD';

刷新权限:

    FLUSH PRIVILEGES;

查看已建立的用户及加密方式:

SELECT user,authentication_string,plugin,host FROM mysql.user;

显示如下:

+------------------+------------------------------------------------------------------------+---
| user             | authentication_string                         | plugin                | host      |
+------------------+------------------------------------------------------------------------+-----
| marco            | *D51541FCBC8DD8E                              | mysql_native_password | localhost |
| root             |                                               | auth_socket           | localhost |
+------------------+------------------------------------------------------------------------+---------

以上就是修改用户密码加密方式的方法。


首先备份本地数据库,以防升级错误:

mysqldump -uUSER -pPASSWORD --all-databases > /path/to/backup.sql

官网下载最新的 MySQL apt 库:https://dev.mysql.com/downloads/repo/apt/

当前最新地址为:https://dev.mysql.com/get/mysql-apt-config_0.8.16-1_all.deb

下载到本地后安装:

dpkg -i mysql-apt-config_0.8.16-1_all.deb

期间会提示选择安装的 MySQL 版本,第一步选择当前安装的 MySQL 5.7,然后下一步选择 MySQL server 8.0,然后再下一步切换到 ok 选项确认。

配置完成后更新 apt 库及安装新版 MySQL:

apt update
apt install mysql-server

安装完成后验证当前安装版本:

mysql -V

以上就是简单的 MySQL 升级教程。

参考链接:
https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-setup
https://www.digitalocean.com/community/questions/upgrade-mysql-5-7-to-8-ubuntu-18-04


dnsmasq 是处理 dns 请求的工具,实现域名请求解析到目标 IP 地址的过程。可以方便的管理本机或局域网设备的域名解析服务,使用教程参考:https://blog.niekun.net/archives/1869.html

iptables 是网络防火墙规则管理/修改工具,管理网络数据包的处理和转发。使用教程参考:https://blog.niekun.net/archives/1863.html

iptables 管理某个源地址或目标地址的流量时,只能识别 IP 地址,比如:

# -s 匹配源地址流量,接收来自 192.168.1.230 发往本机的流量:
iptables -t filter -A INPUT -s 192.168.1.230 -j ACCEPT

# -d 匹配目标地址的流量,丢弃发往 192.168.1.123 的流量:
iptables -t filter -A OUTPUT -d 192.168.1.123 -j DROP

阅读全文


dnsmasq 提供 DNS 缓存/查询服务和 DHCP(Dynamic Host Configuration Protocol) 服务等功能,用来管理本地局域网络系统。内置于常见的 Linux 分发版,openWrt,macOS 系统中。

安装

直接使用包管理器安装:

apt install dnsmasq

查询版本:

dnsmasq -v

信息里 Compile time options 可以看到当前安装版本支持的选项功能 ,如:ipset

root@OpenWrt:/etc# dnsmasq -v
Dnsmasq version 2.80  Copyright (c) 2000-2018 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC no-ID loop-detect inotify dumpfile

This software comes with ABSOLUTELY NO WARRANTY.
Dnsmasq is free software, and you are welcome to redistribute it
under the terms of the GNU General Public License, version 2 or 3.

Linux 启动服务:

systemctl start dnsmasq

openwrt 启动服务:

service dnsmasq start

服务启动后,会监听本地或局域网内的 DNS 请求并根据配置规则进行处理。

阅读全文


ipatbles 是 Linux 下的网络防火墙规则管理/修改工具,通过控制 Linux 内核 netfilter 模块,来管理网络数据包的处理和转发。用来识别路由表中特定的流量然后执行设定的规则。只用于处理 IPv4 数据包;而对于 IPv6 数据包,则使用类似的 ip6tables 命令。

基本概念

netfilter 模型如下:
image.png

结构:

  • Tables 路由表:用来区分不同类型的数据包,如 filter,nat,mangle,每个表包含几个路由链
  • Chain 路由链:流量的类型,如 INPUT ,FORWARD ,OUTPUT ,每种类型流量可以设置不同规则
  • Rule 规则:用来匹配特定类型的流量,如匹配来自 192.168.1.230 的流量
  • Target 目标:用来处理匹配到的流量,如 ACCEPT, DROP, QUEUE.
  • Policy 策略:是默认的处理动作,用来处理没有匹配到的流量,如 ACCEPT or DROP.

iptables、ip6tables等都使用Xtables框架。存在“表(tables)”、“链(chain)”和“规则(rules)”三个层面。

每个“表”指的是不同类型的数据包处理流程,如filter表表示进行数据包过滤,而nat表针对连接进行地址转换操作。每个表中又可以存在多个“链”,系统按照预订的规则将数据包通过某个内建链,例如将从本机发出的数据通过OUTPUT链。在“链”中可以存在若干“规则”,这些规则会被逐一进行匹配,如果匹配,可以执行相应的动作,如修改数据包,或者跳转。跳转可以直接接受该数据包或拒绝该数据包,也可以跳转到其他链继续进行匹配,或者从当前链返回调用者链。当链中所有规则都执行完仍然没有跳转时,将根据该链的默认策略(“policy”)执行对应动作;如果也没有默认动作,则是返回调用者链。

阅读全文