我测试的是利用两台机器 ,一台做socks5服务端,一台做客户端,然后利用在客户端机器 利用 Privoxy 将 socks5代理转为http代理,并向外提供服务

安装配置 Shadowsocks Server 端(ssserver)
Shadowsocks 是用 Python 编写的,因此可以通过如下命令直接安装(sslocal 和 ssserver 均已安装):

sudo pip install shadowsocks

接下来编写 Shadowsocks Server 端的配置文件,配置监听端口,加密方式,密码等,新建 /etc/shadowsocks-server.json 文件,填入如下内容:

{
    "server": "0.0.0.0", 
    "server_port": 1851, # SS Server 端口
    "local_address": "127.0.0.1", #SS Local 端配置,不影响Server端使用
    "local_port": 1080,  #SS Local 端配置,不影响Server端使用
    "password": "xxxxx",
    "timeout": 300,
    "method": "aes-256-cfb",
    "fast_open": false
}

使用配置文件启动 SS Server:

ssserver -c /etc/shadowsocks-server.json -d start

安装配置 Shadowsocks 客户端(sslocal)
第一步已将 SS Server 安装并配置完成,服务端口为 1851,接下来在需要安装 http 代理的机器上安装配置 shadowsocks 客户端,安装方法和第一步一样:

sudo pip install shadowsocks

编写 SS Local 客户端配置文件,配置远程连接 SS Server 的 IP,端口,密码,加密方式等,新建 /etc/shadowsocks-client.json 文件,填入如下内容:

{
    "server": "xxx.xxx.xxx.xxx", # SS Server 端服务器公网 IP
    "server_port": 1851, # SS Server 端口
    "local_address": "127.0.0.1", # SS Local 本地监听 IP
    "local_port": 1080, # SS Local 本地监听端口
    "password": "xxxxxx",
    "timeout": 300,
    "method": "aes-256-cfb",
    "fast_open": false
}

使用配置文件启动 SS Local:

sslocal -c /etc/shadowsocks-client.json -d start

若报ERROR already started at pid xxx错误,则使用如下命令启动

nohup sslocal -c /etc/shadowsocks-client.json start &

配置示例
/etc/shadowsocks-server.json

{
  "server": "0.0.0.0",
  "server_port": 8688,
  "password": "123456",
  "timeout": 300,
  "method": "rc4-md5",
  "fast_open": false,
  "workers": 1
}

/etc/shadowsocks-client.json

{
    "server": "127.0.0.1",
    "server_port": 8688,
    "local_address": "127.0.0.1",
    "local_port": 1080,
    "password": "123456",
    "timeout": 300,
    "method": "rc4-md5",
    "fast_open": false
}

安装并配置 Privoxy
Privoxy 是一款代理软件,我们这里用该代理软件实现 HTTP 到 Socks5 的转换,所有来自 Privoxy 的请求被转发到 SS Local,从而实现了一个 HTTP 代理服务,Privoxy 的安装非常简单,直接 yum 一键搞定:

sudo yum install privoxy

编辑 Privoxy 配置文件 /etc/privoxy/config,搜索关键字 listen-address 找到这一句,改成

listen-address 0.0.0.0:8118

表示该代理可以对外访问。
接下来在该配置该文件末尾添加 HTTP 请求转发到 SS Local Socks5 的配置:

forward-socks5t / 127.0.0.1:1080 .

forward-socks5t: 表示 Privoxy 转发请求到 Socks5 协议
127.0.0.1: 第二步中启动 SS Local 本地绑定 IP
1080: 第二步中启动 SS Local 本地监听端口
启动 Privoxy:

systemctl restart privoxy
systemctl enable privoxy

测试代理是否可用

curl -x privoxy_ip:8118 https://www.google.com

RPM 是 Redhat 的軟件管理系統, 全寫是 Redhat Package Manager, Redhat, Fedora 及 CentOS 等可以透過 RPM 簡單安裝, 移除及更新套件。以下是 RPM 操作的一些常見用法:

查詢套件
顯示所有已安裝套件:
rpm -qa

如果查詢包括特定字串套件, 例如查詢已安裝關於 php 的套件, 可以這樣:
rpm -qa | grep php

查看特定套件的安裝資訊, 例如 php-mysql:
rpm -qi php-mysql

查看套件所安裝的檔案:
rpm -ql php-mysql

安裝套件

安裝 package.rpm, 並在顯示安裝的資訊及安裝進度。
rpm -ivh package.rpm

在安裝及升級時, rpm 預設會檢查相依性, 雖然可以用 –nodeps (忽略相依性) 及 –force (強制安裝) 繞過, 但不建議這樣做, 因為存在相依性問題, 套件安裝後不肯定可以正常運作。

更新套件

更新 package.rpm, 如系統沒有安裝此套件, 直接安裝:
rpm -Uvh package.rpm

更新 package.rpm, 如系統沒有安裝此套件, 不會安裝:
rpm -Fuh package.rpm

如果不透過 YUM 升級 kernel, 而是自行下載 rpm 檔升級, 請使用 rpm -ivh 安裝, 不要使用以上升級選項, 因為使用升級選項, rpm 安裝時會移除舊 kernel, 萬一新 kernel 不能開機要麻煩了。

移除套件

移除 package 套件:
rpm -e package

