V2Ray 的工作机制

这篇文章是解释 V2Ray 的工作机制,推荐各位新手朋友仔细阅读一下。了解V2ray的工作原理,有利于你更好的使用这个工具。

V2Ray 单服务器模式

V2ray和其它的网络代理工具一样,你需要在一台配置了 V2Ray 的服务器,然后在自己的设备上安装 V2Ray 客户端,然后即可流畅地访问互联网。

一个 V2Ray 服务器可同时支持多台设备,使用不同的代理协议访问。同时,经过合理的配置,V2Ray 可以识别并区分需要代理和不需要代理的流量,直连的流量不需要绕路。

V2Ray 桥接模式

如果你不想在每一台设备上都配置路由,你也可以设置一台中转服务器,用于接收客户端发来的所有流量,然后在服务器中进行转发判断。

V2Ray 工作原理

在配置 V2Ray 之前,不妨先来看一下 V2Ray 的工作原理,以下是单个 V2Ray 进程的内部结构示意图。多个 V2Ray 之间互相独立,互不影响。

  1. 需要配置至少一个传入协议(Inbound)和一个传出协议(Outbound)才可以正常工作。协议列表(V2Ray 支持以下协议: Blackhole、Dokodemo-door、Freedom、HTTP、Shadowsocks、Socks、VMess)
  2. 传入协议通常可以配置用户认证,如 ID 和密码等;
  3. 传入协议收到数据之后,会交给分发器(Dispatcher)进行分发;
  4. 传入协议负责与客户端(如浏览器)通信:
  5. 传出协议负责将数据发给服务器,如另一台主机上的 V2Ray。
  6. 当有多个传出协议时,可以配置路由(Routing)来指定某一类流量由某一个传出协议发出。
  7. 路由会在必要时查询 DNS 以获取更多信息来进行判断。

nginx 模块讲解

1. 通用配置选项:

–prefix= 指定Nginx的安装路径,所有其他的路径都要依赖于该选项

–sbin-path= 指定Nginx二进制文件的路径。如果没有指定,那么这个路径将依赖于–prefix选项

–conf-path= 指定Nginx的配置文件的路径,如果在命令行没有指定配置文件,那么将会通过这里指定路径。

–error-log-path= 指定错误日志文件路径,Nginx将会往里面写入错误日志文件,除非有其它的配置。

–pid-path= 指定的Nginx master进程的PID文件位置,通常在/var/run下

–lock-path= 共享存储器互斥锁文件的路径

–user= worker进程运行的用户

–group= worker进程运行的组

–with-file-aio. 为FreeBSD4.3 +和linux 2.6.22 +系统启用异步I/O

–with-debug 这个选项用于启用调试日志,在生产环境的系统中不推荐使用

2. 邮件代理的配置选项:

–with-mail 该选项用于启用Mail模块,该模块默认没有被激活

–with-mail_ssl_module 为了代理任何一种类型的使用SSL/TLS的Mail,激活该模块

–without-mail_pop3_module 在启用Mail模块后,单独地禁用pop3模块

–without-mail_imap_module 再启用mail模块后,单独地禁用IMAP模块

–without-mail_smtp_module 在启用mail模块后,单独地禁用smtp模块

–without–http 该选项将完全禁用http模块,如果你只想支持

3. 指定路径的配置选项:

–without-http_perl_module Nginx配置能够使用扩展使用Perl代码,这个选项启用这个模块(此模块会降低性能)

–without-perl_module_path= 对于额外嵌入的Perl模块,使用该选项指定该Perl解析器的路径,也可以通过配置选项来指定Perl模块解析器的位置

–without—perl= 如果在默认路径中没有找到Perl,那么指定Perl的路径

–http-log-path= Http访问日志的默认路径

–http-client-body-temp-path= 从客户端收到请求后,该选项设置的目录用于作为请求体临时存放的目录。如果WebDAV模块启用,那么推荐设置该路径为同一文件系统上的目录作为最终的目的地

–http-proxy-temp-path= 在使用代理后,通过该选项设置存放临时文件路径

–http-fastcgi-temp-path= 设置FastCGI临时文件的目录

–http-uwsgi-temp-path= 设置uWSGI临时文件的目录

–http-scgi-temp-path= 设置SCGI临时文件的目录

4. 各种模块配置选项:

–with-http_ssl_module 如果需要对流量进行加密,可以使用该选项,在URLs中开始部分将会是https(需要OpenSSL库)

–with-http_realip_module 如果你的Nginx在七层负载均衡器或者是其他设备之后,它们将http头中的客户端IP地址传递,那么你将会需要启用这个模块。在多个客户处于一个IP地址的情况下使用

–with-http_addition_module 这个模块作为输出过滤器,使你能够在请求经过一个location前或者后时在该location本身添加内容

–with-http_xslt_module 该模块用于处理XML响应转换,基于一个或者多个XSLT格式(需要libxml2和libxslt库)

–with-http_image_filter_module 该模块被作为图像过滤器使用,在将图形投递到客户之前进行处理(需要libgd库)

–with-http_geoip_module 使用该模块,能够设置各种变量以便在配置文件中区段使用,基于地理位置查找客户端IP地址(需要MaxMfind GeoIP库和相应的预编译数据库文件)

–with-http_sub_module 该模块实现了替代过滤,在响应中用一个字符串替代另一个字符串

–with-http_dav_module 启用这个模块将激活使用WebDAV的配置指令。注意:这个模块也只在有需要使用的基础上启用,如果配置不正确,它将带来安全问题。

–with-http_flv_module 如果需要提供Flash流媒体视频文件,那么该模块将会提供伪流媒体

–with-http_mp4_module 这个模块支持H.264/AAC文件伪流媒体

–with-http_gzip_module 当被调用的资源没有.gz结尾格式的文件时,如果想支持发送预压缩版本的静态文件,那么使用该模块

–with-http_gunzio_module 对应不支持gzip编码的客户,该模块用于为客户解压缩预压缩内容

–with-http_random_index_module 如果你想提供从一个目录中随机选择文件的索引文件,那么这个模块需要被激活

–with-http_secure_link_module 该模块提供了一个机制,它会将一个哈希值链接到一个URL中,因此,只有那些使用正确的密码能够计算链接

–with-http_stub_status_module 启用这个模块后会收集Nginx自身的状态信息。输出的状态信息可以使用RRDtool或类似的东西来绘制成图

FastAdmin – 基于ThinkPHP5和Bootstrap的极速后台开发框架

介绍

FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架。

主要特性

  • 基于Auth验证的权限管理系统
    • 支持无限级父子级权限继承,父级的管理员可任意增删改子级管理员及权限设置
    • 支持单管理员多角色
    • 支持管理子级数据或个人数据
  • 强大的一键生成功能
    • 一键生成CRUD,包括控制器、模型、视图、JS、语言包、菜单等
    • 一键压缩打包JS和CSS文件,一键CDN静态资源部署
    • 一键生成控制器菜单和规则
    • 一键生成API接口文档
  • 完善的前端功能组件开发
    • 基于AdminLTE二次开发
    • 基于Bootstrap开发,自适应手机、平板、PC
    • 基于RequireJS进行JS模块管理,按需加载
    • 基于Less进行样式开发
    • 基于Bower进行前端组件包管理
  • 强大的插件扩展功能,在线安装卸载升级插件
  • 通用的会员模块和API模块
  • 共用同一账号体系的Web端会员中心权限验证和API接口会员权限验证
  • 二级域名部署支持,同时域名支持绑定到插件
  • 多语言支持,服务端及客户端支持
  • 强大的第三方模块支持(CMS博客文档生成)
  • 整合第三方短信接口(阿里云、腾讯云短信)
  • 无缝整合第三方云存储(七牛、阿里云OSS、又拍云)功能
  • 第三方富文本编辑器支持(Summernote、Tinymce、百度编辑器)
  • 第三方登录(QQ、微信、微博)整合
  • Ucenter整合第三方应用

安装使用

https://doc.fastadmin.net

在线演示

https://demo.fastadmin.net

用户名:admin

密 码:123456

提 示:演示站数据无法进行修改,请下载源码安装体验全部功能

界面截图

控制台

问题反馈

在使用中有任何问题,请使用以下联系方式联系我们

交流社区: https://forum.fastadmin.net

QQ群: 636393962(满) 708784003(满) 964776039(3群)