版本:
zabbix-agent: 5.0.7
mysql: 10.4.12-MariaDB
报错信息
Warning: World-writable config file '/var/lib/zabbix/.my.cnf' is ignored

原因是 .my.cnf 权限过多,人人可改,mysql为了安全不会加载这样的配置文件,所以被忽略

将文件改为644权限即可

chmod 644 /var/lib/zabbix/.my.cnf

测试,能正常进入即可:

mysql --defaults-file=/var/lib/zabbix/.my.cnf

/var/lib/zabbix/.my.cnf 文件内容:

[client]
user=xxxxxxx
password=xxxxxx
host=localhost

测试环境:
centos 7, mysql, nginx

根据官方下载安装文档一路下来:
https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=centos&os_version=7&db=mysql&ws=nginx
原文如下:

Install and configure Zabbix server for your platform
a. Install Zabbix repository
产品手册
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
# yum clean all
b. Install Zabbix server and agent
# yum install zabbix-server-mysql zabbix-agent
c. Install Zabbix frontend
产品手册
Enable Red Hat Software Collections

# yum install centos-release-scl
编辑配置文件 /etc/yum.repos.d/zabbix.repo and enable zabbix-frontend repository.

[zabbix-frontend]
...
enabled=1
...
Install Zabbix frontend packages.

# yum install zabbix-web-mysql-scl zabbix-nginx-conf-scl
d. 创建初始数据库
产品手册
Make sure you have database server up and running.

在数据库主机上运行以下代码。

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;
导入初始架构和数据,系统将提示您输入新创建的密码。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
e. 为Zabbix server配置数据库
编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=password
f. 为Zabbix前端配置PHP
编辑配置文件 /etc/opt/rh/rh-nginx116/nginx/conf.d/zabbix.conf, uncomment and set 'listen' and 'server_name' directives.

# listen 80;
# server_name example.com;
编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf, add nginx to listen.acl_users directive.

listen.acl_users = apache,nginx
Then uncomment and set the right timezone for you.

; php_value[date.timezone] = Europe/Riga
g. 启动Zabbix server和agent进程
启动Zabbix server和agent进程,并为它们设置开机自启:

# systemctl restart zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm
# systemctl enable zabbix-server zabbix-agent rh-nginx116-nginx rh-php72-php-fpm

我的不同:
机子已经先安装了bt的宝塔系统,安装有nginx + mysql + php 环境

按照zabbix步骤,我安装nginx和php的时候用了官方的方法安装了nging和php72,mysql用了宝塔安装的mysql

当我进入后台时,看到了 zabbix-server is not runing的提示,找到 /etc/zabbix/zabbix_server.conf 中的日志文件路径 /var/log/zabbix/zabbix_server.log ,再查看日志,发现报错是没有连接到mysql,原因是默认配置的DBSocket和我的环境不一致,宝塔的mysql 套接字路径是 /tmp/mysql.sock,修改配置,重启zabbix-server,发现跑起来了

解决切换成中文后,图表中的汉字显示成方框的问题

进入win10系统 C:\Windows\Fonts 目录,双击一个简体字包,进去后有三个字体,ctrl+c复制出来一个字体文件,上传到 /usr/share/zabbix/assets/fonts

原来的文件是一个软链接
graphfont.ttf -> /etc/alternatives/zabbix-web-font
备份一下
mv graphfont.ttf graphfont.ttf.bak
添加一个软链接 graphfont.ttf -> msyhl.ttc
ln -s msyhl.ttc graphfont.ttf

现在刷新图表页面,显示正常的汉字内容了

看一个真正的专家操作命令行绝对是一种很好的体验-光标在单词之间来回穿梭,命令行不同的滚动。
我也想成为那样的高手,所以记录了一下这些技巧

Ctrl+a跳到本行的行首,
Ctrl+e则跳到页尾。
Ctrl+u删除当前光标前面的文字,使用Ctrl+y进行恢复
ctrl+k-删除当前光标后面的文字,使用Ctrl+y进行恢复
Ctrl+w和Alt+d-对于当前的单词进行删除操作,w删除光标前面的单词的字符,d则删除后面的字符
Alt+Backsapce-删除当前光标后面的单词,如果删除错误,使用Ctrl+y进行恢复Ctrl+L进行清屏操作

ctrl+a:光标移到行首。
ctrl+b:光标左移一个字母
ctrl+c:杀死当前进程。
ctrl+d:退出当前 Shell。
ctrl+e:光标移到行尾。
ctrl+h:删除光标前一个字符,同 backspace 键相同。
ctrl+k:清除光标后至行尾的内容。
ctrl+l:清屏,相当于clear。
ctrl+r:搜索之前打过的命令。会有一个提示,根据你输入的关键字进行搜索bash的history
ctrl+u: 清除光标前至行首间的所有内容。
ctrl+w: 移除光标前的一个单词
ctrl+t: 交换光标位置前的两个字符
ctrl+y: 粘贴或者恢复上次的删除
ctrl+d: 删除光标所在字母;注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符
ctrl+f: 光标右移
ctrl+z : 把当前进程转到后台运行,使用’ fg ‘命令恢复。比如top -d1 然后ctrl+z ,到后台,然后fg,重新恢复
esc组合
esc+d: 删除光标后的一个词
esc+f: 往右跳一个词
esc+b: 往左跳一个词
esc+t: 交换光标位置前的两个单词。