Email: (karsonzhang#163.com, 把#换成@)

Github: https://github.com/karsonzhang/fastadmin

Gitee: https://gitee.com/karson/fastadmin

特别鸣谢

感谢以下的项目,排名不分先后

ThinkPHP:http://www.thinkphp.cn

AdminLTE:https://adminlte.io

Bootstrap:http://getbootstrap.com

jQuery:http://jquery.com

Bootstrap-table:https://github.com/wenzhixin/bootstrap-table

Nice-validator: https://validator.niceue.com

SelectPage: https://github.com/TerryZ/SelectPage

版权信息

FastAdmin遵循Apache2开源协议发布,并提供免费使用。

本项目包含的第三方源码和二进制文件之版权信息另行标注。

版权所有Copyright © 2017-2018 by FastAdmin (https://www.fastadmin.net)

All rights reserved。

Zcurd与Eova对比

都没实际项目用过,Zcurd读过源码,Eova读过文章,个人感觉几点差别:

1、界面
Eova界面做的不够精细。Zcurd更漂亮些,能看出作者更用心,更注重细节。

2、模式
快速开发一般有两种模式,一是引擎模式,就是按正常开发时的代码,向上抽取一层,实现动态化。 另一种是生成代码模式,根据一定配置,生成正常开发时的代码,基本功能都有了,可以手动上加上一些个性功能。

Eova采用的是引擎模式。Zcurd两种模式都支持,可以先用引擎模式,当不能满足业务要求时,生成出来手动改。这个设计确实化了不少心思。Eova虽说只有引擎模式,但支持的更多,单表、一对多表、树表等。

Eova有个比较好的设计,将动态设计分为 控件、组件、业务三层,组件由控件组装成,业务由组件构成,每层均可自由定制。理论上每种控件,每种组件,每种业务只实现一次,后续直接复用。这种设计比较好,是文档上说的,实际源码没看过。

3、学习成本
好像Zcurd更简单些,因为简单,所以简单。

体验地址
http://zcurddemo.duapp.com/login
git: https://git.oschina.net/515097842/zcurd

本观点出自zcurd技术交流1群。

TTL和DNS TTL的区别

什么是TTL?

  TTL是IP协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量。

在很多情况下数据包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将TTL减小1。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

TTL值帮助我们大致的识别主机的操作系统类型:

UNIX及类UNIX操作系统ICMP回显应答的TTL字段值为255

Compaq Tru64 5.0 ICMP回显应答的TTL字段值为64

微软Windows NT/2K操作系统ICMP回显应答的TTL字段值为128

微软Windows 95操作系统ICMP回显应答的TTL字段值为32

特殊情况:

Linux Kernel 2.2.x&2.4.x ICMP回显应答的TTL字段值为64

FreeBSD 4.1,4.0,3.4;

Sun Solaris 2.5.1,2.6,2.7,2.8;

OpenBSD 2.6,2.7,

NetBSD

HP UX 10.20

ICMP回显应答的TTL字段值为255

Windows 95/98/98SE

Windows ME

ICMP回显应答的TTL字段值为32

Windows NT4 WRKS

Windows NT4 Server

Windows 2000

Windows XP

ICMP回显应答的TTL字段值为128

 

什么是DNS TTL值?

TTL(Time-To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

合理设置域名TTL值:

1、增大TTL值,以节约域名解析时间

通常情况下域名解析记录是很少更改的。我们可以通过增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的时间段内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从本地缓存中返回域名解析记录。

TTL值是以秒为单位的,通常的默认值都是3600,也就是默认缓存1小时。我们可以根据实际需要把TTL值扩大,例如要缓存一天就设置成86400。

2、减小TTL值,减少更换空间时的不可访问时间

更换域名空间时会对DNS记录进行修改,因为DNS记录缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效,只就导致有部分用户在一段时间内无法不可访问网站了。

  1.   为了尽可能的减小这个各地的解析时间差,合理的做法是:
  2.   先查看域名当前的TTL值。
  3.   修改TTL值为可设定的最小值,建议为60秒。
  4.   等待一天,保证各地的DNS服务器缓存都过期并更新了记录。
  5.   设置修改DNS解析到新的记录,这个时候各地的DNS就能以最快的速度更新到新的记录。
  6.   确认各地的DNS已经更新完成后,再TTL值设置成常用的值(如:TTL=86400)。

在电脑运行中,当你PING一个IP时,会出现一些数据,那么TTL=114代表什么意思?

  1.   TTL是一个ip协议的值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。
  2.   TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
  3.   不同操作系统的ttl初始值是不同的,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的默认TTL值为128,Win7系统的TTL值是64,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。
  4.   因此如果用户主机是win2000系统,用128-114=14,表示用户主机达到目标主机经过了14个路由器节点。

锐速&BBR究竟哪家强?

我以前也有想过这个问题,但是秉承着哪个容易安装我就选哪个的原则,基本上用的都是BBR,因为锐速对内核限制的很死……还有就是家庭网络下是否有必要在个人PC上使用锐速……

实验一:所以说到底哪家强

由于手里并没有太多的可以随便开的机子,而且测试实际上工作量挺大的,所以这次实验变量只设计了两个,并且样本数就一个(。

变量

网络优化

什么都不装

锐速

BBR

BBR魔改

相对于国内的网络环境

Vultr日本(低延迟低丢包)

Digital Ocean新加坡(高延迟高丢包)

测试方法

秉承着怎么方便怎么来的做法,我在CentOS 6.9系统下进行什么都不装和锐速的网络测试,在Ubuntu 16.04下进行BBR和BBR魔改的网络测试

网络测试有两部分:

1,使用ZBench-CN.sh进行测试

2,在深圳天威联通100M网络环境下进行H5网页测速

用到的代码:

  #CentOS 6.9锐速

  wget--no-check-certificate-O appex.sh https://raw.githubusercontent.com/0oVicero0/serverSpeeder_Install/master/appex.sh&&chmod+x appex.sh&&bash appex.sh install'2.6.32-642.el6.x86_64'

  #Ubuntu/Debian BBR

  wget--no-check-certificate-qO'BBR.sh''https://moeclub.org/attachment/LinuxShell/BBR.sh'&&chmod a+x BBR.sh&&bash BBR.sh-f

  #Ubuntu/Debian BBR魔改

  wget--no-check-certificate-qO'BBR_POWERED.sh''https://moeclub.org/attachment/LinuxShell/BBR_POWERED.sh'&&chmod a+x BBR_POWERED.sh&&bash BBR_POWERED.sh

  #ZBench-CN.sh测速脚本

  wget https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh&&bash ZBench-CN.sh

  #Docker一键安装脚本

  wget-qO-https://get.docker.com/|sh

  #H5网页测速Docker

  docker run-d-p 2333:80 ilemonrain/html5-speedtest:latest

测试结果

Vultr 日本(低延迟低丢包)
H5网页测速

  • 什么都不装
  • 锐速
  • BBR
  • BBR魔改

测速脚本

  • 什么都不装
  • 锐速
  • BBR
  • BBR魔改

Digital Ocean 新加坡(高延迟高丢包)

H5网页测速

  • 什么都不装
  • 锐速
  • BBR
  • BBR魔改

测速脚本

  • 什么都不装
  • 锐速
  • BBR
  • BBR魔改

结果分析

在测试过程中,我发现使用测试脚本得到的结果和实际想象偏差很大,而且就算在同样条件下测试两次得到的数据也有可能会有很大偏差,我觉得这可能是因为测速服务器在同时被多人通过脚本使用,因此无法独占测试出准确的结果

而H5测速是很直观的,能找到拥塞控制下达到的最大稳定速度,而单纯的脚本测速可能会因为测速文件不够大、拥塞控制慢开始过程太长并且测速是通过计算平均速度而导致最终结果不一定准确,所以我觉得还是从家庭宽带进行H5测速比较靠谱

然而这样样本数就很单一了(

可以推测:

1,这三种加速对高延迟高丢包的网络有极大的改善效果

2,BBR魔改确实比BBR的效果要好(魔改实际上是调整了原版BBR的配置参数)

在我目前所处的网络环境下,可以推测:

1,BBR魔改的效果要比锐速稍好

2,在低延迟低丢包的情况下,使用这三种网络优化手段可能反而会导致网络性能下降,但是下降并不明显

当然,并不是说测了下发现低延迟低丢包就不应该上加速,因为从国内到国外始终是无法避免网络高峰期出口拥堵的情况的,国外的机子推荐能上还是上了

总结,推荐还是上BBR魔改

无论是从体感角度和便利程度上考虑,我都觉得BBR魔改要优于锐速,并且锐速并不能用于OVZ,但是BBR可以

后话

我后来又尝试了在 Windows 服务器上装锐速与不装的区别

nazwa 的波兰服务器,往 Google 盘传文件,不装锐速是5MB/s,装锐速是18.5MB/s

相信这个结果十分明显了

实验二:个人PC有必要上锐速吗

锐速有Windows版,我只在国外Windows机子上用过,效果相当可以,但是并不知道如果在家庭网络环境下使用效果如何

测试方法

因为是在实验一之前临时想到的,所以并没有事先准备,直接让朋友用 nazwa 的波兰机子(高延迟低丢包)搭建了H5测速平台

仍然是在深圳天威联通100M网络环境下测速

测试结果

个人PC直连

个人PC装锐速并开启入向流量加速

结果分析

看到测试结果的时候我也是一脸懵逼的
我原来以为应该至少会有一点加速效果,然而事实上是速度反而慢了很多

接着我关掉了锐速,重新进行测试

确实,网速又回到了正常水平

但是我也有听朋友说他那里的网络下,开锐速访问日本VPS的速度会有很大提升

我猜测,在家用网络环境下使用锐速,效果应该和运营商、线路、目的地有关系,并且入向流量加速需要占用一点上传宽带,也有可能是天威上传宽带太小(3Mbps)的原因

因此并不能断定家用网络环境下使用锐速是好或者不好的,具体情况应该根据自己测试决定

CentOS7使用yum安装配置MySQL8

卸载MariaDB

列出所有被安装的rpm package

# rpm -qa | grep mariadb
mariadb-libs-5.5.50-1.el7_2.x86_64
mariadb-5.5.50-1.el7_2.x86_64
mariadb-server-5.5.50-1.el7_2.x86_64

强制卸载

rpm -e mariadb-libs-5.5.50-1.el7_2.x86_64

此时报错:

error: Failed dependencies:
    libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
    libmysqlclient.so.18()(64bit) is needed by (installed) perl-DBD-MySQL-4.023-5.el7.x86_64
    libmysqlclient.so.18()(64bit) is needed by (installed) php-mysql-5.4.16-36.3.el7_2.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) perl-DBD-MySQL-4.023-5.el7.x86_64
    libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) php-mysql-5.4.16-36.3.el7_2.x86_64
    mariadb-libs(x86-64) = 1:5.5.50-1.el7_2 is needed by (installed) mariadb-1:5.5.50-1.el7_2.x86_64
    mariadb-libs(x86-64) = 1:5.5.50-1.el7_2 is needed by (installed) mariadb-server-1:5.5.50-1.el7_2.x86_64

强制卸载,因为没有–nodeps

# rpm -e --nodeps mariadb-libs-5.5.50-1.el7_2.x86_64

# rpm -e --nodeps mariadb-5.5.50-1.el7_2.x86_64

# rpm -e --nodeps mariadb-server-5.5.50-1.el7_2.x86_64 

安装MySQL

下载MySQL源(后缀是noarch.rpm)

[root@centos ~]# wget https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

安装mysql源

[root@centos ~]# yum localinstall mysql80-community-release-el7-1.noarch.rpm

检查mysql源是否安装成功

[root@centos ~]# yum repolist enabled | grep "mysql.*-community.*"

出现如下所示表示安装成功:

mysql-connectors-community/x86_64 MySQL Connectors Community                  65
mysql-tools-community/x86_64      MySQL Tools Community                       69
mysql80-community/x86_64          MySQL 8.0 Community Server                  33

安装MySQL

[root@centos ~]# yum install mysql-community-server

出现Error downloading packages:错误,重复执行上述命令。

启动MySQL服务

[root@centos ~]# systemctl start mysqld

查看MySQL的启动状态

[root@centos ~]# systemctl status mysqld

找出root默认密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改。

[root@centos ~]# grep 'temporary password' /var/log/mysqld.log
2018-05-13T02:02:14.879263Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &/hQlEZXc1gT

使用数据库root用户登录

[root@centos ~]# mysql -u root -p
Enter password: &/hQlEZXc1gT

修改默认密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysql&123456789';
mysql> flush privileges;

修改默认密码和加密方式

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '%KMzSp43m5XKC@eP';
flush privileges;

注意:mysql5.7以上默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000)错误,如下图所示:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456789';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

远程连接授权

mysql> use mysql;
mysql> select user,host from user;
mysql> update user set host = '%' where user = 'root';

重启MySQL

[root@centos ~]# systemctl restart mysqld;

Mysql 安装完客户端连接报错:“Authentication plugin ‘caching_sha2_password’ cannot be loaded: ”

意思是客户端不支持caching_sha2_password的加密方式。

这样是不是就可以了呢? 其实并不会,还有一个坑

执行命令

use mysql;
select user,plugin from user ;

可以看到root用户的加密方式为caching_sha2_password

这样的话有两种办法可以解决问题:

一、升级客户端支持caching_sha2_password方式,没有采用。

我使用第二种方法:

二、修改密码加密方式,改成mysql_native_password

# 注意这里’%’是因为我们刚刚把user表中的localhost换成了%

ALTERUSER'root'@'%'IDENTIFIED BY'password'PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

FLUSH PRIVILEGES;

 

# 查看一下现在的user表

select host, user, authentication_string, plugin from user;

可以看到plugin那我们已经换过来了

现在就可以正常的使用小海豚或者navicat Premium登录了